mcpField
G
google-image-search

google-image-search

github.com/glebis创意与媒体401644 次安装1 天前更新
代码仓库

关于 google-image-search

此 Skill 通过 Google Custom Search 搜索图片、为候选结果评分,并可使用 LLM 选择结果。支持单次与批量搜索、生成查询配置,以及将选中的图片添加到 Obsidian 笔记。

主要功能

  1. 01按查询词或 JSON 配置搜图
  2. 02按设定词条为结果评分
  3. 03使用 LLM 选择候选图片
  4. 04根据词条生成搜索配置
  5. 05为 Obsidian 笔记添加图片
  6. 06下载图片或仅返回 URL

适用场景

  1. 01为技术文章寻找插图
  2. 02收集演示文稿配图
  3. 03为 Obsidian 笔记添加相关图片
  4. 04批量搜索多个主题的图片

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/glebis/claude-skills --skill google-image-search

安装后在 Claude Code 中输入/google-image-search确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.claude-plugin/
plugin.json
references/
api_config_reference.md
scripts/
api.py
config.py
download.py
evaluate.py
google_image_search.py
llm_select.py
obsidian.py
output.py

详细介绍

Google 图片搜索 Skill

使用 Google Custom Search API 搜索图片,并通过智能评分和基于 LLM 的筛选选出最佳图片。

适用场景

  • 查找图片,为技术文章或研究配图
  • 为演示文稿添加视觉素材
  • 为 Obsidian 笔记添加相关图片
  • 批量搜索多个主题的图片
  • 根据纯文本列表生成图片搜索配置

要求

  • Google Custom Search API 密钥和 Search Engine ID
  • OpenRouter API 密钥(用于 LLM 筛选)
  • 已安装 llm CLI,路径为 /opt/homebrew/bin/llm

将凭据存储在 .env 中:

Google-Custom-Search-JSON-API-KEY=your_key
Google-Custom-Search-CX=your_cx
OPENROUTER-API-KEY=your_openrouter_key

(OPENROUTER_API_KEY=... 这种写法也可用——请参阅下方的插件说明。)

OpenRouter / llm-openrouter 注意事项

llm-openrouter 插件只有在能读取名为 OPENROUTER_KEY 的密钥时才会注册其模型(通过环境变量或 llm keys set openrouter 设置)。如果只设置了 OPENROUTER_API_KEY,llm models list 将显示 零个 OpenRouter 模型,所有 openrouter/... 名称都会报错 Unknown model——随后脚本会静默回退到 关键词评分。llm_select.py 会为子进程设置这两个名称,因此已处理此问题; 如果筛选功能再次异常,请先检查 OPENROUTER_KEY:

llm models list | grep -c openrouter   # 458+ means the plugin registered its models

运行模式

1. 简单查询

搜索单个词:

python3 ~/.claude/skills/google-image-search/scripts/google_image_search.py \
  --query "neural interface wearable device" \
  --output-dir ./images \
  --num-results 5
2. 批量处理

根据 JSON 配置处理多个查询:

python3 ~/.claude/skills/google-image-search/scripts/google_image_search.py \
  --config image_queries.json \
  --output-dir ./images \
  --llm-select
3. 根据词语生成配置

使用 LLM 根据词语列表创建 JSON 配置:

python3 ~/.claude/skills/google-image-search/scripts/google_image_search.py \
  --generate-config \
  --terms "AlterEgo wearable" "sEMG electrodes" "BCI headset" \
  --output my_queries.json
4. 丰富 Obsidian 笔记

从笔记中提取视觉主题词,查找图片并插入到相应标题下方:

python3 ~/.claude/skills/google-image-search/scripts/google_image_search.py \
  --enrich-note ~/Brains/brain/Research/neural-interfaces.md

此模式会:

  1. 检测 Obsidian 知识库和附件文件夹
  2. 使用 LLM 从笔记中提取适合配图的词语
  3. 为每个词语搜索图片
  4. 将最佳图片下载到附件文件夹
  5. 在相关标题下方插入图片嵌入
  6. 修改笔记前创建备份

主要选项

选项说明
--query TEXT简单的单个查询
--config FILE批处理用的 JSON 配置
--generate-config根据 --terms 生成配置
--enrich-note FILE丰富 Obsidian 笔记
--output-dir DIR图片保存位置
--urls-only仅返回 URL,不下载
--llm-select使用 LLM 选择最佳图片(默认:开启)
--no-llm-select禁用 LLM 筛选
--num-results N每个查询的结果数(默认:5)
--dry-run显示将执行的操作

JSON 配置格式

每个条目支持:

{
  "id": "unique-id",
  "heading": "Display Heading",
  "description": "Context for what image to find",
  "query": "Google search query",
  "numResults": 5,
  "selectionCriteria": "What makes a good image",
  "requiredTerms": ["must", "have"],
  "optionalTerms": ["bonus", "terms"],
  "excludeTerms": ["stock", "clipart"],
  "preferredHosts": ["official-site.com"],
  "selectionCount": 2
}

完整文档请参阅 references/api_config_reference.md。

评分系统

图片根据以下因素评分:

  • 必需词语:缺少时 -80,全部包含时 +30
  • 可选词语:每匹配一个 +5
  • 排除词语:每匹配一个 -50
  • 首选主机:可信时 +25,未知时 -5
  • MIME 类型:PNG/JPEG +5,GIF -10
  • 分辨率:高分辨率 +10,低分辨率 -10
  • 文件大小:非常小时 -5

LLM 筛选

评分后,LLM 会根据以下信息从候选图片中选出最佳图片:

  • 标题和 URL 元数据
  • 评分原因
  • 筛选标准

LLM 会评估图片的真实性、清晰度,以及对技术受众的相关性。

Obsidian 集成

在 Obsidian 知识库中时:

  • 通过 .obsidian 文件夹自动检测知识库根目录
  • 使用配置的附件文件夹(默认:Attachments)
  • 生成 Obsidian 风格的嵌入:![[image.png|alt text]]
  • 修改笔记前创建备份

脚本文件

文件用途
google_image_search.py主入口
api.pyGoogle Custom Search API
config.py凭据和配置处理
download.py使用 magic bytes 下载图片
evaluate.py基于关键词的评分
llm_select.pyLLM 筛选和词语提取
obsidian.py知识库检测和内容丰富
output.pyMarkdown 输出生成

评论

支持 Markdown