多患者模拟问诊接口文档

注意: 本系统支持多患者模拟问诊,每个患者有独立的问答数据和视频资源。

接口概览

接口名称 方法 端点 描述
文本转视频问诊 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

例如:

动态日期功能

系统支持动态日期渲染,在回答中使用{{days_deviation(N)}}占位符,其中N为天数偏移量:

系统会自动计算并渲染为自然语言日期格式。