You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.1 KiB
2.1 KiB
06-AI对话模块
目标
实现 AI 健康问诊对话功能,支持多轮对话、结合用户体质信息、流式响应。
前置要求
- 体质辨识模块已完成
- 已有 AI API Key(OpenAI / 通义千问)
实施步骤
详细代码请参考原文档 02-后端开发/06-AI对话模块.md
主要任务
- 创建 AI 客户端抽象
internal/service/ai/client.go - 实现 OpenAI 客户端
internal/service/ai/openai.go - 实现阿里云通义千问客户端
internal/service/ai/aliyun.go - 创建 AI 客户端工厂
internal/service/ai/factory.go - 创建对话 Repository
internal/repository/impl/conversation.go - 创建对话 Service
internal/service/conversation.go- 系统提示词模板
- 用户体质信息注入
- 产品推荐整合
- 创建对话 Handler 并更新路由
AI 配置
ai:
provider: aliyun # openai, aliyun
max_history_messages: 10
openai:
api_key: "sk-xxx"
base_url: "https://api.openai.com/v1"
model: "gpt-3.5-turbo"
aliyun:
api_key: "sk-xxx"
model: "qwen-turbo"
API 接口
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/conversations | 获取对话列表 |
| POST | /api/conversations | 创建新对话 |
| GET | /api/conversations/:id | 获取对话详情 |
| DELETE | /api/conversations/:id | 删除对话 |
| POST | /api/conversations/:id/messages | 发送消息 |
系统提示词要点
- 角色定义:健康咨询助理(非医师)
- 紧急情况:胸痛、高烧等必须建议就医
- 用户信息:性别、年龄、BMI
- 体质信息:主体质、特征描述
- 用药历史:近期用药记录
- 产品推荐:体质相关保健品
验收标准
- 创建/获取/删除对话正常
- 发送消息返回 AI 回复
- AI 回复结合用户体质
- 对话历史正确保存
- 支持 OpenAI 和阿里云切换
- 紧急情况提示就医
预计耗时
40-50 分钟
下一步
完成后进入 04-后端开发/07-健康档案模块.md