# DeepChat **Repository Path**: lighter_cd_admin/deep-chat ## Basic Information - **Project Name**: DeepChat - **Description**: deepseek的简单聊天界面 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-19 - **Last Updated**: 2025-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DeepChat - AI 对话应用 一个仿 DeepSeek Chat 的全栈 AI 对话应用,使用现代 Web 技术栈构建。 ## 🚀 技术栈 ### 前端 - **Alpine.js** - 轻量级响应式框架 - **Tailwind CSS** - 实用优先的 CSS 框架 - **TypeScript** - 类型安全的 JavaScript - **Vite** - 快速的构建工具 ### 后端 - **Node.js** - JavaScript 运行时 - **Express** - Web 应用框架 - **TypeScript** - 类型安全开发 - **SQLite** - 轻量级数据库 - **OpenAI API** - AI 模型接口 ## 📦 功能特性 - ✅ 实时 AI 对话 - ✅ 深度思考模式 (显示AI推理过程) - ✅ 多模型支持 (DeepSeek Chat) - ✅ 对话历史管理 (创建、删除、重命名) - ✅ 文件上传功能 (支持多种格式) - ✅ 消息持久化存储 - ✅ API 使用统计 - ✅ 响应式界面设计 - ✅ 错误处理和日志记录 - ✅ 请求速率限制 - ✅ 完整的测试套件 ## 🛠️ 安装和设置 ### 1. 克隆项目 ```bash git clone cd deepchat-clone ``` ### 2. 安装依赖 ```bash npm run install:all ``` ### 3. 环境配置 复制服务器环境配置文件: ```bash cp server/.env.example server/.env ``` 编辑 `server/.env` 文件,填入你的配置: ```env # OpenAI API 配置 OPENAI_API_KEY=your_openai_api_key_here OPENAI_BASE_URL=https://api.openai.com/v1 # 服务器配置 PORT=3003 NODE_ENV=development # 数据库配置 DATABASE_PATH=./data/deepchat.db # 安全配置 JWT_SECRET=your_jwt_secret_here RATE_LIMIT_WINDOW_MS=900000 RATE_LIMIT_MAX_REQUESTS=100 ``` ### 4. 初始化数据库 数据库会在首次启动服务器时自动初始化。 ## 🚀 运行项目 ### 开发模式 ```bash npm run dev ``` 这将同时启动: - 前端开发服务器:http://localhost:3002 (如果 3000 端口被占用) - 后端 API 服务器:http://localhost:3003 ### 单独运行 ```bash # 仅运行前端 (端口 3000) npm run client:dev # 仅运行后端 (端口 3003) npm run server:dev ``` ### 生产构建 ```bash npm run build npm start ``` ## ⚠️ 重要配置 ### OpenAI API 密钥 为了使 AI 聊天功能正常工作,你需要: 1. 获取 OpenAI API 密钥(访问 https://platform.openai.com/api-keys ) 2. 编辑 `server/.env` 文件 3. 将 `OPENAI_API_KEY=sk-demo-key-please-replace-with-real-key` 替换为你的真实 API 密钥 **注意**:在没有配置真实 API 密钥的情况下,聊天功能会返回配置错误信息。 ## 📁 项目结构 ``` deepchat-clone/ ├── client/ # 前端项目 │ ├── src/ │ │ ├── main.ts # 主应用逻辑 │ │ └── style.css # 样式文件 │ ├── index.html # 主页面 │ ├── package.json │ ├── vite.config.ts │ ├── tailwind.config.js │ └── tsconfig.json ├── server/ # 后端项目 │ ├── src/ │ │ ├── database/ # 数据库相关 │ │ ├── middleware/ # 中间件 │ │ ├── routes/ # API 路由 │ │ └── index.ts # 服务器入口 │ ├── .env.example # 环境变量示例 │ ├── package.json │ └── tsconfig.json └── package.json # 根项目配置 ``` ## 🔧 API 接口 ### 聊天完成 ```http POST /api/chat/completions Content-Type: application/json { "model": "gpt-3.5-turbo", "messages": [ { "role": "user", "content": "Hello!" } ], "temperature": 0.7, "max_tokens": 2000 } ``` ### 获取模型列表 ```http GET /api/chat/models ``` ### 获取使用统计 ```http GET /api/chat/stats ``` ### 健康检查 ```http GET /health ``` ## 🎨 界面特性 - 🌓 深色主题设计 - 📱 响应式布局 - 💬 实时对话界面 - 📝 Markdown 消息渲染 - ⏱️ 消息时间戳 - 🔄 加载状态指示 - 📊 模型选择器 ## 🛡️ 安全特性 - 🚫 请求速率限制 - 🔒 输入验证和清理 - 🛡️ Helmet 安全头 - 📝 错误日志记录 - 🚨 优雅错误处理 ## 📊 数据库设计 ### 表结构 - `conversations` - 对话记录 - `messages` - 消息内容 - `api_logs` - API 调用日志 ## 🔄 开发流程 1. 前端使用 Vite 开发服务器,支持热重载 2. 后端使用 tsx watch 模式,自动重启 3. 使用 TypeScript 提供类型安全 4. ESLint 和 Prettier 保证代码质量 ## 🧪 测试 本项目包含完整的测试套件,包括单元测试、集成测试和端到端测试。 ### 快速运行测试 ```bash # 自动安装依赖并运行所有测试 ./run-tests.sh # Linux/Mac run-tests.bat # Windows ``` ### 手动运行测试 ```bash # 后端测试 cd server npm test # 前端测试 cd client npm test # 生成覆盖率报告 npm run test:coverage ``` 详细测试文档请查看: [TESTING.md](./TESTING.md) ## 📝 配置说明 ### 前端配置 - `vite.config.ts` - Vite 构建配置 - `tailwind.config.js` - Tailwind CSS 配置 - `tsconfig.json` - TypeScript 配置 ### 后端配置 - `.env` - 环境变量配置 - `tsconfig.json` - TypeScript 配置 ## 🚀 部署建议 ### 开发环境 - 使用 `npm run dev` 启动开发服务器 - 前端自动代理 API 请求到后端 ### 生产环境 - 构建前端静态文件 - 使用 Nginx 或 Apache 托管静态文件 - PM2 或 Docker 运行后端服务 - 使用 HTTPS 和域名 ## 🤝 贡献指南 1. Fork 项目 2. 创建功能分支 3. 提交更改 4. 发起 Pull Request ## 📄 许可证 MIT License ## 🙋‍♂️ 支持 如有问题,请创建 Issue 或联系开发者。