SuperAPI AI 工具集

literature-search

写作与研究

查看项目

更新于 10-16 04:03

技能介绍

Literature Search 是一个面向科学文献的综合检索工具,能够同时搜索 PubMed、arXiv、bioRxiv 和 medRxiv 等主要科学文献数据库,查询由 Valyu 的语义搜索 API 提供支持。

用途

该技能适合进行跨领域的综合文献综述、查找某个主题的全部相关研究、进行跨学科科学发现、结合生物医学、物理学和预印本文献,以及跟踪各学科的新兴研究。

主要能力

  • 自然语言查询:直接传入自然语言查询,无需构造复杂的检索参数。
  • 语义搜索:理解查询的含义,而不仅仅是关键词匹配。
  • 全文访问:返回完整文章内容,而不仅是摘要。
  • 图片链接:包含论文中的图表和图片链接。
  • 覆盖广泛:同时搜索 PubMed、arXiv、bioRxiv 和 medRxiv。
  • 统一结果:一次查询即可获得来自所有来源的结果。

使用方式

运行环境要求 Node.js 18+(使用内置 fetch),并需要从 https://platform.valyu.ai 获取 Valyu API 密钥(提供 10 美元免费额度)。文档中的 scripts/search 命令相对于该技能的安装目录。运行任何命令前,先定位脚本:

LITERATURE_SCRIPT=$(find ~/.claude/plugins/cache -name "search" -path "/literature-search//scripts/*" -type f 2>/dev/null | head -1)

然后用完整路径执行命令,例如:

$LITERATURE_SCRIPT "CRISPR gene editing advances" 15

API 密钥设置流程:当运行搜索并收到 "setup_required": true 时,向用户询问 API 密钥(提示可在 https://platform.valyu.ai 免费获取,含 10 美元额度),用户提供后运行:

scripts/search setup <api-key>

然后重试原搜索。

输出格式为 JSON,包含 success、type、query、result_count、results(每条含 title、url、content、source、relevance_score、images)以及 cost 字段。source 取值为 pubmed、arxiv、biorxiv 或 medrxiv。可使用 jq 处理结果,例如获取标题:

scripts/search "query" 20 | jq -r '.results[].title'

获取全文内容:

scripts/search "query" 20 | jq -r '.results[].content'

按来源过滤:

scripts/search "query" 20 | jq -r '.results[] | select(.source == "arxiv") | .title'

常见用例包括综合文献综述、跨学科研究、最新进展和医学研究等,例如:

scripts/search "mechanisms of cellular senescence" 100

错误处理:所有命令返回带 success 字段的 JSON,失败时形如 {"success": false, "error": "Error message"}。退出码 0 表示成功,1 表示错误(具体见 JSON)。

API 端点

基础 URL:https://api.valyu.ai/v1 端点:/search 认证:X-API-Key 请求头

架构

scripts/ 目录包含 search(Bash 包装脚本)和 search.mjs(Node.js CLI)。直接使用 Node.js 内置 fetch() 调用 API,无外部依赖。

集成到项目

如需在自己的 AI 项目中集成 Literature Search,可使用 Valyu SDK。Python 示例:

from valyu import Valyu

client = Valyu(api_key="your-api-key")

response = client.search( query="your search query here", included_sources=["valyu/valyu-pubmed", "valyu/valyu-arxiv", "valyu/valyu-biorxiv", "valyu/valyu-medrxiv"], max_results=20 )

for result in response["results"]: print(f"Title: {result['title']}") print(f"URL: {result['url']}") print(f"Content: {result['content'][:500]}...")

TypeScript 示例:

import { Valyu } from "valyu-js";

const client = new Valyu("your-api-key");

const response = await client.search({ query: "your search query here", includedSources: ["valyu/valyu-pubmed", "valyu/valyu-arxiv", "valyu/valyu-biorxiv", "valyu/valyu-medrxiv"], maxResults: 20 });

response.results.forEach((result) => { console.log(Title: ${result.title}); console.log(URL: ${result.url}); console.log(Content: ${result.content.substring(0, 500)}...); });

完整集成示例和 SDK 参考见 Valyu 文档。

限制

需要 Node.js 18+ 和 Valyu API 密钥;搜索依赖 Valyu 服务,可能产生费用(输出中的 cost 字段,具体计费规则以 Valyu 官方为准)。关于速率限制、支持的语言、离线使用等细节,资料中暂未提供。