Browse by type
一个面向情感支持场景的开源 AI 对话应用。项目由 FastAPI 后端与 React 前端组成,集成情绪与意图识别、长期记忆、RAG 知识库、Agent 技能、流式响应和自动评估,并可连接智谱 GLM、通义千问、OpenAI 等兼容 OpenAI API 的模型服务。
[!IMPORTANT] 本项目用于技术研究与情感支持,不提供医疗诊断或专业心理治疗。遇到紧急危险或自伤风险时,请立即联系当地急救机构、危机干预热线或可信赖的人。

| 层级 | 技术 |
|---|---|
| 前端 | React 18、Axios、styled-components、react-markdown |
| API | Python 3.10+、FastAPI、Uvicorn、Pydantic v1 |
| AI | OpenAI-compatible API、LangChain、Runtime + Skills |
| 数据 | MySQL / SQLite、ChromaDB、Redis(可选) |
| 运维 | Docker Compose、Nginx、Prometheus、Grafana |
git clone https://github.com/congde/emotional_chat.git
cd emotional_chat
复制示例配置:
# macOS / Linux
cp config.env.example config.env
# Windows PowerShell
Copy-Item config.env.example config.env
至少修改以下三项:
LLM_API_KEY=your_api_key
LLM_BASE_URL=https://open.bigmodel.cn/api/paas/v4/
DEFAULT_MODEL=glm-5.1
也可以切换到其他兼容服务,例如通义千问:
LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
DEFAULT_MODEL=qwen-plus
本地不使用 MySQL 时,可在 config.env 中启用 SQLite:
USE_SQLITE=1
SQLITE_PATH=./data/emotional_chat_local.db
完整选项见 config.env.example。请勿提交包含真实密钥的 config.env。
python -m venv .venv
# macOS / Linux
source .venv/bin/activate
# Windows PowerShell
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
cd frontend
npm install
cd ..
在项目根目录运行:
python main.py
该命令会在同一个终端中启动后端和前端。按 Ctrl+C 可同时停止两个服务。后端启动时会检查依赖并初始化本地知识库。
若需要单独启动服务进行调试,可分别运行:
# 后端
python run_backend.py
# 前端(另一个终端)
cd frontend
npm start
浏览器访问 http://localhost:3000。若后端不在本机 8000 端口,请创建 frontend/.env.local:
REACT_APP_API_URL=http://your-backend-host:8000
一次性初始化、数据库维护、演示和兼容启动工具统一放在 scripts/;安装与平台说明统一放在 docs/。项目根目录只保留正式入口、配置和部署文件。
在安装了 GNU Make 的环境中,可以使用:
make help # 查看全部命令
make install # 安装 Python 依赖
make run # 启动后端并初始化知识库
make rag-init # 初始化 RAG 知识库
make db-upgrade # 执行数据库迁移
make db-check # 检查数据库连接
运行测试:
pytest
cd frontend && npm test
项目提供包含后端、MySQL、Redis、Nginx 与监控组件的 Compose 配置:
Copy-Item config.env.example config.env # Windows
docker compose up -d --build
docker compose ps
Compose 文件不会构建 React 开发服务器;生产环境前端应先执行 npm run build,再交由静态服务器或 Nginx 托管。部署前请修改示例密码、限制 CORS、配置 HTTPS,并按机器资源选择是否启用监控与日志组件。完整说明见 生产部署指南。
React Web
│ HTTP / SSE
▼
FastAPI routers
▼
Chat / Emotion / Intent / Memory / Agent services
├── OpenAI-compatible LLM
├── ChromaDB knowledge & semantic memory
├── MySQL or SQLite persistence
└── Redis cache (optional)
主要目录:
backend/ FastAPI 应用、路由、服务和核心模块
agent/ Agent 核心与工具调用
runtime/ Runtime + Skills 对话运行时
modules/ 意图、RAG、LLM 与多模态模块
routers/ HTTP / SSE API
services/ 聊天、记忆、上下文与个性化服务
frontend/ React Web 客户端
knowledge_base/ 内置知识资料
docs/ 架构、部署与功能文档
test_*.py 后端测试与评估脚本
欢迎提交 Issue 和 Pull Request。提交前请确保改动聚焦、测试通过,并同步更新相关文档。Python 代码遵循项目现有的 Black/Ruff 配置。
如有问题或建议,欢迎通过以下方式联系:
jx-yuancongde本项目采用 MIT License。
$ claude mcp add emotional_chat \
-- python -m otcore.mcp_server <graph>