healthapp
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

06-AI对话模块

目标

实现 AI 健康问诊对话功能,支持多轮对话、结合用户体质信息、流式响应。


前置要求

  • 体质辨识模块已完成
  • 已有 AI API Key(OpenAI / 通义千问)

实施步骤

详细代码请参考原文档 02-后端开发/06-AI对话模块.md

主要任务

  1. 创建 AI 客户端抽象 internal/service/ai/client.go
  2. 实现 OpenAI 客户端 internal/service/ai/openai.go
  3. 实现阿里云通义千问客户端 internal/service/ai/aliyun.go
  4. 创建 AI 客户端工厂 internal/service/ai/factory.go
  5. 创建对话 Repository internal/repository/impl/conversation.go
  6. 创建对话 Service internal/service/conversation.go
    • 系统提示词模板
    • 用户体质信息注入
    • 产品推荐整合
  7. 创建对话 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 发送消息

系统提示词要点

  1. 角色定义:健康咨询助理(非医师)
  2. 紧急情况:胸痛、高烧等必须建议就医
  3. 用户信息:性别、年龄、BMI
  4. 体质信息:主体质、特征描述
  5. 用药历史:近期用药记录
  6. 产品推荐:体质相关保健品

验收标准

  • 创建/获取/删除对话正常
  • 发送消息返回 AI 回复
  • AI 回复结合用户体质
  • 对话历史正确保存
  • 支持 OpenAI 和阿里云切换
  • 紧急情况提示就医

预计耗时

40-50 分钟


下一步

完成后进入 04-后端开发/07-健康档案模块.md