集成华为AI服务——杏林世家AI应用

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

杏林世家 - 中医问诊应用

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

演示效果

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.com/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
  • 样式:现代化渐变设计,响应式布局

版本信息

  • 版本:v1.0.0
  • 更新日期:2024年

许可证

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

联系方式

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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