学术科研
需要自然语言检索 PubMed 生物医学文献时,用…
在 AI 或研究项目中,用自然语言查询 PubMed 并获取全文、图片和可集成的搜索结果。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要自然语言检索 PubMed 生物医学特定
解决思路
- 先定位脚本路径:运行 `PUBMED_SCRIPT=$(find ~/.claude/plugins/cache -name "search" -path "*/pubmed-search/*/scripts/*" -type f 2>/dev/null | head -1)`,后续所有命令使用 `$PUBMED_SCRIPT` 全路径。
- 执行基本搜索:`scripts/search "your natural language query" [maxResults]`,直接传自然语言查询和可选最大结果数。
- 直接传自然语言查询,无需构造复杂 API 搜索参数。
- 利用语义搜索理解查询含义,而不仅依赖关键词匹配。
- 获取完整文章内容,而不仅是摘要。
- 结果中包含论文中的图表和图片链接。
- 覆盖全部 PubMed 生物医学文献。
- 示例搜索:`scripts/search "COVID-19 vaccine efficacy studies" 15`、`scripts/search "BRCA1 mutations and breast cancer risk" 20`、`scripts/search "immunotherapy for melanoma clinical trials" 10`、`scripts/search "mechanism of action of metformin in type 2 diabetes" 12`。
- 当搜索返回 `"setup_required": true` 时,向用户索要 Valyu API key,并提示从 https://platform.valyu.ai 免费获取($10 credits)。
- 用户提供 key 后,运行 `scripts/search setup <api-key>` 完成设置。
- 设置成功后重试原始搜索。
- 解析输出 JSON:包含 `success`、`type`、`query`、`result_count`、`results`、`cost`;每个结果包含 `title`、`url`、`content`、`source`、`relevance_score`、`images`。
- 用 jq 提取文章标题:`scripts/search "query" 10 | jq -r '.results[].title'`。
- 用 jq 提取 URL:`scripts/search "query" 10 | jq -r '.results[].url'`。
- 用 jq 提取完整内容:`scripts/search "query" 10 | jq -r '.results[].content'`。
- 文献综述用例:`scripts/search "mechanisms of aging in humans" 50`。
- 药物发现用例:`scripts/search "novel targets for Alzheimer's disease treatment" 20`。
- 临床研究用例:`scripts/search "phase 3 trials for rheumatoid arthritis biologics" 15`。
- 基因功能用例:`scripts/search "role of TP53 in cancer development" 25`。
- 错误处理:所有命令返回 JSON 含 `success` 字段;失败时查看 `error`;退出码 `0` 表示成功,`1` 表示错误。
- API 端点信息:Base URL `https://api.valyu.ai/v1`,Endpoint `/search`,认证使用 `X-API-Key` header。
- 架构:`scripts/search` 是 Bash wrapper,`scripts/search.mjs` 是 Node.js CLI;直接使用 Node.js 内置 `fetch()`,零外部依赖。
- 集成到 AI 项目时使用 Valyu SDK:Python 中 `from valyu import Valyu`,`client = Valyu(api_key="your-api-key")`,`response = client.search(query="immunotherapy for melanoma", included_sources=["valyu/valyu-pubmed"], max_results=20)`,遍历 `response["results"]` 打印 `title`、`url`、`content`。
- TypeScript 中 `import { Valyu } from "valyu-js"`,`const client = new Valyu("your-api-key")`,`const response = await client.search({ query: "immunotherapy for melanoma", includedSources: ["valyu/valyu-pubmed"], maxResults: 20 })`,遍历 `response.results` 打印 `title`、`url`、`content`。
- 参考 Valyu 文档 https://docs.valyu.ai 获取完整集成示例和 SDK 参考。
适用边界 · 注意事项
- 没有 Valyu API key 或不愿使用 Valyu 付费/云服务时不适用。
- 运行环境不满足 Node.js 18+ 时不适用。
- 需要检索非生物医学文献或无法接受按次计费(输出含 `cost`)时不适用。