WiseDiag 智能体工作流
1. 接口概述
WiseDiag 智能健康系统为开发者提供强大的 AI 健康服务能力,支持以下三大核心功能:
| 功能 | 任务标识 | 说明 |
|---|---|---|
| 智能问诊聊天 | chat | 提供个性化健康咨询与建议 |
| 图片健康解读 | photo_read | 智能分析医学影像与健康相关图片 |
| 热量识别 | calories | 识别食物并计算营养成分 |
核心特性
- 流式输出:实时接收 AI 响应内容
- 个性化服务:基于用户健康档案提供定制化建议
- 智能推荐:自动推荐相关健康产品与营养品
- 多轮对话:支持通过
topic_id实现上下文关联(2025.10.31 新增)
2. API 接入信息
请求地址
POST https://openapi.wisediag.com/v1/medicine/chat请求头
Content-Type: application/json
Authorization: Bearer sk-xxxxxxxxxx安全提醒:请妥善保管您的 API 密钥,切勿在客户端或前端代码中直接暴露
3. 请求参数详解
核心参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | String | ✅ | 固定值:zzkj-chat |
task_name | String | ✅ | 任务类型:chat / photo_read / calories |
messages | Array | ✅ | 消息数组,格式:[{"role": "user", "content": "..."}]💡 若不传入 system,将使用内置默认 system |
图片相关参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
image_list | Array | - | 图片 URL 列表(最多 5 张) ⚠️ 仅在 photo_read 或 calories 任务下生效 |
会话管理参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
topic_id | String | - | 会话 ID,用于上下文管理 💡 使用说明: • 不传入时:不进行会话管理,需客户端自行拼接多轮对话 • 传入时:自动管理会话上下文,每次仅需传入一轮 user prompt • 传入新 system 时:该 topic 整组会话的 system 将被更新 |
request_id | String | - | 请求唯一标识 💡 建议使用时间戳: str(int(time.time()*1000))不传入时将自动生成 |
user_id | String | - | 用户唯一标识 |
健康档案参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
member_id | String | - | - | 健康档案 ID(如:sample_1) |
use_health_record | Integer | - | 1 | 是否启用健康档案1=启用 / 0=关闭 |
知识库与检索参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
query_understand | Integer | - | 1 | 是否进行查询理解分析 详见下方「参数联动规则」 |
local_DB | Integer | - | 1 | 是否使用本地知识库 |
use_ch_medicine | Integer | - | 1 | 是否启用中医知识库 需同时启用 local_DB |
expert_DB | Integer | - | 1 | 是否使用专家知识库 |
web_engine | Integer | - | 1 | 是否开启医学专网搜索 |
其他参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
product_open | Integer | - | 1 | 是否开启商品推荐1=开启 / 0=关闭 |
language | String | - | zh | 语言代码:zh / en / id / ar 等⚠️ 非中文语言仅支持聊天任务 |
4. 参数联动规则
query_understand 参数重要说明
规则 1:启用查询理解时
当 query_understand = 1 时,必须至少启用一个知识源,否则不会生效。
正确配置示例
{
"query_understand": 1,
"local_DB": 1,
"expert_DB": 1,
"web_engine": 0
}规则 2:关闭查询理解时
当 query_understand = 0 时,为保证召回质量与输出质量,所有知识库参数(local_DB、expert_DB、web_engine)将自动关闭,即使设置为 1 也不会生效。
正确配置示例
{
"query_understand": 0,
"local_DB": 0,
"expert_DB": 0,
"web_engine": 0
}5. 请求示例
以下为标准请求代码模板(Python):
import requests
import json
import time
url = "https://openapi.wisediag.com/v1/medicine/chat"
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer sk-xxxxxxxxxx' # 替换为你的实际API密钥
}
data = {
"model": "zzkj-chat",
"task_name": "chat", # "photo_read"、"calories"、"chat"
"image_list": [
"https://example.com/image1.jpg" # 仅在 photo_read 或 calories 任务下使用,需要替换真实链接
],
"messages": [
{"role": "user", "content": "我在平时的饮食中需要注意什么?"}
],
# 系统参数
"topic_id": "test_001",
"request_id": str(int(time.time() * 1000)),
"user_id": "",
"member_id": "sample_1",
# 检索相关
"query_understand": 0,
"local_DB": 0,
"use_ch_medicine": 0,
"expert_DB": 0,
"web_engine": 0,
# 健康档案
"use_health_record": 1,
# 推荐相关
"product_open": 1,
# 语言
"language": "zh"
}
with requests.post(url, headers=headers, json=data, stream=True) as response:
if response.status_code != 200:
print(f"请求失败,状态码: {response.status_code}")
else:
think_text = ""
text = ""
products_text = ""
for line in response.iter_lines():
if line.decode('utf-8').split("data:")[-1].strip() == "[DONE]":
break
if line:
response_data = json.loads(line.decode('utf-8').split("data:")[-1].strip())
if response_data["type"] == "content":
content = response_data.get("content") or ""
reasoning = response_data.get("reasoning_content") or ""
print(content or reasoning, end="")
think_text += reasoning
text += content
elif response_data["type"] == "products":
for p in response_data["data"]:
print("\n", p, "\n")
products_text += f"\n{p}\n"
result = f"<think>{think_text}</think>\n{text}{products_text}"6. 响应格式说明
接口采用流式输出模式,每次返回一行 JSON 数据:
响应类型
类型 1:内容输出
{
"type": "content",
"content": "模型回答内容...",
"reasoning_content": "推理过程..."
}类型 2:产品推荐
{
"type": "products",
"data": [
{
"product_name": "产品名称",
"description": "产品描述",
...
}
]
}结束标识
流式输出结束时,会返回:
data: [DONE]7. 健康档案示例
以下为 member_id = "sample_1" 的档案数据示例:
基础信息
- 昵称:康小鹿
- 性别:男
- 年龄:32 岁
- 身高:175.0 cm
- 体重:53.0 kg
- BMI:17.3(偏瘦)
既往史
| 会话时间 | 发病时间 | 疾病名称 | 疾病状态 | 治疗情况 | 管理目标 |
|---|---|---|---|---|---|
| 2025-01-17 | 2025-01-17 | 头痛 | 未明确 | 热敷额头、喝温水休息 | 缓解头痛 |
| 2025-03-26 | 2025-03-26 | 肚子疼 | 未明确 | 饮食调理、按摩放松 | 缓解疼痛 |
| 2025-06-09 | 2025-06-09 | 心慌胸闷 | 未明确 | 建议症状加重时就医 | 缓解症状 |
| 2025-10-18 | 2025-10-18 | 类风湿关节炎 | 右手腕活动范围稍受限 | 长期服用艾拉莫德片 | 控制病情 |
其他史
- 个人史:偶尔少量饮酒;每日爬楼梯约 100 层(运动量大)
- 家族史:外婆有糖尿病;爷爷辈有心脏病
- 过敏史:海鲜过敏;牛奶过敏
- 社会史:家庭环境存在心理压力,持续焦虑倾向,自主神经紊乱,内分泌失调
- 药物史:长期服用艾拉莫德片(类风湿关节炎治疗)
8. 重要注意事项
健康档案启用条件
健康档案功能需要同时满足以下条件才能生效:
- 设置
use_health_record = 1 - 提供有效的
member_id
启用后,AI 将结合用户档案信息提供个性化的饮食、运动、用药等建议。
健康档案动态更新功能
若需实现以下高级功能:
- 根据历史会话内容实时更新健康档案信息
- 在聊天中调用历史问诊详情或上下文内容
必须购买并启用「健康档案管理组件整套方案」
否则,系统仅使用静态健康档案(档案内容固定,不随会话更新)。
API 密钥安全
- 请妥善保管您的 API 密钥(
Authorization字段) - 切勿在客户端或前端代码中直接暴露密钥
- 建议通过后端服务器代理 API 请求
多语言支持
| 语言 | 代码 | 支持功能 |
|---|---|---|
| 中文 | zh | 所有功能(完整支持) |
| 英文 | en | 仅支持聊天任务 |
| 印尼语 | id | 仅支持聊天任务 |
| 阿拉伯语 | ar | 仅支持聊天任务 |
流式响应处理
- 每条返回数据均为独立的 JSON 行
- 必须正确处理流式数据的解析
- 输出结束标识为
data: [DONE]
9. 技术支持
如有任何问题或需要技术支持,请联系我们的开发者服务团队。