name: drugbank-search description: 使用自然语言查询搜索DrugBank全面的药物数据库。由Valyu提供支持的药物机制、相互作用和安全数据。 keywords:
- drugbank
- 药物
- 药理学
- 药物相互作用
- 不良反应
- 语义搜索 license: MIT
DrugBank搜索
使用自然语言查询搜索完整的DrugBank数据库,包括作用机制、相互作用、目标和药理学信息,由Valyu的语义搜索API驱动。
为什么这个技能强大
- 无需API参数解析:直接传递自然语言查询 - 无需构建复杂搜索参数
- 语义搜索:理解查询的含义,不仅仅是关键词匹配
- 全文访问:返回完整的药物信息,包括机制、相互作用和目标
- 图片链接:包括分子结构和数据可视化
- 全面覆盖:访问所有DrugBank药物数据
要求
- Node.js 18+(使用内置fetch)
- 从 https://platform.valyu.ai 获取Valyu API密钥(10美元免费积分)
关键:脚本路径解析
本文档中的 scripts/search 命令是相对于此技能的安装目录。
运行任何命令之前,使用以下命令定位脚本:
DRUGBANK_SCRIPT=$(find ~/.claude/plugins/cache -name "search" -path "*/drugbank-search/*/scripts/*" -type f 2>/dev/null | head -1)
然后对所有命令使用完整路径:
$DRUGBANK_SCRIPT "ACE抑制剂" 15
API密钥设置流程
当您运行搜索并收到 "setup_required": true 时,请遵循此流程:
-
向用户询问API密钥: “要搜索DrugBank,我需要您的Valyu API密钥。在 https://platform.valyu.ai 免费获取(10美元积分)”
-
一旦用户提供密钥,运行:
scripts/search setup <api-key> -
重试原始搜索。
何时使用此技能
- 综合药物信息查找
- 药物相互作用和副作用研究
- 目标识别和验证
- 作用机制研究
- 药代动力学和药效学研究
- 药物代谢和不良事件数据
输出格式
{
"success": true,
"type": "drugbank_search",
"query": "ACE抑制剂",
"result_count": 10,
"results": [
{
"title": "药物名称",
"url": "https://drugbank.com/...",
"content": "药物信息、机制、相互作用...",
"source": "drugbank",
"relevance_score": 0.95,
"images": ["https://example.com/structure.png"]
}
],
"cost": 0.025
}
处理结果
使用 jq
# 获取药物名称
scripts/search "查询" 10 | jq -r '.results[].title'
# 获取URL
scripts/search "查询" 10 | jq -r '.results[].url'
# 提取完整内容
scripts/search "查询" 10 | jq -r '.results[].content'
常见用例
药物信息
# 查找药物详情
scripts/search "二甲双胍药代动力学" 50
药物相互作用
# 搜索相互作用
scripts/search "CYP3A4抑制剂药物相互作用" 20
机制研究
# 查找机制数据
scripts/search "选择性5-羟色胺再摄取抑制剂机制" 15
目标识别
# 搜索药物靶点
scripts/search "靶向BCR-ABL融合蛋白的药物" 25
错误处理
所有命令返回带有 success 字段的JSON:
{
"success": false,
"error": "错误消息"
}
退出代码:
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项目并希望直接将DrugBank搜索集成到您的应用程序中,请使用Valyu SDK:
Python集成
from valyu import Valyu
client = Valyu(api_key="您的API密钥")
response = client.search(
query="您的搜索查询",
included_sources=["valyu/valyu-drugbank"],
max_results=20
)
for result in response["results"]:
print(f"标题: {result['title']}")
print(f"URL: {result['url']}")
print(f"内容: {result['content'][:500]}...")
TypeScript集成
import { Valyu } from "valyu-js";
const client = new Valyu("您的API密钥");
const response = await client.search({
query: "您的搜索查询",
includedSources: ["valyu/valyu-drugbank"],
maxResults: 20
});
response.results.forEach((result) => {
console.log(`标题: ${result.title}`);
console.log(`URL: ${result.url}`);
console.log(`内容: ${result.content.substring(0, 500)}...`);
});
查看 Valyu文档 获取完整集成示例和SDK参考。