從“通用問答”走向“有記憶的健康夥伴”
當前,AI醫療助手已在在線問診、健康諮詢、慢病管理等場景中廣泛應用,為用户提供了便捷的初步健康支持。然而,大多數現有系統仍停留在“一次性對話”模式——每次交互都如同面對一位全新的患者,無法有效記錄或調用用户的既往病史、用藥記錄、過敏信息、生活習慣偏好等關鍵數據。
這種“失憶式”服務帶來了多重問題:
- 重複提問降低體驗:用户每次諮詢都需重新輸入基礎信息(如年齡、性別、慢性病史),造成操作繁瑣、效率低下;
- 安全隱患隱現:若系統無法識別用户對青黴素過敏,卻在後續推薦含該成分的藥物,可能引發嚴重不良反應;
- 缺乏個性化干預:糖尿病患者希望AI能結合其近期血糖趨勢提供建議;孕婦期待自動規避妊娠禁忌藥物;慢性腎病患者需要長期跟蹤肌酐、eGFR等指標變化——但現有系統難以實現動態、連續的健康管理。
為突破上述瓶頸,本文提出一種面向醫療問診場景的個性化智能體原型,深度融合華為雲 MateChat ,通過融合用户行為記憶與動態推薦機制,實現“一人一策”的健康顧問服務。
醫療智能體訓練流程:打造專業可靠的“醫學大腦”
醫療智能助手是一個基於Vue 3 + TypeScript開發的智能聊天機器人應用,專為醫療健康領域設計。它能夠提供專業的醫療健康諮詢服務,並通過用户行為跟蹤和對話記憶功能,實現個性化推薦和持續優化的用户體驗。
主要功能
- 醫療健康諮詢:提供症狀諮詢、用藥指導、疾病預防等專業醫療建議
- 個性化推薦:基於用户行為和對話歷史生成定製化健康建議
- 對話記憶:保存完整對話歷史,支持查看和切換歷史會話
應用場景
- 普通用户的日常健康諮詢
- 慢性病患者的自我管理輔助
- 健康知識的普及和教育
- 醫療資源的初步引導和查詢
技術棧
前端框架
- Vue 3:現代化的前端框架,提供響應式數據綁定和組件化開發
- TypeScript:增強代碼類型安全和開發體驗
- Vite:快速的前端構建工具,支持熱更新和優化的構建輸出
第三方庫和組件
- @matechat/core:聊天界面核心組件庫
- vue-devui:DevUI組件庫,提供豐富的UI組件
- openai:OpenAI SDK,用於與DeepSeek API交互
- localStorage:本地存儲,用於保存用户數據和對話歷史
API服務
DeepSeek API:提供醫療專業知識的大語言模型服務
系統架構
整體架構
項目採用典型的單頁應用(SPA)架構,主要分為以下幾個層次:
- UI層:負責用户界面的展示和交互
- 業務邏輯層:處理核心業務流程和用户交互
- 數據服務層:管理用户數據、行為記錄和對話歷史
- API集成層:與外部大語言模型API交互
核心模塊關係
CLI創建項目
可通過如下命令創建一個應用:
// npm
npm create matechat@latest
// pnpm
pnpm create matechat@latest
這一指令會安裝並執行create-matechat,你將會看到一些創建提示:
Please input the project name: matechat-project
Please select the template: Vue Starter
應用創建完成後通過以下命令安裝依賴並啓動開發:
cd
npm i
npm run dev
默認情況下,應用內容如下:
核心功能模塊代碼實現
醫療健康諮詢模塊
功能描述
提供專業的醫療健康諮詢服務,支持用户通過預設問題快速開始諮詢,或輸入自定義問題與智能體互動。
實現細節
系統提示詞設計 :
"你是一名專業的醫療智能助手,負責為用户提供健康諮詢、疾病預防、用藥指導、醫療機構查詢等醫療健康服務。請使用禮貌、專業的語言回答用户問題,注意保護用户隱私,不泄露敏感信息。如果遇到不確定的問題,請明確告知用户並建議其諮詢專業醫生。始終強調你只是提供參考信息,不能替代專業醫療診斷和治療。"
API調用實現:
const response = await fetch(import.meta.env.VITE_DEEPSEEK_BASE_URL + '/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${import.meta.env.VITE_DEEPSEEK_API_KEY}`
},
body: JSON.stringify({
model: 'deepseek-reasoner',
messages: [
{ role: 'system', content: systemPrompt },
{ role: 'user', content: ques }
],
stream: true
})
});
流式響應處理:支持實時顯示AI回覆內容,提升用户體驗
用户行為跟蹤與對話記憶模塊
功能描述
跟蹤用户與智能助手的所有交互行為,記錄完整對話歷史,並基於這些數據生成用户偏好模型。
實現細節
用户行為記錄:
recordBehavior(behavior: UserBehavior): void {
this.behaviors.value.push(behavior);
this.updatePreferences(behavior);
this.saveToLocalStorage();
}
對話歷史管理:
addMessageToConversation(from: 'user' | 'model', content: string): void {
if (!this.currentConversationId.value) {
this.startNewConversation();
}
const conversation = this.conversations.value.find(c => c.id === this.currentConversationId.value);
if (conversation) {
conversation.messages.push({
from,
content,
timestamp: Date.now()
});
this.saveToLocalStorage();
}
}
數據持久化:使用localStorage保存用户數據,確保頁面刷新後數據不丟失
個性化推薦系統
功能描述
基於用户行為和對話歷史,生成個性化的健康建議和內容推薦,提升用户體驗和服務質量。
實現細節
用户偏好分析:
private updatePreferences(behavior: UserBehavior): void {
// 提取健康主題關鍵詞
const healthCategories = {
'症狀諮詢': ['症狀', '不舒服', '難受', '疼痛', '異常'],
'用藥指導': ['藥物', '藥', '服用', '劑量', '副作用'],
'疾病預防': ['預防', '避免', '降低', '減少', '防止'],
// ... 更多分類
};
// 更新興趣權重
for (const [category, keywords] of Object.entries(healthCategories)) {
if (keywords.some(keyword => behavior.content.includes(keyword))) {
this.preferences.value.interests[category] =
(this.preferences.value.interests[category] || 0) + 1;
break;
}
}
}
推薦內容生成:
getRecommendations(count: number = 3): string[] {
// 根據用户興趣生成推薦
const interests = this.preferences.value.interests;
const sortedCategories = Object.entries(interests)
.sort(([,a], [,b]) => b - a)
.map(([category]) => category);
const recommendations: string[] = [];
// 基於分類生成推薦
if (sortedCategories.includes('症狀諮詢')) {
recommendations.push('您可能想了解常見症狀的自我護理方法');
}
// ... 更多推薦邏輯
return recommendations.slice(0, count);
}
效果驗證
健康諮詢模塊
用户行為跟蹤、個性化推薦模塊
總結
醫療智能體不應只是冷冰冰的知識庫,而應成為懂你、記得你、守護你的健康夥伴。通過華為雲MateChat,我們證明了在保障安全與隱私的前提下,個性化記憶機制能顯著提升醫療AI的專業性與人文關懷。
歡迎Star項目、提交Issue或貢獻醫療記憶模板 → 本文 Demo 完整代碼詳見 GitCode 倉庫https://gitcode.com/weixin_50843918/DevUI1