name: clinical-trials-search description: 使用自然语言查询搜索ClinicalTrials.gov。利用Valyu语义搜索找到临床试验、招募和结果。 keywords:
- 临床试验
- 试验搜索
- 患者招募
- 临床研究
- 试验结果
- 语义搜索 license: MIT
临床试验搜索
搜索完整的ClinicalTrials.gov临床研究数据库,使用由Valyu语义搜索API支持的自然语言查询。
为什么这个技能强大
- 无需API参数解析:只需直接传递自然语言查询,无需构造复杂的搜索参数
- 语义搜索:理解查询的含义,不仅仅是关键词匹配
- 全文访问:返回完整的试验信息,包括阶段、条件、干预和结果
- 图像链接:包括数据可视化(如果可用)
- 全面覆盖:访问所有ClinicalTrials.gov数据
要求
- Node.js 18+(使用内置的fetch)
- 从https://platform.valyu.ai获取Valyu API密钥($10免费积分)
关键:脚本路径解析
本文档中的scripts/search命令是相对于此技能的安装目录的。
运行任何命令之前,使用以下命令定位脚本:
CLINICAL_TRIALS_SCRIPT=$(find ~/.claude/plugins/cache -name "search" -path "*/clinical-trials-search/*/scripts/*" -type f 2>/dev/null | head -1)
然后对所有命令使用完整路径:
$CLINICAL_TRIALS_SCRIPT "CAR-T细胞疗法试验" 15
API密钥设置流程
当您运行搜索并收到"setup_required": true时,遵循此流程:
-
向用户请求API密钥: “为了搜索ClinicalTrials.gov,我需要您的Valyu API密钥。在https://platform.valyu.ai免费获取一个($10积分)”
-
一旦用户提供密钥,运行:
scripts/search setup <api-key> -
重试原始搜索。
何时使用此技能
- 查找进行中和已完成的临床试验
- 识别试验资格标准
- 招募状态和注册信息
- 比较试验中的治疗方法
- 患者招募和注册研究
- 试验的结果和安全数据
输出格式
{
"success": true,
"type": "clinical_trials_search",
"query": "CAR-T细胞疗法试验",
"result_count": 10,
"results": [
{
"title": "试验标题",
"url": "https://clinicaltrials.gov/...",
"content": "试验详情、阶段、条件、结果...",
"source": "clinical-trials",
"relevance_score": 0.95,
"images": []
}
],
"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 "肺癌中的检查点抑制剂组合" 20
医疗设备研究
# 查找设备试验
scripts/search "连续葡萄糖监测设备研究" 15
干预分析
# 搜索干预研究
scripts/search "肥胖的行为干预" 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项目,并想将临床试验搜索直接集成到您的应用程序中,使用Valyu SDK:
Python集成
from valyu import Valyu
client = Valyu(api_key="您的-api-key")
response = client.search(
query="您的搜索查询",
included_sources=["valyu/valyu-clinical-trials"],
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-key");
const response = await client.search({
query: "您的搜索查询",
includedSources: ["valyu/valyu-clinical-trials"],
maxResults: 20
});
response.results.forEach((result) => {
console.log(`标题: ${result.title}`);
console.log(`URL: ${result.url}`);
console.log(`内容: ${result.content.substring(0, 500)}...`);
});
查看Valyu文档获取完整集成示例和SDK参考。