讲师中心 微信公众号
AI工具推荐 视频效率加速

NoahAI clinical-trial query

Polar Sponsor
爱发电 赞助
.NET 9.0

搜索类似于 ClinicalTrials.gov 的临床试验数据库。每当用户询问临床试验、药物试验、适应症、靶点等信息时使用此技能。

临床试验搜索技能

功能概述

临床试验搜索技能是一项面向实际任务的技能,主要用于这种技能将自然语言问题转换成结构化的API查询, 并使用临床试验数据库, 然后以可读格式呈现结果;Workfl。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

临床试验搜索技能

该技能将自然语言问题转换为针对临床试验数据库的结构化 API 查询,并以可读格式呈现结果。

工作流程

  1. 解析用户意图 — 从用户问题中提取关键实体
  2. 构建查询参数 — 将实体映射至下方定义的查询 Schema
  3. 执行查询 — 运行 scripts/search.py
  4. 呈现结果 — 格式化并展示临床试验给用户

步骤 1:提取关键词

从用户问题中识别以下类型的实体:

字段 类型 描述 示例
nctid List[str] NCT 标识符 ["NCT04280783"]
acronym List[str] 试验缩写 ["KEYNOTE-590"]
company List[str] 申办方公司名称 ["Pfizer", "Roche"]
indication List[str] 疾病 / 适应症 ["lung cancer", "NSCLC"]
phase List[str] 试验阶段 ["Preclinical", "I", "II", "III", "IV", "Others"]
target dict 生物学靶点 {"logic": "or", "data": ["PD-1", "VEGF"]}
drug_name dict 药物名称 {"logic": "or", "data": ["pembrolizumab"]}
drug_modality dict 药物模态 {"logic": "or", "data": ["Vaccine", "mRNA"]}
drug_feature dict 药物特性 {"logic": "or", "data": ["Biologic", "Non-NME"]}
location dict 试验所在地 {"logic": "or", "data": ["China", "United States", "Japan"]}
has_result_summary bool 仅返回含结果摘要的试验 true
official_data bool 仅返回官方数据源 false
page_num int 页码索引(从 0 开始) 0
page_size int 每页结果数(1–200) 10

字典字段格式:

{"logic": "or", "data": ["value1", "value2"]}
  • logic 控制多个值的组合方式:"or"(任一匹配即可)或 "and"(全部必须匹配)。默认为 "or",除非用户明确要求所有条件同时生效。
  • data 是待匹配的关键词字符串列表。

类型规则:

  • indication、acronym、company、nctid、phase → 普通 List[str]

  • target、drug_name、drug_modality、drug_feature、location、route_of_administration → 含 logic 和 data 字段的 dict

  • 默认 page_num: 0, page_size: 10,除非用户另行指定

  • 优先使用英文关键词(数据库索引基于英文);对非英文术语进行翻译

  • drug_modality 必须严格使用以下集合中的字符串:

    [
      "Steroids", "Vaccine", "Antisense RNA", "Antibody-Drug Conjugates, ADCs", "Unknown", "Protein Degrader",
      "Monoclonal Antibodies", "mRNA", "Others", "Cell-based Therapies", "Imaging Agents", "Gene Therapy",
      "miRNA", "Polypeptide", "Recombinant Proteins", "Small Molecule", "siRNA/RNAi", "Trispecific Antibodies",
      "Polyclonal Antibodies", "Bi-specific Antibodies", "Glycoconjugates", "Radiopharmaceutical",
      "Nucleic Acid-based", "Carbohydrates"
    ]
    
  • drug_feature 必须严格使用以下集合中的字符串:

    [
      "505b2", "Bacterial Product", "Biologic", "Biosimilar", "Device", "Fixed-Dose Combination", "Immuno-Oncology",
      "New Molecular Entity (NME)", "Non-NME", "Precision Medicine", "Reformulation", "Specialty Drug", "Viral"
    ]
    

步骤 2:执行查询

python scripts/search.py --params ''

或使用参数文件:

python scripts/search.py --params-file /tmp/query.json

添加 --raw 参数可获取未经格式化的原始 JSON 响应。

步骤 3:解释结果

响应包含:

  • total_count — 匹配试验总数
  • results — 当前页的结果,每项包含 NCT ID、标题、阶段、状态、适应症、药物、申办方等信息

若结果超过 100 条,提示用户缩小查询范围。若未返回任何结果,在放弃前应用下方的回退策略。

步骤 3:复核与回退搜索策略

若未返回任何结果,在放弃前应用下方的回退策略。 当初始查询返回零结果或结果质量较差时,请**按顺序**尝试以下策略:

策略 1 — 药物名称变体扩展

临床试验注册库中存储的药物名称可能存在不一致性(如 INN 名称 vs 商品名、含/不含连字符、部分代码等)。将 drug_name.data 扩展为多个变体,合并进单个 or 查询中。

{
  "drug_name": {"logic": "or", "data": ["SHR-A1904", "SHR A1904", "A1904", "SHR1904"]},
  "page_num": 0,
  "page_size": 50
}

若已知试验缩写,也可尝试替换为缩写形式:

{
  "acronym": ["KEYNOTE-590", "KEYNOTE590", "KN590"],
  "page_num": 0,
  "page_size": 10
}

常见变体模式:

  • 移除或替换连字符:SHR-A1904 → SHR A1904、SHRA1904
  • 去除前缀:9MW-2821 → MW-2821、9MW2821
  • 在同一 data 数组中同时尝试 INN 名称和内部代码

策略 2 — 以申办方为锚点 + 应用层过滤

当药物名称匹配不可靠时,以申办方公司为锚点拉取宽泛结果集,再在本地按适应症、阶段或模态进行过滤。

{
  "company": ["Roche", "Roche Inc"],
  "page_num": 0,
  "page_size": 200
}

获取结果后,应用本地过滤器:

  • phase in ["II", "III"]
  • indication contains "breast cancer"
  • drug_name matches known code pattern

当药物代码模糊不清,或需检索某家公司全部试验组合时,适用此策略。

策略 3 — 广义靶点 / 适应症搜索 + 客户端后过滤

当药物名称与申办方均无法返回结果时,改用生物学靶点与适应症组合搜索,再在客户端按申办方或药物代码模式进一步筛选。

{
  "target": {"logic": "or", "data": ["CLDN18.2", "Nectin-4", "HER2"]},
  "indication": ["gastric cancer", "breast cancer"],
  "page_num": 0,
  "page_size": 200
}

获取结果后,按以下条件过滤:

  • 申办方名称子串(例如包含 "Hengrui")
  • 药物代码前缀(例如以 SHR、9MW、A166 开头)
  • 试验状态(Recruiting、Active, not recruiting)

注意: 若 API 支持正则表达式,则可直接在 drug_name.data 中传入类似 (SHR|9MW|A166) 的模式,从而在一次调用中扩大匹配范围。

策略 4 — 逐步放宽过滤条件

若以上所有策略仍无结果,则按以下顺序逐项移除过滤条件:

  1. 移除 has_result_summary(大量试验尚未发布结果)
  2. 移除 phase 过滤条件
  3. 移除 location 过滤条件
  4. 放宽 indication(例如 "NSCLC" → "lung cancer" → "cancer")
  5. 移除 drug_modality 或 drug_feature 约束

每次放宽后重新执行查询,一旦出现结果即停止。

决策树

初始查询是否返回结果?
├── 是 → 呈现结果
└── 否  → 策略 1:扩展 drug_name / acronym 变体
          └── 仍无结果 → 策略 2:以 sponsor 为锚点 + 本地过滤
                         └── 仍无结果 → 策略 3:广义 target/indication 搜索
                                        └── 仍无结果 → 策略 4:逐步放宽过滤条件
任意步骤触发 HTTP 429 错误?
└── 整个流程暂停 15 秒 → 从中断处恢复当前策略
    (为避免触发 429,每次请求之间至少间隔 5 秒)

转换示例

用户:“查找已公布结果的、针对肺癌的 PD-1 抗体 III 期临床试验”

{
  "target": {"logic": "or", "data": ["PD-1"]},
  "drug_modality": {"logic": "or", "data": ["Monoclonal Antibodies"]},
  "indication": ["lung cancer"],
  "phase": ["III"],
  "has_result_summary": true,
  "page_num": 0,
  "page_size": 10
}

用户:“查询 NCT04280783”

{
  "nctid": ["NCT04280783"],
  "page_num": 0,
  "page_size": 1
}

用户:“罗氏(Roche)在中国开展的双特异性抗体临床试验”

{
  "company": ["Roche"],
  "location": {"logic": "or", "data": ["China"]},
  "drug_modality": {"logic": "or", "data": ["Bi-specific Antibodies"]},
  "page_num": 0,
  "page_size": 10
}

用户:“结直肠癌口服小分子 KRAS G12C 抑制剂”

{
  "target": {"logic": "or", "data": ["KRAS G12C"]},
  "drug_modality": {"logic": "or", "data": ["Small Molecule"]},
  "indication": ["colorectal cancer"],
  "page_num": 0,
  "page_size": 10
}

依赖项

  • Python 3.8+
  • requests 库(pip install requests)
  • 环境变量 NOAH_API_TOKEN — API 认证令牌(必需)
    • 请前往 noah.bio 注册免费账户以获取您的 API 密钥。

安全与打包说明

  • 本技能仅调用 NoahAI 官方 HTTPS 终端节点(https://www.noah.bio/api/),不连接任何第三方服务。
  • 本技能仅依赖一个环境变量:NOAH_API_TOKEN。请将其存储于系统环境或本地 .env 文件中,切勿在命令、聊天记录或打包文件中明文嵌入。
  • 该令牌权限范围限定为仅读取公开医疗信息,无法访问私有用户记录。
  • 本技能不会主动在本地持久化保存请求参数。任何服务端保留行为均由 NoahAI API 服务及其运行日志策略决定。
  • 本技能不请求持久性或系统级权限,亦不修改系统配置。
  • 本技能基于源文件(纯 Python 脚本),无需运行时安装、包下载或外部引导步骤。
目录

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

0

2026.09.30

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

0

2026.09.30

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

0

2026.09.30

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

0

2026.09.30

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

0

2026.09.29

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

0

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

0

2026.09.23

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

0

2026.09.23

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

0

2026.09.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn