多患者模拟问诊接口文档
注意: 本系统支持多患者模拟问诊,每个患者有独立的问答数据和视频资源。
接口概览
| 接口名称 | 方法 | 端点 | 描述 |
|---|---|---|---|
| 文本转视频问诊 | POST | /aic_txt2url |
核心问答接口,根据完整对话历史返回患者回答和视频 |
| 最后一句转视频问诊 | POST | /aic_last2url |
基于历史记录的最后一句问诊接口 |
| 获取用户历史 | POST | /aic_userid2history |
获取指定用户的问诊历史记录 |
| 删除用户历史 | POST | /aic_clear_history |
删除指定用户的问诊历史记录 |
| 获取患者列表 | GET | /aic_patients |
获取系统支持的所有患者列表 |
| 状态检查 | GET | /api |
系统状态检查接口 |
| 问诊表现评估 | POST | /aic_evaluate |
基于用户问诊历史进行表现评估和反馈 |
| 查看评估报告 | POST | /aic_evaluation_history |
查询评估报告生成状态和获取结果 |
| 保存差评反馈 | POST | /aic_save_negative_feedback |
保存用户标记的差评回答用于系统改进 |
接口1: 文本转视频问诊
POST https://aicds.micplatform.top/aic_txt2url
请求参数 (JSON格式)
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
userid |
字符串 | 是 | 用户唯一标识 |
patient_id |
字符串 | 否 | 患者ID,默认为"likuoran" |
prompt |
数组 | 是 | 完整对话历史,最后一个元素为当前医生问题 |
请求示例
{
"userid": "0001",
"patient_id": "lizijie",
"prompt": [
{
"医生说": "你哪里不舒服?"
},
{
"病人说": "下面流血,小肚子疼。"
},
{
"医生说": "检查结果"
}
]
}
响应示例
{
"contains_placeholder": "",
"exam": [
{
"test_result": "超声所见: 1. 宫腔内未见孕囊; 2. 左侧卵巢旁可见约3.0×2.5 cm低回声团,边界欠清,考虑异位妊娠可能; 3. 盆腔可见少量中等回声区,内可见絮状回声,考虑积液伴血凝块可能。 超声提示: 左侧输卵管妊娠可能,盆腔积液。",
"test_item": "妇科B超(子宫及附件)",
"attachments": "https://aicrdt.lianyi8.cn/group1/M00/00/0C/K4gTMmkOAZCAW5iQAABOOU-Hlso982.jpg"
},
{
"test_result": "见报告",
"test_item": "血常规",
"attachments": "https://aicrdt.lianyi8.cn/group1/M00/00/0C/K4gTMmkOAa6AUJ6SAACF_S68oGo545.jpg"
},
{
"test_result": "",
"test_item": "肝功能",
"attachments": "https://aicrdt.lianyi8.cn/group1/M00/00/0C/K4gTMmkOAniAK7NbAABgTlPCNUQ153.jpg"
}
],
"image_url": "https://aicrdt.lianyi8.cn/group1/M00/00/00/K4gTMmjl3jGAAzUYAAEOgyW3Y34065.png",
"last_prompt": {
"医生说": "检查结果"
},
"match_method": "retriever_chat_match",
"patient_id": "lizijie",
"patient_name": "李自洁",
"question_code": "Q001",
"question_reference": "检查结果",
"response": "做了B超检查。",
"userid": "0005",
"video_url": "https://aicds.micplatform.top/files/lizijie/output_videos/做了B超检查。.mp4"
}
响应示例 (无匹配回答)
{
"match_method": "ai_no_match",
"userid": "0001",
"patient_id": "lvruolan",
"patient_name": "吕若兰",
"question_code": "Casual_A_000",
"question_reference": null,
"exam": null,
"last_prompt": {"医生说": "天气不错"},
"response": "没听懂你的意思。",
"video_url": "https://aicds.micplatform.top/files/lvruolan/output_videos/没听懂你的意思。.mp4",
"contains_placeholder": "没听懂你的意思。"
"exam": None
}
说明: 返回包含患者回答、对应的问题编码和参考问题,以及回答对应的视频URL。
如果没有匹配的回答,则返回"没听懂你的意思。"和默认的问题编码。
contains_placeholder字段包含动态日期渲染后的回答内容。
接口2: 最后一句转视频问诊
POST https://aicds.micplatform.top/aic_last2url
请求参数 (JSON格式)
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
userid |
字符串 | 是 | 用户唯一标识 |
patient_id |
字符串 | 否 | 患者ID,默认为"likuoran" |
prompt |
字符串/数组 | 是 | 最后一句医生问题或问题数组 |
请求示例
{
"userid": "0001",
"patient_id": "lizijie",
"prompt": [
{
"医生说": "检查结果"
}
]
}
响应示例
{
"contains_placeholder": "",
"exam": [
{
"test_result": "超声所见: 1. 宫腔内未见孕囊; 2. 左侧卵巢旁可见约3.0×2.5 cm低回声团,边界欠清,考虑异位妊娠可能; 3. 盆腔可见少量中等回声区,内可见絮状回声,考虑积液伴血凝块可能。 超声提示: 左侧输卵管妊娠可能,盆腔积液。",
"test_item": "妇科B超(子宫及附件)",
"attachments": "https://aicrdt.lianyi8.cn/group1/M00/00/0C/K4gTMmkOAZCAW5iQAABOOU-Hlso982.jpg"
},
{
"test_result": "见报告",
"test_item": "血常规",
"attachments": "https://aicrdt.lianyi8.cn/group1/M00/00/0C/K4gTMmkOAa6AUJ6SAACF_S68oGo545.jpg"
},
{
"test_result": "",
"test_item": "肝功能",
"attachments": "https://aicrdt.lianyi8.cn/group1/M00/00/0C/K4gTMmkOAniAK7NbAABgTlPCNUQ153.jpg"
}
],
"image_url": "https://aicrdt.lianyi8.cn/group1/M00/00/00/K4gTMmjl3jGAAzUYAAEOgyW3Y34065.png",
"last_prompt": {
"医生说": "检查结果"
},
"match_method": "retriever_chat_match",
"patient_id": "lizijie",
"patient_name": "李自洁",
"question_code": "Q001",
"question_reference": "检查结果",
"response": "做了B超检查。",
"userid": "0005",
"video_url": "https://aicds.micplatform.top/files/lizijie/output_videos/做了B超检查。.mp4"
}
说明: 此接口与
/aic_txt2url功能相似,区别在于用户只需传入最后一句医生说,
接口会通过userid从history里查找出所有历史对话,再调用/aic_txt2url处理。
返回格式与/aic_txt2url相同。注意此种情况下userid不应再被理解为用户id,而是某次训练的id。
请求示例2
{
"userid": "0001",
"patient_id": "lizijie",
"prompt": [
{
"医生说": "身体姿势改变时疼痛有加剧吗"
}
]
}
响应示例2
{
"contains_placeholder": "",
"exam": null,
"image_url": "https://aicrdt.lianyi8.cn/group1/M00/00/00/K4gTMmjl3jGAAzUYAAEOgyW3Y34065.png",
"last_prompt": {
"医生说": "身体姿势改变时疼痛有加剧吗"
},
"match_method": "deepseek_matched",
"patient_id": "lizijie",
"patient_name": "李自洁",
"prefix_video_url": "https://aicds.micplatform.top/files/lizijie/output_videos/我大概明白您的意思。.mp4",
"question_code": "Q001",
"question_reference": "腹痛与体位改变关系?",
"response": "我大概明白您的意思。没有影响。",
"userid": "0001",
"video_url": "https://aicds.micplatform.top/files/lizijie/output_videos/没有影响。.mp4"
}
前缀视频说明:
prefix_video_url用于在正式视频前面加一个前缀视频,要先播放prefix_video_url,再播放video_url。
在这个例子中,问题中包含书面语,要先播放"我大概明白您的意思",再播放"没有影响"。
接口3: 获取用户问诊历史
POST https://aicds.micplatform.top/aic_userid2history
请求参数 (JSON格式)
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
userid |
字符串 | 是 | 用户唯一标识 |
patient_id |
字符串 | 否 | 患者ID,不传则返回所有历史 |
请求示例
{
"userid": "0001",
"patient_id": "lvruolan"
}
响应示例 (指定患者)
{
"userid": "0001",
"patient_id": "lvruolan",
"patient_name": "吕若兰",
"history": [
{
"timestamp": "2025-04-23T08:48:49.632866",
"content": {
"role": "doctor",
"content": "你哪里不舒服?",
"patient_id": "lvruolan",
"patient_name": "吕若兰"
}
},
{
"timestamp": "2025-04-23T08:48:49.633715",
"content": {
"role": "patient",
"content": "胸口疼的厉害。",
"match_method": "qa_data",
"question_code": "Q001",
"question_reference": "主要不适",
"patient_id": "lvruolan",
"patient_name": "吕若兰"
}
}
]
}
响应示例 (指定患者,患者回答标记过差评)
{
"userid": "0001",
"patient_id": "lvruolan",
"patient_name": "吕若兰",
"history": [
{
"timestamp": "2025-04-23T08:48:49.632866",
"content": {
"role": "doctor",
"content": "你哪里不舒服?",
"patient_id": "lvruolan",
"patient_name": "吕若兰"
}
},
{
"timestamp": "2025-04-23T08:48:49.633715",
"content": {
"role": "patient",
"content": "胸口疼的厉害。",
"match_method": "qa_data",
"question_code": "Q001",
"question_reference": "主要不适",
"patient_id": "lvruolan",
"patient_name": "吕若兰",
"is_negative_feedback": true
}
}
]
}
响应示例 (所有历史)
{
"userid": "0001",
"all_histories": [
{
"userid": "0001",
"patient_id": "likuoran",
"patient_name": "李廓然",
"history": [...]
},
{
"userid": "0001",
"patient_id": "lvruolan",
"patient_name": "吕若兰",
"history": [...]
}
]
}
说明: 返回指定用户的问诊对话历史,包含时间戳和详细内容。
可以获取特定患者的历史或所有患者的历史记录。
接口4: 删除用户问诊历史
POST https://aicds.micplatform.top/aic_clear_history
请求参数 (JSON格式)
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
userid |
字符串 | 是 | 用户唯一标识 |
请求示例
{
"userid": "0001"
}
说明: 删除指定用户的问诊对话历史。
接口5: 获取患者列表
GET https://aicds.micplatform.top/aic_patients
响应示例
{
"patients": [
{
"patient_id": "likuoran",
"name": "李廓然",
"gender": "男"
},
{
"patient_id": "lvruolan",
"name": "吕若兰",
"gender": "女"
},
{
"patient_id": "wangkexin",
"name": "王可馨",
"gender": "女"
}
]
}
说明: 返回系统支持的所有患者列表,包含患者ID、姓名和性别信息。
接口6: 状态检查
GET https://aicds.micplatform.top/api
响应示例
{
"message": "Micube AI - 多患者模拟系统"
}
说明: 系统状态检查接口,用于验证服务是否正常运行。
接口7: 问诊表现评估
POST https://aicds.micplatform.top/aic_evaluate
请求参数 (JSON格式)
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
userid |
字符串 | 是 | 用户唯一标识 |
patient_id |
字符串 | 是 | 患者ID |
description |
字符串 | 是 | 评估标准描述(如"本科三年级标准") |
请求示例
{
"userid": "0001",
"patient_id": "likuoran",
"description": "本科三年级标准"
}
响应示例(任务接收)
{
"message": "评分请求已接收,正在生成评分报告",
"patient_id": "likuoran",
"status": "received",
"task_key": "0001_likuoran",
"timestamp": "2025-10-28T16:07:43.229066",
"userid": "0001"
}
说明: 该接口接收评估请求后立即返回任务接收状态,报告生成过程为异步处理。
用户需要通过查看报告接口获取实际的评估结果。
接口8: 查看评估报告
POST https://aicds.micplatform.top/aic_evaluation_history
请求参数 (JSON格式)
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
userid |
字符串 | 是 | 用户唯一标识 |
patient_id |
字符串 | 是 | 患者ID |
description |
字符串 | 否 | 评估标准描述(可选) |
请求示例
{
"userid": "0001",
"patient_id": "likuoran",
"description": "本科三年级标准"
}
说明: 该接口用于查询评估报告的生成状态和获取最终评估结果。
状态有三种可能:
"status": "no_evaluation"- 没有评估报告"status": "generating"- 正在生成报告"status": "completed"- 报告生成完成,结果在result字段中
接口9: 保存差评反馈
POST https://aicds.micplatform.top/aic_save_negative_feedback
接口描述
保存用户标记的差评回答,用于系统改进和模型优化。
请求参数 (JSON格式)
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
userid |
字符串 | 是 | 用户唯一标识 |
patient_id |
字符串 | 是 | 患者ID |
last_prompt |
对象 | 是 | 医生最后的问题,格式为{"医生说": "问题内容"} |
response |
字符串 | 是 | 患者的不满意回答 |
请求示例
{
"userid": "0002",
"patient_id": "likuoran",
"last_prompt": {
"医生说": "还有哪里不舒服"
},
"response": "心慌。"
}
响应示例 (成功)
{
"status": "success",
"message": "差评反馈已保存",
"userid": "0002",
"patient_id": "likuoran"
}
患者Idle视频
每个患者提供一个无对话时的Idle视频,URL格式如下:
https://aicds.micplatform.top/files/{patient_id}/{patient_id}.mp4
例如:
- 李廓然:
https://aicds.micplatform.top/files/likuoran/likuoran.mp4 - 吕若兰:
https://aicds.micplatform.top/files/lvruolan/lvruolan.mp4 - 王可馨:
https://aicds.micplatform.top/files/wangkexin/wangkexin.mp4
动态日期功能
系统支持动态日期渲染,在回答中使用{{days_deviation(N)}}占位符,其中N为天数偏移量:
{{days_deviation(-7)}}- 表示7天前{{days_deviation(3)}}- 表示3天后
系统会自动计算并渲染为自然语言日期格式。