Open API 调用说明
通过 API 编程方式访问循证智能化证据聚合平台,实现语义检索、证据获取与数据分析
快速开始
三步即可调用平台 API:
1获取 API Key:注册并登录 → 进入用户中心(注册需通过邮箱验证码验证),在「申请 API Key」处填写名称并点击「创建 Key」(默认授予 search 检索 + read 读取权限;如需 verify 核查权限请联系管理员开通),创建后立即复制保存(Key 仅显示一次)。每个账号最多创建 5 个 Key,忘记密码可在登录页通过邮箱验证码重置。
2携带 Key 请求:在请求头中加入
Authorization: Bearer <your_key> 或 X-API-Key: <your_key>。3调用接口:Base URL 为
https://www.evihub.top,按下方端点文档发起请求。鉴权方式
所有 /open/v1/* 接口均需鉴权,支持以下三种方式任选其一:
Authorization: Bearer <api_key>Authorization: ApiKey <api_key>X-API-Key: <api_key>
权限说明:API Key 可被授予 search(检索)、read(读取)、verify(幻觉核查)权限,不同接口需要对应权限,详见下方端点表中的「所需权限」列。为保护证据数据安全,不提供批量导出接口,检索类接口单次最多返回 5 条。
接口总览
检索接口 需 search 权限
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /open/v1/search | 语义检索(ES + 向量 + PICO 混合、RRF 融合排序) |
| POST | /open/v1/search/pico | PICO 结构化检索(按人群/干预/对照/结局) |
| POST | /open/v1/verify | 证据分层核查报告(LLM 幻觉核查:有无证据 + 最高证据层方向 + 等级×方向证据矩阵) |
| POST | /open/v1/verify/batch | 批量验证(一次最多 20 个干预) |
数据接口 需 read 权限
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /open/v1/stats | 平台统计概览(证据总量、已产生证据的文献数、等级/类型/中西医分布) |
| GET | /open/v1/evidence | 已下线(2026-09-04) — 返回 410 Gone。证据列表不再对外开放,请改用检索接口或单条详情 |
| GET | /open/v1/evidence/{evidence_id} | 单条证据详情(返回字段与检索接口一致,不含效应量明细 estimates) |
订阅接口 内部使用
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /open/v1/subscribe | 创建 Webhook 订阅(新证据回调) |
| GET | /open/v1/subscribe | 查询订阅列表 |
| DELETE | /open/v1/subscribe/{sub_id} | 取消订阅 |
为保护证据数据安全,Open API 不提供批量导出能力,用户可通过检索接口按需获取证据详情。
检索示例
1. 语义检索(curl)
# POST /open/v1/search — 语义检索 curl -X POST "https://www.evihub.top/open/v1/search" \ -H "Authorization: Bearer evb-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"query": "二甲双胍治疗2型糖尿病对血糖的作用", "limit": 5}'
2. PICO 结构化检索(Python)
import requests API_KEY = "evb-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" resp = requests.post( "https://www.evihub.top/open/v1/search/pico", headers={"Authorization": f"Bearer {API_KEY}"}, json={ "population": "2型糖尿病患者", "intervention": "二甲双胍", "comparison": "安慰剂", "outcome": "糖化血红蛋白", "limit": 5, # 上限 5,四要素至少填一项 }, ) print(resp.status_code) print(resp.json())
3. 响应结构
{
"results": [
{
"evidence_id": "EV_4cd4eaa61313",
"evidence_type": "G",
"clinical_question": "对于新诊断或早期2型糖尿病患者,二甲双胍是否应作为初始药物治疗的首选?",
"conclusion": "二甲双胍是2型糖尿病初始药物治疗的首选,因其降糖效果确切、不增加体重、低血糖风险低且费用低廉。",
"population": "新诊断或早期2型糖尿病患者",
"intervention": "二甲双胍单药治疗",
"comparison": "其他降糖药物(磺脲类、胰岛素等)",
"outcome": "血糖控制(A1C水平)、微血管并发症、心血管并发症",
"effect_measure": "",
"effect_value": null,
"effect_ci": "",
"p_value": "",
"sample_size": null,
"follow_up": "",
"adverse_events": "胃肠道反应(腹泻、恶心)、乳酸酸中毒(罕见)",
"literature_id": "LIT_f1c6a910184b",
"journal": "Diabetes care",
"year": 2009
}
],
"total": 6, // 本轮判定为相关的证据总数(不含兜底)
"fallback_count": 0 // 相关结果不足时系统兜底补足的条数
}
说明:返回结果固定为 18 个字段(完整清单见下方「返回字段说明」),涵盖临床问题、PICO、效应值、样本与安全性信息。literature_id 为平台内部随机编号,不含可反查原文的信息;journal 与 year 仅用于判断来源可信度。
不返回的字段(2026-09-04 起):证据等级(
evidence_tier / grade_quality / ocebm_level)、结论方向(effect_direction)、文献溯源(literature_title / authors / doi / pmid / abstract / verbatim_text)、效应量明细(estimates)与内部召回统计(channel_counts)。证据质量请结合 evidence_type 与研究设计自行判断。
证据存在性验证(幻觉核查)
面向 LLM/Agent 场景:核验「某干预措施是否有证据支持」。确定性规则判定(不走 LLM),低延迟、可高并发。
请求(curl)
curl -X POST "https://www.evihub.top/open/v1/verify" \ -H "Authorization: Bearer evb-xxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"intervention": "二甲双胍", "include_tcm": false}'
响应结构
{
"evidence_status": "found", // found(库内有证据)| none(库内无证据)| insufficient(无法判定)
"reason": "term_matched", // 判定依据(见下方说明)
"matched_term": "二甲双胍", // 命中的词典规范实体名(未命中则为 null)
"match_type": "exact", // exact | phrase | related | none
"evidence_count": 109,
"scope_note": "本结论基于本证据库当前收录内容。", // none/insufficient 时说明证据库覆盖局限
"top_layer": { // 最高证据层方向(如实报构成,不取多数)
"layer_num": 1,
"layer": "综合证据(指南/共识/系统评价Meta)",
"directions": {"support": 77, "against": 8, "mixed": 13, "neutral": 6, "unknown": 0},
"verdict": "支持/推荐" // 层内一致才给方向;矛盾则注明,不取多数
},
"evidence_matrix": { // 证据等级 × 方向 - 数量矩阵(供智能体自行研判)
"1": {"label": "综合证据(指南/共识/SRM)", "support": 77, "against": 8, "mixed": 13, "neutral": 6, "unknown": 0},
"2": {"label": "随机对照试验(RCT)", ...}
},
"direction_alert": "最高层证据方向与断言相反…(仅供提示)", // 请求带 direction 时可选出现;否则 null
"evidences": [
{ "evidence_id", "evidence_type", "clinical_question", "conclusion",
"population", "intervention", "comparison", "outcome",
"effect_measure", "effect_value", "effect_ci", "p_value",
"sample_size", "follow_up", "adverse_events",
"literature_id", "journal", "year",
"grade_quality", "is_tcm", "direction" } // 21 字段(verify 系列)
],
"related_evidences": [ ... ],
"candidate_count": 60
}
三段式返回(2026-09-06):①
evidence_status:found = 证据库存在该干预的匹配证据;none = 仅表示证据库范围内未找到该干预的证据(词典已认识但库内确无,或领域已覆盖但无匹配)——不代表现实中不存在相关证据/研究(见 scope_note 局限说明),绝不据此断言临床无效;insufficient = 无法判定(词典盲区/召回不足/输入无效),不计费。
② top_layer:命中的最高证据层方向构成(证据层级:综合证据 G/共识/SRM > RCT > 队列/对照 > 观察/描述 > 动物/其它),层内方向一致才给出 verdict,矛盾则如实标注、不取多数派。
③ evidence_matrix:证据等级 × 方向 - 数量矩阵,完整呈现证据版图,由调用方智能体自行研判(如只采信顶层证据、或结合临床情境),系统不做“证据多即真”的武断判定。判定能力(当前版本)
- 术语词典实体级匹配:4000+ 干预实体(药物/疗法/手术/器械,含同义词),查询自动抽取核心干预实体,命中即
exact级判定,输出matched_term - 伪科学词根拦截:量子 / 负熵 / 太赫兹 / 石墨烯 / 能量贴等幻觉高发词根 →
none(reason=fake_pattern) - 证据分层报告(循证制,非裁判制):53 万条证据已全量标注方向;系统只如实报告 ①有无证据 ②最高证据层方向构成(指南/共识/系统评价层优先)③等级×方向矩阵。可选请求参数
direction=support|against时,附加direction_alert提示(最高层方向与断言相反时给出 advisory 提醒),最终判断由调用智能体结合矩阵与临床情境作出 - 修饰语自动清洗:剂量(500mg)、频次(每日两次)、给药途径(口服)等自动去除,保留核心干预词
- 评测指标:金标准 500 条评测集准确率 92.2%,幻觉拦截率 100%(假阳性 0 条),评测集固化为回归基线
reason 判定依据:
term_matched(词典实体命中)|matched(规则匹配命中)|fake_pattern(伪科学词根拦截)|term_known_no_evidence(词典认识该干预但库内无证据)|domain_covered_but_no_match(领域已覆盖但无匹配)|insufficient_recall(召回不足,无法判定)|input_invalid(输入无效)
批量验证(一次核验多个干预)
curl -X POST "https://www.evihub.top/open/v1/verify/batch" \ -H "Authorization: Bearer evb-xxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"items": [ {"intervention": "二甲双胍"}, {"intervention": "阿司匹林 100mg 每日一次"} ], "include_tcm": false}'
{
"results": [ { "evidence_status", "top_layer", "evidence_matrix", "evidences", ... }, ... ],
"total": 2,
"billed_count": 2, // 确定结论数(计费条数)
"free_count": 0 // insufficient 数(不计费)
}
计费规则:evidence_status = found / none 扣 0.5 积分(1 积分 = 2 次调用);insufficient 不计费。剂量、频次、给药途径等修饰语会被自动清洗,无需预处理。批量接口一次最多 20 个干预,按确定结论数计费。
免费试用:新用户注册即赠送 100 积分(可调用 200 次),无需付费即可体验全部接口。注册入口:evihub.top → 右上角「登录」→ 注册。积分用尽后可凭充值码充值。
主要参数说明
POST /open/v1/search 请求体
query(必填,1–500 字符):检索问题描述。需有实质内容,无效输入(如乱码、纯符号、HTML 标签)返回422 input_invalidlimit(可选,1–5,默认 5):返回条数- 请求体中不得出现未列出的字段(如已废弃的
offset),否则返回422 extra_forbidden
POST /open/v1/search/pico 请求体
population/intervention/comparison/outcome:四要素至少提供一项,全部为空返回422 pico_requiredlimit(可选,1–5,默认 5):返回条数
POST /open/v1/verify 请求体
intervention(必填,1–300 字符):待核验的干预措施。剂量/频次/给药途径等修饰语自动清洗,无需预处理population(可选,≤300 字符):人群约束。当前版本仅透传回显供调用方自查,不参与判定(人群适用性判定规划中)include_tcm(可选,默认 false):是否包含中医药证据(TCM 证据与西医证据分开,默认仅核西医)limit(可选,1–5,默认 5):返回匹配证据条数上限
POST /open/v1/verify/batch 请求体
items(必填,1–20 个):数组,每项{intervention, population}include_tcm(可选,默认 false):对全部 items 生效
GET /open/v1/evidence(已下线)
该接口自 2026-09-04 起下线,固定返回
原
410 Gone:{"error":"endpoint_deprecated","message":"证据列表接口已下线(防数据遍历)…"}原
evidence_type / evidence_tier / grade_quality / ocebm_level / is_tcm 等筛选参数一并失效。请改用 POST /search、POST /search/pico,或按 ID 查询 GET /evidence/{evidence_id}。
GET /open/v1/stats 响应
{
"total_evidence": 541809, // 证据总条数
"total_literature": 243724, // 已产生证据的文献数(见下方说明)
"evidence_by_level": {"L1": 97538, "L2": 171714, ...},
"evidence_by_type": {"RCT": 164258, "SRM": 183949, "G": 69586, ...},
"evidence_by_grade": {"high": 9047, "moderate": 90143, ...},
"evidence_by_ocebm": {"1": 104860, "2": 140598, ...},
"tcm_stats": {"tcm_only": 42029, "western_only": 499607, "integrative": 21183}
}
total_literature 口径说明(2026-09-04 起):该值统计的是已产生证据的文献数(即至少关联 1 条证据的文献),为可对外提供证据支撑的真实文献规模;平台收录但未产生证据的文献不计入。
返回字段说明(检索 18 字段;verify 为 21 字段)
| 字段 | 说明 |
|---|---|
evidence_id | 证据唯一标识,可用于 GET /evidence/{id} |
literature_id | 来源文献的平台内部随机编号,仅作引用标识,无法据此反查原文 |
clinical_question | 临床问题(PICO 式问句) |
conclusion | 结论摘要(证据核心内容) |
population | P — 研究对象/人群 |
intervention | I — 干预措施 |
comparison | C — 对照措施 |
outcome | O — 结局指标 |
effect_measure | 效应量指标类型(如 MD、RR、OR、SMD) |
effect_value | 效应值点估计(数值,可为 null) |
effect_ci | 置信区间(字符串,如 (-0.26, 0.19)) |
p_value | P 值(字符串,如 0.74、<0.05) |
sample_size | 样本量(数值,可为 null) |
follow_up | 随访时间 |
adverse_events | 不良事件/安全性信息 |
evidence_type | 研究类型(见下方取值表) |
journal | 来源期刊(非标识性元数据,用于判断来源可信度) |
year | 发表年份(非标识性元数据) |
evidence_type 常见取值:
RCT随机对照试验|SRM系统评价/Meta 分析|G临床实践指南COH队列研究|CC病例对照研究|CS横断面研究|CR病例报告NR叙述性综述|QE质性研究|ANI动物实验|IVT体外实验- 其余:
C共识|DIA诊断研究|ECO经济学研究|MEC机制研究|OBS观察性研究|OTH其他
verify 系列接口例外(21 字段):
/open/v1/verify 与
/open/v1/verify/batch 返回的 evidences / related_evidences
在上述 18 字段基础上附加 3 个「证据评估字段」(面向 LLM/Agent 证据核验,
便于按 direction 逐条定位反对/支持证据,按 grade_quality
避免误信低质量证据,按 is_tcm 区分中西医语境):
grade_quality:GRADE 质量等级high/moderate/low/very_lowis_tcm:是否中医药证据(与include_tcm参数配合)direction:结论方向support/against/mixed/neutral(对应顶层direction_summary逐条口径)
search / search/pico / evidence/{id})不受影响,维持 18 字段中立白名单。
分页说明:为防范数据遍历,检索接口不提供分页(
offset 已废弃,传入即 422),单次最多返回 5 条按相关度排序的结果。响应中 total 为本轮判定为相关的证据总数,fallback_count 为相关结果不足时系统兜底补足的条数(total 不含兜底条数)。如需批量数据请线下联系我们获取企业授权。
错误码
| 状态码 | 错误码 | 说明 |
|---|---|---|
| 401 | missing_api_key | 请求头未携带 API Key |
| 401 | invalid_api_key | API Key 无效(不存在或已被删除) |
| 403 | key_disabled | API Key 已被管理员禁用 |
| 403 | key_expired | API Key 已过期 |
| 403 | insufficient_permissions | 当前 Key 缺少该接口所需权限 |
| 429 | rate_limited | 超出分钟级速率限制(10 次/分钟/Key) |
| 429 | insufficient_balance | 免费积分与付费积分均已用尽 |
| 429 | daily_limit_exceeded | 已达该 Key 单日调用上限(100 次/日) |
| 410 | endpoint_deprecated | 接口已下线(GET /open/v1/evidence 证据列表) |
| 422 | — | 请求参数校验失败(缺少必填字段 / 类型错误 / 字段值越界) |
| 422 | extra_forbidden | 请求体含未声明字段(如已废弃的 offset、limit 超过 5) |
| 422 | pico_required | PICO 检索四要素全为空,未至少提供一项 |
| 422 | input_invalid | 检索词无实质内容(乱码 / 纯符号 / HTML 标签等) |
注意事项
安全提示:API Key 等同于账户访问凭证,请勿在公开代码仓库、客户端页面中明文暴露。如不慎泄露,请立即在用户中心删除该 Key 并重新创建(管理员账号可在管理后台禁用)。
速率限制(双层,均按 Key 计数):
- 分钟级:10 次/分钟/Key,超出返回
429 rate_limited - 日级:100 次/日/Key,超出返回
429 daily_limit_exceeded
账号与 Key 管理:注册需通过邮箱验证码验证;每个账号最多创建 5 个 API Key,第 6 个将返回
422。忘记密码可在 用户中心 通过邮箱验证码重置。
过期管理:创建 Key 时可设置过期时间,到期后自动失效(返回 403 key_expired)。请提前在「API 权限管理」中续期或重建。
接口变更记录
| 日期 | 变更内容 |
|---|---|
| 2026-09-04 |
安全策略调整(不兼容变更,请注意适配):
|