# mindcare_backend **Repository Path**: ldjexist/mindcare_backend ## Basic Information - **Project Name**: mindcare_backend - **Description**: AI-MindCare心灵关怀项目(后端),本项目旨在以AI技术情感分析大模型和情感分析知识图谱为依托,结合心理学、文学、历史学跨学科知识,开发一款能够感知用户情绪、识别用户情感需求,创造历史模拟情境、在元宇宙空间中感知与对话,从而实现心理引导与情感陪伴的聊天机器人。 这个仓库存储的是我们后端的代码,目前还在进一步完善中~ - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2025-05-30 - **Last Updated**: 2026-03-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MindCare 聊天机器人后端项目 ## 项目简介 本项目旨在以AI技术情感分析大模型和情感分析知识图谱为依托,结合心理学、文学、历史学跨学科知识,开发一款能够感知用户情绪、识别用户情感需求,创造历史模拟情境、在元宇宙空间中感知与对话,从而实现心理引导与情感陪伴的聊天机器人。本产品主要面向有社交恐惧症患者、创伤后应激障碍者以及受人际关系和个人成长困扰、需要陪伴的用户,潜在客户为轻度失眠、抑郁等所有情绪失调并寻求帮助的群体。前期产品形式为前后端分离的Web应用,以文字聊天为主,后期可借助具有健康检测、语音播报和图像反馈等功能的智能电子产品实现多模态交互。产品核心是利用大语言模型(LLM)的强大自然语言理解与生成能力,结合适当的界面设计进行情境模拟和故事讲述,实现稳定的情感陪伴功能。产品力图在满足用户体验的同时,兼顾数据隐私和成本控制等要求。 ## 功能特性 1. **用户管理**:支持用户的登录和注册功能,保障用户信息安全。 2. **AI对话**:用户可以与AI进行文字聊天,AI能够感知用户情绪并给予相应的回应。 3. **情绪记录**:记录用户在对话过程中的情绪状态,便于后续分析和跟踪。 4. **心理测试**:提供多种心理测试,如MBTI、SDS等,帮助用户了解自己的心理状况。 5. **人设切换**:支持用户切换AI的人设,不同人设具有不同的性格、风格和知识背景。 ## 项目架构与设计模式 ### 项目架构 本项目采用前后端分离的架构,后端使用Python Flask框架搭建,主要负责处理业务逻辑和数据存储。前端负责与用户进行交互(由组内前端人员负责),通过API与后端进行数据通信。 ### 设计模式 该项目使用代理模式和策略模式: - **代理模式**:由`CompanionAgent`类代理了LLM服务和记忆系统,为用户提供统一的接口进行对话交互。 - **策略模式**:在人设切换功能中,不同的人设可以看作是不同的策略,`CompanionAgent`类根据用户的选择动态切换人设。 ## 技术栈 - **后端框架**:Python Flask - **数据库**:PostgreSQL - **缓存**:Redis,用于存储会话信息、Token黑名单等 - **任务队列**:Celery,用于异步处理任务,如记忆更新等 ## 目录说明 - `app.py`:Flask 启动入口 - `backend/`:统一的后端 Python 包,包含路由、核心逻辑、服务工具与数据模型 - `client/miniapp/`:小程序前端页面与前端专用工具脚本 - `assets/`:静态资源,如人格配置、音色参考、数据集和样本音频 - `runtime/`:运行期生成数据,如向量库索引、临时音频和状态快照 - `sql/`、`scripts/`、`docs/`:数据库、运维脚本和部署文档 ## 环境配置 ### 安装依赖 在项目根目录下,执行以下命令安装所需的Python依赖: ```bash pip install -r requirements.txt ``` ### 配置环境变量 在项目根目录下创建 `.env` 文件,并配置以下环境变量: ```plaintext DATABASE_URL=your_database_url JWT_SECRET_KEY=your_jwt_secret_key MINDCARE_OPENAI_API_KEY=your_openai_api_key MINDCARE_OPENAI_ENDPOINT=your_openai_endpoint REDIS_HOST=your_redis_host REDIS_PORT=your_redis_port FLASK_SECRET_KEY=your_flask_secret_key ``` ### 数据库迁移 执行以下命令进行数据库迁移: ```bash flask db init flask db migrate flask db upgrade ``` 一次性数据库修补脚本放在 `scripts/db/`,例如: ```bash python scripts/db/migrate_add_voice_source.py ``` ## 运行项目 ### 本地运行 在项目根目录下,执行以下命令启动Flask应用: ```bash python app.py ``` ### Docker容器部署 #### 构建Docker镜像 在项目根目录下,执行以下命令构建Docker镜像: ```bash docker build -t mindcare-backend . ``` #### 运行Docker容器 执行以下命令运行Docker容器: ```bash docker run -p 5000:5000 mindcare-backend ``` 完整容器部署说明见 `docs/DOCKER_DEPLOYMENT.md`,初始化数据库快照位于 `sql/dumps/full_database_dump.sql`。 ## API文档 可联系[我们](1927208337@.com)获取 ## 贡献指南 如果你想为这个项目做出贡献,请遵循以下步骤: 1. Fork这个仓库 2. 创建一个新的分支:`git checkout -b feature/your-feature-name` 3. 提交你的更改:`git commit -m 'Add some feature'` 4. 推送至远程分支:`git push origin feature/your-feature-name` 5. 提交一个Pull Request ## 许可证 本项目采用[MIT许可证](LICENSE)。 ## 联系我们 如果你有任何问题或建议,请[联系我们](1927208337@qq.com)