# CareBot **Repository Path**: cfdy123/care-bot ## Basic Information - **Project Name**: CareBot - **Description**: 基于LLM的数字人交互系统 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-12 - **Last Updated**: 2026-08-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python ## README # 老年情感陪护数字人系统
show演示图
## 项目简介 基于AI大语言模型的老年情感陪护虚拟数字人系统,专为老年人提供心理健康支持和情感陪伴服务。 注:项目最新版本位于develop分支 **赛题**:A22 - 基于AI大语言模型的情感陪护虚拟数字人系统 --- ## 主要功能 ### 基础功能 - **文字对话** - 支持文字输入与数字人交流 - **语音输入** - 基于FunASR改进的本地语音识别(符合赛题提交要求,WER≤10%) - **语音回复** - 阿里云TTS语音合成 - **多模态感知** - DeepFace摄像头面部表情识别(符合赛题提交要求),Speechbrain语音情绪识别 - **对话记忆** - 支持30轮以上连续对话 ### 核心能力(赛题要求) | 功能 | 状态 | 说明 | |------|------|------| | 心理风险检测 | ✅ | 自动识别焦虑、抑郁、双相情感障碍倾向 | | RAG知识库 | ✅ | 心理学专业知识库,355个文档片段 | | 评估-干预-再评估闭环 | ✅ | 跟踪用户心理状态变化,评估干预效果 | | 危机干预 | ✅ | 识别自杀风险,自动提供危机热线 | | 上下文感知 | ✅ | 支持≥10轮连续对话,上下文窗口≥64K tokens | | 多模态感知 | ✅ | DeepFace面部表情识别,实现真实共情 | | 健康报告生成 | ✅ | 日度/周度报告,可发送给家属 | | 会话总结功能 | ✅ | 对话结束时生成摘要和建议 | --- ## 技术架构 ``` 用户输入(文字/语音)+ 摄像头图像 ↓ [多模态感知] → DeepFace面部表情识别 ↓ [心理风险检测] → 判断风险等级(正常/低/中/高/危机) ↓ [RAG知识库检索] → 获取相关心理学知识 ↓ [LLM生成] → DeepSeek API(含多模态上下文) ↓ [后处理] → 危机干预/专业转介建议 ↓ 返回响应(文字+语音) ``` --- ## 技术指标达成 | 要求 | 指标 | 实际 | 状态 | |------|------|------|------| | ASR模型 | WER≤10% | Whisper本地模型 | ✅ | | 多模态采集 | 可提交模型文件 | DeepFace开源模型 | ✅ | | 连续对话 | ≥10轮 | 支持30轮+ | ✅ | | 上下文窗口 | ≥8k tokens | 64K tokens | ✅ | | 响应时间 | ≤60秒 | 通常3-5秒 | ✅ | | 心理风险检测 | - | 焦虑/抑郁/双相/危机 | ✅ | --- ## 快速开始 ### 环境要求 - Python 3.8+ - Node.js 16+ - ffmpeg(用于音频处理) ### 一键启动 **Windows:** ```bash 双击 start.bat ``` **Mac/Linux:** ```bash chmod +x start.sh ./start.sh ``` ### 手动安装 ```bash # 1. 安装后端依赖 cd backend pip install -r requirements.txt # 2. 安装前端依赖 cd ../frontend npm install # 3. 启动后端 cd ../backend python api/app.py # 4. 启动前端(新终端) cd frontend npm run dev ``` 访问:http://localhost:5173 **首次启动说明:** - 会自动下载Whisper模型(约150MB) - 会自动下载DeepFace模型(约100MB) --- ## 配置说明 编辑 `backend/config/config.yaml`: ```yaml # LLM配置(DeepSeek) dialogue: model_name: "deepseek-chat" api_url: "https://api.deepseek.com/v1/chat/completions" api_key: "your-api-key" # 必填 enable_multimodal: true # 多模态感知开关 use_rag: true # 知识库开关 kb_path: "backend/data/knowledge_base" # TTS配置(阿里云) tts: provider: "aliyun" aliyun: access_key_id: "your-access-key-id" access_key_secret: "your-access-key-secret" app_key: "your-app-key" voice: "ailun" # 推荐使用新版AI声音 # ASR配置(Whisper本地模型) asr: provider: "whisper" whisper: model: "base" # 可选: tiny, base, small, medium ``` > **注意**:ASR已改用Whisper本地模型,无需配置阿里云ASR。详见 [docs/ALIYUN_SETUP.md](docs/ALIYUN_SETUP.md) --- ## API接口 ### 对话接口 | 接口 | 方法 | 说明 | |------|------|------| | `/api/dialogue` | POST | 对话接口(支持多模态数据) | | `/api/dialogue/end` | POST | 结束对话,生成总结 | | `/api/dialogue/state/` | GET | 获取对话状态 | | `/api/health` | GET | 健康检查 | ### 多模态接口 | 接口 | 方法 | 说明 | |------|------|------| | `/api/multimodal/test` | POST | 测试多模态感知 | | `/api/multimodal/status` | GET | 获取多模态服务状态 | ### 健康报告接口 | 接口 | 方法 | 说明 | |------|------|------| | `/api/reports/daily/` | GET | 获取日度健康报告 | | `/api/reports/weekly/` | GET | 获取周度健康报告 | | `/api/reports/send` | POST | 发送报告给家属 | ### 语音接口 | 接口 | 方法 | 说明 | |------|------|------| | `/api/tts` | POST | 文字转语音 | | `/api/asr` | POST | 语音转文字(Whisper) | | `/api/voice-dialogue` | POST | 语音对话(ASR+LLM+TTS一体) | ### 对话请求示例 ```bash # 基础对话 curl -X POST http://localhost:5000/api/dialogue \ -H "Content-Type: application/json" \ -d '{"user_id": "test", "input": "我最近很焦虑"}' # 携带多模态数据 curl -X POST http://localhost:5000/api/dialogue \ -H "Content-Type: application/json" \ -d '{ "user_id": "test", "input": "我没事", "multimodal_data": { "visual_emotion": "难过", "visual_notes": "眉头紧锁" } }' ``` **响应示例:** ```json { "status": "success", "response": "我能感受到您可能有些心事...", "user_id": "test", "enhanced": true, "risk_level": "low", "risk_type": "depression", "strategy": "explore", "need_professional_help": false, "response_time": 2.5, "multimodal_result": { "enabled": true, "visual_emotion": "难过", "visual_confidence": 0.85, "has_audio": false } } ``` --- ## 项目结构 ``` CareBot/ ├── .gitignore # Git忽略规则 ├── README.md # 本文档 ├── QUICK_START.md # 快速开始指南 ├── start.bat # Windows启动脚本 ├── start.sh # Linux/Mac启动脚本 │ ├── backend/ # 后端服务 │ ├── api/ │ │ └── app.py # Flask API(15个接口) │ ├── config/ │ │ └── config.yaml # 配置文件 │ ├── dialogue/ # 对话模块 │ │ ├── llm_adapter.py # LLM适配器 │ │ ├── prompt_templates.py # Prompt模板 │ │ ├── context_manager.py # 上下文管理器 │ │ ├── mental_health_detector.py # 心理风险检测 │ │ ├── enhanced_dialogue_service.py # 增强对话服务 │ │ ├── multimodal_service.py # 多模态感知服务 │ │ ├── tts_service.py # TTS服务(阿里云) │ │ └── asr_service.py # ASR服务(Whisper) │ ├── services/ │ │ └── health_report_service.py # 健康报告服务 │ ├── rag/ │ │ └── knowledge_base.py # 知识库管理 │ ├── data/ │ │ └── knowledge_base/ # 知识库文档(355片段) │ └── requirements.txt # Python依赖 │ ├── frontend/ # 前端界面 │ ├── src/ │ │ ├── App.vue # 主组件(含摄像头采集) │ │ └── main.js │ ├── public/ │ │ └── multimodal_test.html # 多模态测试页面 │ ├── package.json │ └── vite.config.js │ ├── docs/ # 文档 │ ├── A22.md # 赛题要求 │ ├── MULTIMODAL_IMPLEMENTATION.md # 多模态实现文档 │ ├── MULTIMODAL_VERIFICATION.md # 多模态验证文档 │ ├── PRIVACY_POLICY.md # 隐私政策 │ ├── API_KEY_SECURITY.md # API Key安全配置 │ └── ALIYUN_SETUP.md # 阿里云配置说明 │ └── debug/ # 调试脚本 └── ... ``` --- ## 多模态感知 ### 功能说明 系统通过DeepFace实现面部表情识别,能够感知用户真实情绪: - **支持的7种情绪**:开心、难过、生气、害怕、惊讶、厌恶、平静 - **准确率**:约85-90% - **处理方式**:本地处理,不上传云端 ### 使用方式 1. 点击前端"📹 开启摄像头"按钮 2. 允许浏览器摄像头权限 3. 系统每5秒自动采集一次图像 4. Header区域显示检测到的情绪 ### 应用场景 ``` 用户说:我没事 DeepFace检测:难过(置信度85%) 系统响应:"看起来您似乎有些心事,愿意和我说说吗?" ``` ### 隐私保护 - 摄像头图像仅在本地处理 - 不上传任何云端服务器 - 用户可随时关闭摄像头 - 详见 [docs/PRIVACY_POLICY.md](docs/PRIVACY_POLICY.md) --- ## 心理学知识库 ### 知识库内容 | 类别 | 文档数 | 内容 | |------|--------|------| | 心理健康基础 | 7 | 焦虑症、抑郁症、双相情感障碍、老年人特有心理问题 | | 应对策略 | 3 | 情绪调节方法、老年人专属策略、家庭关系指南 | | 沟通指南 | 2 | 共情倾听技巧、危机干预流程 | | 评估工具 | 1 | PHQ-9抑郁量表、GAD-7焦虑量表 | ### 知识库特点 - 针对老年人群体优化 - 包含老年特异性心理健康内容 - 支持简单检索模式(无需额外依赖) - 可选向量检索模式(需chromadb) --- ## 依赖说明 ### 核心依赖 ``` Flask>=2.3.0 Flask-CORS>=4.0.0 PyYAML>=6.0 requests>=2.31.0 openai>=1.0.0 ``` ### ASR依赖(Whisper) ``` torch>=2.1.0 openai-whisper>=20231117 librosa>=0.10.1 pydub>=0.25.1 ``` ### 多模态依赖 ``` deepface>=0.0.79 tf-keras opencv-python>=4.9.0 ``` ### TTS依赖(阿里云) ``` alibabacloud-nls-python-sdk aliyun-python-sdk-core websocket-client ``` ### 可选依赖(向量检索) ``` chromadb>=0.4.0 sentence-transformers>=2.2.0 ``` --- ## 常见问题 ### Q1: 增强对话服务未启用? A: 检查知识库目录是否存在,查看启动日志是否显示"增强对话服务: 已启用" ### Q2: 风险检测不准确? A: 风险检测基于关键词+语义分析,可在 `mental_health_detector.py` 中调整关键词 ### Q3: Whisper模型下载慢? A: 首次运行会下载模型(约150MB),可使用镜像或手动下载到 `~/.cache/whisper/` ### Q4: 多模态功能报错? A: 确保已安装deepface和opencv-python,首次运行会下载DeepFace模型 ### Q5: 摄像头无法开启? A: 确保使用localhost或HTTPS,检查浏览器摄像头权限 --- ## 更新日志 ### v4.1.0 (2026-03-20) - TTS升级版本 - TTS升级为阿里云新版WebSocket SDK - 默认声音从xiaoyun改为ailun(更自然的AI声音) - 新增AI声音:ailun、aiqi、aijia、aiyue ### v4.0.0 (2026-03-12) - 多模态版本 - 新增DeepFace面部表情识别 - 前端集成摄像头采集功能 - 新增多模态上下文注入到LLM - ASR改用Whisper本地模型 - 新增健康报告生成服务 - 新增会话结束总结功能 - 修复numpy序列化问题 - 新增隐私确认对话框 - 完善.gitignore规则 ### v3.0.0 (2026-03-10) - 增强对话版本 - 新增RAG知识库(心理学专业知识) - 新增心理风险检测(焦虑/抑郁/双相/危机) - 新增评估-干预-再评估闭环机制 - 优化Prompt为老年人友好版本 ### v2.1.0 (2026-03-07) - 阿里云语音版本 - 接入阿里云TTS语音合成 - 接入阿里云ASR语音识别 ### v1.0.0 - 初始版本 - 基础文字对话功能 - DeepSeek LLM集成 --- ## 相关文档 - [快速开始](QUICK_START.md) - 3步启动系统 - [多模态实现](docs/MULTIMODAL_IMPLEMENTATION.md) - 多模态功能详细说明 - [阿里云配置](docs/ALIYUN_SETUP.md) - TTS服务配置 - [隐私政策](docs/PRIVACY_POLICY.md) - 多模态隐私说明 - [API安全](docs/API_KEY_SECURITY.md) - API Key安全配置 - [赛题要求](docs/A22.md) - A22题目详情 --- ## 许可证 本项目用于学术研究和比赛(A22题:基于AI大语言模型的情感陪护虚拟数字人系统)。