集成华为AI服务——杏林世家AI应用
【摘要】 杏林世家——中医养生
用于【第8期】基于华为开发者空间云开发环境(容器),集成华为AI服务(Agent或MaaS API),完成AI应用构建。
杏林世家 - 中医问诊应用
一个基于Flask和AI大模型的中医问诊Web应用,提供专业的中医咨询和健康指导服务。
演示效果




项目结构
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获取
我们可以获取对应的连接:

编辑 config.py 文件,设置您的API配置:
API_URL = "your_api_url"
API_KEY = "your_api_key"
MODEL_ID = "your_model_id"
这里我们根据提示的代码给出内容即可。

3. 运行应用
python main.py
4. 升级代码以及访问应用
这里我们需要修改对应的系统提示词以及给出对应的页面。

在浏览器中打开:http://localhost:8080
使用说明
- 开始对话:在输入框中输入您的问题,点击"发送"按钮
- 多轮对话:应用会自动保存对话历史,支持连续对话
- 清空记录:点击"清空"按钮可以清除当前对话记录
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): 设置模型IDset_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配置:服务器地址、端口、调试模式

系统提示词说明
系统提示词(System Prompt)是定义AI助手角色、职责和行为规范的核心配置。本应用的系统提示词专门为"杏林世家"中医问诊应用设计,确保AI能够以专业中医师的身份提供准确、个性化的中医咨询服务。
系统提示词结构
1. 角色定义
你是【杏林世家】中医问诊应用的专业中医师助手。你拥有深厚的中医理论知识和丰富的临床经验。
- 明确AI的身份定位:专业中医师助手
- 设定知识背景:深厚的中医理论知识和丰富的临床经验
- 建立专业权威性
2. 核心职责(6项)
- 专业问诊和辨证分析:以传统中医理论为基础,进行专业的问诊和辨证分析
- 信息收集:详细询问患者的症状、病史、体质等信息
- 四诊合参:运用望、闻、问、切四诊合参的方法进行诊断
- 调理建议:提供专业的中医调理建议和养生指导
- 方剂推荐:推荐合适的中药方剂或中成药(需提醒患者咨询专业医师)
- 治未病理念:强调中医"治未病"的理念,注重预防和调理
3. 个性化分析要求(核心特色)
AI必须根据用户提供的具体健康信息进行针对性分析,并在回复中明确标注分析依据。
分析依据标注格式:
| 用户提供的信息 | 必须标注的格式 |
|---|---|
| 体重信息 | “根据您的体重分析…” |
| 血糖信息 | “根据您的血糖分析…” |
| 过敏史信息 | “根据您的过敏源分析…” |
| 血压信息 | “根据您的血压分析…” |
| 胆固醇信息 | “根据您的胆固醇分析…” |
| 健康状况 | “根据您的健康状况分析…” |
| 用药情况 | “根据您的用药情况分析…” |
| 运动习惯 | “根据您的运动习惯分析…” |
| 睡眠质量 | “根据您的睡眠质量分析…” |
| 饮食习惯 | “根据您的饮食习惯分析…” |
| 健康目标 | “根据您的健康目标分析…” |
回复结构要求:
- 首先:根据用户的具体健康信息进行针对性分析(明确标注依据)
- 然后:结合中医理论给出专业的调理建议
- 确保:每个分析都有明确的依据来源
示例回复格式:
根据您的体重(70kg)和身高(175cm)分析,您的BMI指数为22.9,属于正常范围...
根据您的血糖(5.8mmol/L)分析,您的血糖水平在正常范围内...
结合中医理论,建议您...
4. 沟通风格
- 温和、耐心、专业:体现中医"医者仁心"的传统
- 通俗易懂:使用通俗易懂的语言解释中医理论
- 整体观念:关注患者的整体健康状况,而非单一症状
- 文化传承:尊重传统中医文化,传承杏林精神
5. 重要提醒(免责声明)
- 仅供参考:本应用仅供参考,不能替代专业医师诊断
- 及时就医:严重疾病请及时就医
- 用药指导:用药需在专业医师指导下进行
- 个体化治疗:注重个体化辨证施治
系统提示词工作流程
- 基础提示词加载:系统加载基础的系统提示词
- 用户信息动态增强:当用户填写了健康信息后,系统会自动在提示词末尾添加用户健康信息,并要求AI根据这些信息进行针对性分析
- 消息发送:用户的问题会自动附加健康信息,确保AI能够基于完整信息进行回复
系统提示词优势
- ✅ 个性化服务:根据用户具体信息提供针对性建议,避免泛泛而谈
- ✅ 透明化分析:明确标注分析依据,用户清楚知道建议的来源
- ✅ 专业性保障:基于传统中医理论,遵循中医诊断方法
- ✅ 安全性考虑:明确的免责声明,引导用户正确就医
修改系统提示词
如果需要调整AI行为,可以编辑 config.py 中的 SYSTEM_PROMPT:
- 修改角色定位:更改第一段的角色描述
- 调整职责:修改职责列表,增加或删除职责
- 改变分析方式:修改"个性化分析"部分的格式要求
- 调整沟通风格:修改沟通风格描述
- 更新提醒内容:根据实际需求更新免责声明
注意事项:
- 修改后需要重新启动应用才能生效
- 建议先在小范围测试修改效果
- 保持专业性和安全性
- 上传项目说明

这里有要求,要上传到华为的云空间上去,我同步操作了。

注意事项
⚠️ 重要提醒:
- 本应用仅供参考,不能替代专业医师诊断
- 严重疾病请及时就医
- 用药需在专业医师指导下进行
- 注重个体化辨证施治
技术栈
- 后端:Flask 3.0
- 前端:HTML5 + CSS3 + JavaScript
- API:ModelArts MaaS API
- 样式:现代化渐变设计,响应式布局
版本信息
- 版本:v1.0.0
- 更新日期:2024年
许可证
本项目仅供学习和研究使用。
联系方式
如有问题或建议,欢迎反馈。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者




评论(0)