调用 MedicalKnow 接口,基于权威医疗数据返回实体及其属性的结构化知识。
一、接口说明
接口名称:MedicalKnow
能力说明:
基于权威的医疗数据,面向医疗类实体的属性查询(例如「阿莫西林胶囊」「阿司匹林」「苹果热量」「高血压」),相对其他搜索 API 而言可以获取更多、更全面的医疗信息。
返回内容为实体及其属性的结构化文本,适合作为药品、病症、食品的结构化知识底座;「哪家好」这类主观评价或推荐类问句不在本接口能力范围内,会返回空 messages,此类问题建议改用医疗问答 API。
计量方式为「垂域搜索」,按次计费,单价详见 垂域搜索-计费说明。
服务端超时时间为 5 秒 。
医疗健康类内容仅供健康知识参考,不构成诊疗建议,不能替代执业医师的面诊与处方。
二、接口定义
请求参数
参数 | 类型 | 必填 | 默认值 | 描述 | 示例值 |
query | string | 是 | - | 搜索问题。取值范围:1~200 个字符。基于效果考虑,建议将 query 控制在 30 个字符以内,可在调用接口前由客户侧通过模型做 Query 改写。 | 阿莫西林胶囊 |
type | string | 否 | - | 查询类型,用于收窄实体识别范围。finding:病症;food:食品;medicine:药品。不传则由服务端自动识别实体类型。 | medicine |
返回参数
字段 | 类型 | 是否可空 | 字段说明 | 样例(Query:阿莫西林胶囊) |
requestId | string | 不可空 | 请求 RequestId,排查问题时可以提供此信息 | 35E5608A-A737-2038-****-D9D34C6BFD9E |
messages | list | 可为空 | 实体属性结果列表。未识别到实体(如 query 为空、type 不匹配、非实体类问句)时返回空数组,客户侧需做空结果兜底 | 见下方示例 |
messages[].content | string | 不可空 | 内容,以「实体:X」起始、后接若干「- 属性[属性名]:属性值」的结构化文本,各项以换行分隔。属性条数随实体而异,实测 1~7 条 | 实体:阿莫西林胶囊 - 属性[精确活性成分]:阿莫西林 - 属性[生产剂型]:口服用胶囊…… |
messages[].url | string | 不可空 | 内容来源链接 | https://p.example.cn/0387f345/index?struct_id=…… |
searchInformation.searchTime | int64 | 不可空 | 搜索耗时,单位毫秒 | 308 |
queryContext.originalQuery.query | string | 不可空 | 原始请求 query 的回显 | 阿莫西林胶囊 |
三、示例
请求参数(RequestBody)
{
"query": "阿莫西林胶囊",
"type": "medicine"
}返回参数
{
"requestId": "d3c1b3*********cdebe",
"messages": [
{
"url": "https://p.example.cn/0387f345/index?struct_id=VdB%2BLV7w7lHHEp",
"content": "实体:阿莫西林胶囊\n- 属性[精确活性成分]:阿莫西林\n- 属性[生产剂型]:口服用胶囊\n- 属性[适应症]:阿莫西林属于青霉素类抗生素,有较强的杀菌作用……\n- 属性[药理作用]:阿莫西林可通过抑制细菌细胞壁合成而发挥杀菌作用。"
}
],
"searchInformation": {
"searchTime": 308
},
"queryContext": {
"originalQuery": {
"query": "阿莫西林胶囊"
}
}
}四、接口调用
使用产品的凭证(API-KEY)进行认证。API-KEY 在控制台「创建、查看凭证 Key」中创建, 创建后需等待约 5 分钟生效 。
curl -X POST https://cloud-iqs.aliyuncs.com/medical/know \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: application/json" \
--data '{
"query": "阿莫西林胶囊",
"type": "medicine"
}'本接口仅提供 HTTP 直接调用,不提供阿里云 OpenAPI SDK。MCP / Skill 接入方式请参考「接入方式」章节。
五、错误码
调用失败时返回 HTTP 非 2xx 状态码,响应体为扁平结构。errorCode 与 errorMessage 恒定返回,部分错误会同时返回含义相同的 code 与 message 字段,解析时以 errorCode 为准:
{
"errorCode": "Retrieval.EngineNotActivate",
"errorMessage": "Please activate medicalKnowSearch.",
"code": "Retrieval.EngineNotActivate",
"message": "Please activate medicalKnowSearch."
}Status | 错误码 | 错误信息 | 处理方案 |
403 | Retrieval.InvalidAPIKey | Incorrect APIKey provided. | 检查 Authorization 头是否为 |
403 | Retrieval.EngineNotActivate | Please activate medicalKnowSearch. | 凭证未开通本接口对应的 medicalKnowSearch 引擎,请联系您的客户经理开通。 |
403 | Retrieval.NotActivate | Please activate AI search service | 请下单或联系您的客户经理进行开通。 |
403 | Retrieval.Arrears | Please recharge first. | 账户金额不足,请充值。 |
403 | Retrieval.NotAuthorised | Please authorize the AliyunIQSFullAccess privilege to the sub-account. | 子账号没有进行授权,参考「创建 RAM 用户并授权」。 |
403 | Retrieval.TestUserPeriodExpired | The test period has expired. | 测试已到期(自下单后 15 天有效),可联系阿里云客户经理转正式。 |
429 | Retrieval.Throttling.User | Request was denied due to user flow control. | 超出限流规格,可联系阿里云客户经理进行升配。 |
429 | Retrieval.TestUserQueryExceeded | The query exceed the limit | 测试超出日限额(1000 次/天),可联系阿里云客户经理转正式。 |
500 | InternalServerError | An unexpected error occurred | 服务内部异常。请先确认请求体中已传 query 字段(缺失该字段即返回此错误),若参数无误可携带 requestId 联系技术支持。 |