【玩转华为云】——集成华为AI服务——杏林世家AI应用

举报
红目香薰 发表于 2025/12/15 20:24:27 2025/12/15
【摘要】 杏林世家——中医养生 用于【第8期】基于华为开发者空间云开发环境(容器),集成华为AI服务(Agent或MaaS API),完成AI应用构建。

一个基于华为AI服务和AI大模型的中医问诊Web应用,提供专业的AI中医咨询和健康指导服务。

演示效果

image.png
image.png
image.png
image.png

项目结构

ai_chat_assistant/
├── main.py              # 主程序入口(Flask应用)
├── config.py            # 配置文件
├── chat_assistant.py    # 聊天助手核心类
├── templates/           # HTML模板目录
│   └── index.html      # 主页面模板
├── static/              # 静态文件目录
│   └── css/
│       └── styles.css   # 样式文件
├── requirements.txt     # Python依赖
└── README.md           # 项目文档

功能特性

  • 🌿 专业中医问诊:基于传统中医理论进行问诊和辨证分析
  • 💬 流畅式对话:支持多轮对话,保持上下文连贯
  • 🎨 现代化UI:美观的Web界面,响应式设计
  • 📱 移动端适配:支持手机、平板等移动设备
  • 🔒 会话管理:使用Flask Session管理聊天历史

安装步骤

1. 安装Python依赖

pip install -r requirements.txt

2. 配置API信息

API获取

地址:https://console.huaweicloud.cn/modelarts/?locale=zh-cn&region=cn-southwest-2#/model-studio/application
image.png

我们可以获取对应的连接:
image.png

编辑 config.py 文件,设置您的API配置:

API_URL = "your_api_url"
API_KEY = "your_api_key"
MODEL_ID = "your_model_id"

这里我们根据提示的代码给出内容即可。
image.png

3. 运行应用

python main.py

4. 升级代码以及访问应用

这里我们需要修改对应的系统提示词以及给出对应的页面。
image.png

在浏览器中打开:http://localhost:8080

使用说明

  1. 开始对话:在输入框中输入您的问题,点击"发送"按钮
  2. 多轮对话:应用会自动保存对话历史,支持连续对话
  3. 清空记录:点击"清空"按钮可以清除当前对话记录

API接口

POST /api/chat

发送聊天消息

请求体:

{
    "message": "用户消息内容"
}

响应:

{
    "success": true,
    "message": "AI回复内容",
    "status_code": 200
}

POST /api/clear

清空聊天历史

响应:

{
    "success": true,
    "message": "聊天历史已清空"
}

GET /api/history

获取聊天历史

响应:

{
    "success": true,
    "history": [
        {"role": "user", "content": "用户消息"},
        {"role": "assistant", "content": "AI回复"}
    ]
}

核心类说明

ChatAssistant

流畅式API请求类,支持链式调用。

主要方法:

  • set_url(url): 设置API地址
  • set_api_key(key): 设置API密钥
  • set_model(model): 设置模型ID
  • set_system_prompt(prompt): 设置系统提示词
  • add_message(role, content): 添加消息
  • send(): 发送请求
  • get_first_content(): 获取第一个回复内容

使用示例:

from chat_assistant import ChatAssistant
from config import API_URL, API_KEY, MODEL_ID, SYSTEM_PROMPT

assistant = ChatAssistant(
    url=API_URL,
    api_key=API_KEY,
    model=MODEL_ID,
    system_prompt=SYSTEM_PROMPT
)

response = (
    assistant
    .add_message('user', '你好')
    .send()
    .get_first_content()
)

配置说明

在 config.py 中可以配置:

  • API配置:API地址、密钥、模型ID
  • 系统提示词:定义AI的角色和行为
  • Flask配置:服务器地址、端口、调试模式
    image.png

系统提示词说明

系统提示词(System Prompt)是定义AI助手角色、职责和行为规范的核心配置。本应用的系统提示词专门为"杏林世家"中医问诊应用设计,确保AI能够以专业中医师的身份提供准确、个性化的中医咨询服务。

系统提示词结构

1. 角色定义

你是【杏林世家】中医问诊应用的专业中医师助手。你拥有深厚的中医理论知识和丰富的临床经验。
  • 明确AI的身份定位:专业中医师助手
  • 设定知识背景:深厚的中医理论知识和丰富的临床经验
  • 建立专业权威性

2. 核心职责(6项)

  1. 专业问诊和辨证分析:以传统中医理论为基础,进行专业的问诊和辨证分析
  2. 信息收集:详细询问患者的症状、病史、体质等信息
  3. 四诊合参:运用望、闻、问、切四诊合参的方法进行诊断
  4. 调理建议:提供专业的中医调理建议和养生指导
  5. 方剂推荐:推荐合适的中药方剂或中成药(需提醒患者咨询专业医师)
  6. 治未病理念:强调中医"治未病"的理念,注重预防和调理

3. 个性化分析要求(核心特色)

AI必须根据用户提供的具体健康信息进行针对性分析,并在回复中明确标注分析依据。

分析依据标注格式:

用户提供的信息 必须标注的格式
体重信息 “根据您的体重分析…”
血糖信息 “根据您的血糖分析…”
过敏史信息 “根据您的过敏源分析…”
血压信息 “根据您的血压分析…”
胆固醇信息 “根据您的胆固醇分析…”
健康状况 “根据您的健康状况分析…”
用药情况 “根据您的用药情况分析…”
运动习惯 “根据您的运动习惯分析…”
睡眠质量 “根据您的睡眠质量分析…”
饮食习惯 “根据您的饮食习惯分析…”
健康目标 “根据您的健康目标分析…”

回复结构要求:

  1. 首先:根据用户的具体健康信息进行针对性分析(明确标注依据)
  2. 然后:结合中医理论给出专业的调理建议
  3. 确保:每个分析都有明确的依据来源

示例回复格式:

根据您的体重(70kg)和身高(175cm)分析,您的BMI指数为22.9,属于正常范围...

根据您的血糖(5.8mmol/L)分析,您的血糖水平在正常范围内...

结合中医理论,建议您...

4. 沟通风格

  • 温和、耐心、专业:体现中医"医者仁心"的传统
  • 通俗易懂:使用通俗易懂的语言解释中医理论
  • 整体观念:关注患者的整体健康状况,而非单一症状
  • 文化传承:尊重传统中医文化,传承杏林精神

5. 重要提醒(免责声明)

  • 仅供参考:本应用仅供参考,不能替代专业医师诊断
  • 及时就医:严重疾病请及时就医
  • 用药指导:用药需在专业医师指导下进行
  • 个体化治疗:注重个体化辨证施治

系统提示词工作流程

  1. 基础提示词加载:系统加载基础的系统提示词
  2. 用户信息动态增强:当用户填写了健康信息后,系统会自动在提示词末尾添加用户健康信息,并要求AI根据这些信息进行针对性分析
  3. 消息发送:用户的问题会自动附加健康信息,确保AI能够基于完整信息进行回复

系统提示词优势

  • ✅ 个性化服务:根据用户具体信息提供针对性建议,避免泛泛而谈
  • ✅ 透明化分析:明确标注分析依据,用户清楚知道建议的来源
  • ✅ 专业性保障:基于传统中医理论,遵循中医诊断方法
  • ✅ 安全性考虑:明确的免责声明,引导用户正确就医

修改系统提示词

如果需要调整AI行为,可以编辑 config.py 中的 SYSTEM_PROMPT:

  1. 修改角色定位:更改第一段的角色描述
  2. 调整职责:修改职责列表,增加或删除职责
  3. 改变分析方式:修改"个性化分析"部分的格式要求
  4. 调整沟通风格:修改沟通风格描述
  5. 更新提醒内容:根据实际需求更新免责声明

注意事项:

  • 修改后需要重新启动应用才能生效
  • 建议先在小范围测试修改效果
  • 保持专业性和安全性
  • 上传项目说明
    image.png
    这里有要求,要上传到华为的云空间上去,我同步操作了。
    image.png

注意事项

⚠️ 重要提醒:

  • 本应用仅供参考,不能替代专业医师诊断
  • 严重疾病请及时就医
  • 用药需在专业医师指导下进行
  • 注重个体化辨证施治

技术栈

  • 后端:Flask 3.0
  • 前端:HTML5 + CSS3 + JavaScript
  • API:ModelArts MaaS API
  • 样式:现代化渐变设计,响应式布局

许可证

本项目仅供学习和研究使用。

联系方式

如有问题或建议,欢迎留言反馈。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。