# chat_chat **Repository Path**: chees_cn/chat_chat ## Basic Information - **Project Name**: chat_chat - **Description**: 一个虚拟人物聊天的agent系统,它拥有自己的记忆功能,可以自行记忆或者遗忘;它有自己的情感系统,可以对你从陌生开始到熟悉,不同阶段和你聊天的情感表达是不一样的 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-27 - **Last Updated**: 2026-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VChat - 虚拟角色聊天平台 一个具备记忆系统和情感系统的虚拟角色聊天 Agent 系统。 ## ✨ 特性 - **记忆系统**: 拥有独立的记忆功能,可以自行记忆或遗忘对话内容 - **情感系统**: 角色会对用户从陌生到熟悉,不同阶段展现不同的情感表达 - **多租户架构**: 支持多租户隔离,适合 SaaS 部署 - **审计追踪**: 完整的审计日志,支持合规要求 - **数据隐私**: 支持 GDPR 数据导出和删除,PII 数据脱敏 ## 🏗️ 系统架构 ``` ┌─────────────────┐ ┌─────────────────┐ │ PWA (前端) │ │ Admin (管理端) │ │ React + TS │ │ React + TS │ └────────┬────────┘ └────────┬────────┘ │ │ └────────┬───────────┘ │ API (Express) ┌────────▼────────┐ │ Backend │ │ (Node.js/TS) │ ├─────────────────┤ │ Auth (JWT) │ │ Audit │ │ Privacy │ │ Compliance │ │ Chat Engine │ └────────┬────────┘ │ ┌────────▼────────┐ │ Database │ │ SQLite (Dev) │ │ PostgreSQL │ │ (Production) │ └─────────────────┘ ``` ## 🚀 快速开始 ### 环境要求 - Node.js 18+ - pnpm 8+ - SQLite (开发环境) ### 安装依赖 ```bash # 克隆项目 git clone cd chat_chat # 安装依赖 pnpm install ``` ### 配置环境变量 ```bash # 后端配置 cp apps/backend/.env.example apps/backend/.env # 编辑 apps/backend/.env,设置 JWT_SECRET 等配置 # 前端配置 cp apps/pwa/.env.example apps/pwa/.env.local ``` ### 启动开发服务器 ```bash # 启动后端 (端口 3000) cd apps/backend pnpm dev # 启动 PWA 前端 (端口 5173) cd apps/pwa pnpm dev # 启动管理后台 (端口 5174) cd apps/admin pnpm dev ``` ## 📁 项目结构 ``` chat_chat/ ├── apps/ │ ├── backend/ # 后端 API 服务 │ │ ├── src/ │ │ │ ├── api/ # API 路由 │ │ │ ├── auth/ # 认证 (JWT) │ │ │ ├── audit/ # 审计日志 │ │ │ ├── chat/ # 聊天引擎 │ │ │ ├── compliance/ # 合规 (PII 脱敏) │ │ │ ├── db/ # 数据库 Schema │ │ │ ├── permissions/ # 权限系统 │ │ │ └── privacy/ # 隐私 (GDPR) │ │ └── package.json │ │ │ ├── pwa/ # 用户端前端 │ │ ├── src/ │ │ │ ├── components/ │ │ │ ├── pages/ │ │ │ └── stores/ │ │ └── package.json │ │ │ └── admin/ # 管理后台 │ ├── src/ │ │ ├── components/ │ │ └── pages/ │ └── package.json │ ├── packages/ # 共享包 │ ├── contracts/ # API 契约 │ └── shared/ # 共享工具 │ └── README.md ``` ## 🧪 测试 ```bash # 运行后端测试 cd apps/backend pnpm test # 运行前端测试 cd apps/pwa pnpm test ``` ## 🔒 安全配置 ### 生产环境必需配置 编辑 `apps/backend/.env`: ```bash # 必须设置 - 用于 JWT 签名 JWT_SECRET=your-super-secret-key-here # 数据库 DATABASE_URL=sqlite:./data/app.db # 可选:外部 LLM 服务 OPENAI_API_KEY=sk-... ANTHROPIC_API_KEY=sk-ant-... ``` ### 安全特性 - **JWT 认证**: 15分钟访问令牌 + 7天刷新令牌 - **PII 脱敏**: 自动识别并脱敏个人身份信息 - **审计日志**: 完整的操作记录,支持合规审查 - **租户隔离**: 多租户数据隔离 - **速率限制**: 登录请求防暴力破解 ## 📝 API 文档 ### 认证 ```http POST /api/v1/auth/login Content-Type: application/json { "email": "user@example.com", "password": "password" } ``` ### 聊天 ```http POST /api/v1/chat/conversations Authorization: Bearer Content-Type: application/json { "characterId": "char-123", "initialMessage": "你好" } ``` 完整 API 文档请参阅 `apps/backend/docs/` 目录。 ## 🛠️ 技术栈 | 组件 | 技术 | |------|------| | 后端 | Node.js, Express, TypeScript | | 前端 | React, TypeScript, Tailwind CSS | | ORM | Drizzle ORM | | 数据库 | SQLite (开发), PostgreSQL (生产) | | 认证 | JWT | | 测试 | Vitest | ## 📄 许可证 MIT License ## 🤝 贡献 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 📞 支持 如有问题,请提交 Issue 或联系维护者。 --- **VChat** - 让虚拟角色拥有记忆与情感 ❤️