bioRxiv Search 是一个用于检索 bioRxiv 生物学预印本数据库的技能,基于 Valyu 的语义搜索 API,支持使用自然语言直接发起查询。
用途 该技能面向生物学及相关交叉学科研究场景,用于查找尚未在期刊正式发表的预印本,例如分子生物学、神经科学、基因组学、发育生物学、疾病机制、进化与发育生物学、生态与保护生物学等方向。
主要能力
- 直接用自然语言查询,无需构造复杂的 API 参数。
- 语义搜索:理解查询含义,而不仅是关键词匹配。
- 全文访问:返回完整文章正文,而非仅摘要。
- 图片链接:结果中包含论文的图和图片。
- 覆盖全面:可访问 bioRxiv 中所有生物学预印本。
使用方式 环境要求:Node.js 18+(使用内置 fetch),以及来自 https://platform.valyu.ai 的 Valyu API key(含 $10 免费额度)。 文档中的 scripts/search 命令是相对该技能安装目录的路径。运行前需先定位脚本: BIORXIV_SCRIPT=$(find ~/.claude/plugins/cache -name "search" -path "/biorxiv-search//scripts/*" -type f 2>/dev/null | head -1) 然后使用完整路径执行,例如: $BIORXIV_SCRIPT "CRISPR gene editing" 15
API key 配置流程 当搜索返回 "setup_required": true 时:向用户索取 API key(可提示在 https://platform.valyu.ai 免费获取,含 $10 额度);用户提供后运行 scripts/search setup <api-key>;随后重试原搜索。示例:用户请求搜索 CRISPR advances → 返回 setup_required → 询问 API key → 用户提供 val_abc123... → 运行 scripts/search setup val_abc123... → 重试 scripts/search "CRISPR advances" 10 → 成功。
输出格式 返回 JSON,包含 success、type、query、result_count、results(每项包含 title、url、content、source、relevance_score、images)以及 cost 字段。
结果处理(jq 示例)
- 获取标题:scripts/search "query" 10 | jq -r '.results[].title'
- 获取 URL:scripts/search "query" 10 | jq -r '.results[].url'
- 提取完整正文:scripts/search "query" 10 | jq -r '.results[].content'
常见用例
- 分子生物学:scripts/search "protein-protein interaction networks" 50
- 神经科学:scripts/search "optogenetics in behavior studies" 20
- 基因组学:scripts/search "single cell RNA sequencing analysis" 15
- 发育生物学:scripts/search "embryonic stem cell differentiation" 25
错误处理 所有命令返回带 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,无外部依赖。
集成到项目 若需将 bioRxiv Search 直接集成到 AI 项目中,可使用 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-biorxiv"], 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-biorxiv"], 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 key;搜索调用可能产生费用(示例输出中 cost 为 0.025);关于额度消耗规则、并发限制、数据更新频率等未在资料中提供。