# ai **Repository Path**: yu-zhixing/ai ## Basic Information - **Project Name**: ai - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-20 - **Last Updated**: 2026-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI智能客服系统 - 小飞专属男朋友 一个基于阿里云百炼API的智能客服系统,前端使用Vue3 + TypeScript + Element Plus,后端使用Python + Flask。 ## 功能特性 ### 智能客服(frontend) - 🤖 基于阿里云百炼API(qwen-turbo免费模型)的智能对话 - 💕 AI身份配置为"小飞专属男朋友",提供亲密体贴的对话体验 - 💬 美观的对话框界面,支持实时对话 - 流式输出,打字机效果实时显示AI回复 - 📝 对话历史记录保存与管理 - 📚 提示词管理系统,支持向量存储与检索 - 🏷️ 提示词分类与标签管理 - 🔄 提示词版本控制与历史记录 - 🎨 现代化UI设计,参照豆包应用风格 - ⚡ 快速响应,流畅的用户体验 ### 管理系统(admin) - 📊 数据统计 - 额度实时查看(总额度、已用额度、可用额度) - 用户活跃度统计(日/周/月活跃用户) - ECharts图表集成(使用趋势、Token消耗、额度使用) - 👥 用户管理(用户列表、搜索、状态管理) - 💰 Token管理 - 新用户自动分配10000 Token初始额度 - Token消耗实时监控 - 管理员充值功能(带二次确认和操作日志) - 低余额提醒 - 权限控制 - 基于角色的权限系统(超级管理员、管理员、操作员) - JWT登录认证(30分钟过期) - Token过期自动检测并跳转登录 - 登录失败锁定机制 - 权限管理(角色管理、权限分配、权限验证) - 📋 操作日志 - 所有操作自动记录 - 支持按类型和时间筛选 - 管理员可清空日志 - ⚙️ 系统设置 - Token额度配置 - 安全参数设置 - 管理员账号管理 ## 技术栈 ### 前端 - Vue 3.4 - TypeScript - Element Plus 2.5 - Vite 5.0 - Axios - Pinia(状态管理) - Vue Router 4 - ECharts 5(图表) ### 后端 - Python 3.8+ - Flask 3.0 - OpenAI SDK(兼容百炼API) - Flask-CORS - ChromaDB(向量数据库) - PyJWT(认证) - bcrypt(密码加密) - captcha(验证码生成) - Pillow(图片处理) ### 安全特性 1. **JWT认证**:30分钟Token过期,自动检测并跳转登录 2. **密码加密**:使用bcrypt加密存储密码 3. **登录保护**:连续失败5次锁定账号15分钟 4. **权限控制**:基于角色的细粒度权限 5. **操作日志**:所有敏感操作自动记录 6. **输入验证**:所有API接口进行参数验证 7. **CORS配置**:只允许指定来源访问 ## 项目结构 ``` ai/ ├── backend/ # 统一后端服务(frontend + admin) │ ├── app.py # Flask主应用 │ ├── auth_manager.py # 用户认证管理(frontend用户) │ ├── admin_manager.py # 管理员管理(admin用户) │ ├── permission_manager.py # 权限管理 │ ├── chat_service.py # 对话服务 │ ├── config.py # 配置文件 │ ├── history_manager.py # 历史记录管理 │ ├── prompt_manager.py # 提示词管理 │ ├── conversation_manager.py # 对话管理 │ ├── requirements.txt # Python依赖 │ └── data/ # 数据文件目录 │ ├── frontend_users.json # frontend用户数据 │ ├── admin_users.json # admin用户数据 │ └── ... │ ├── frontend/ # 智能客服前端 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── components/ # Vue组件 │ │ ├── views/ # 页面组件 │ │ ├── stores/ # 状态管理 │ │ ├── types/ # TypeScript类型定义 │ │ ├── App.vue # 根组件 │ │ └── main.ts # 入口文件 │ ├── index.html │ ├── package.json │ └── vite.config.ts │ └── admin/ # 管理系统前端 ├── backend/ # (已废弃,使用统一后端) ├── src/ │ ├── api/ # API接口 │ ├── layouts/ # 布局组件 │ ├── router/ # 路由配置 │ ├── stores/ # 状态管理 │ ├── types/ # TypeScript类型 │ ├── views/ # 页面组件 │ ├── App.vue # 根组件 │ └── main.ts # 入口文件 ├── index.html ├── package.json └── vite.config.ts ``` ## 快速开始 ### 1. 克隆项目 ```bash git clone https://gitee.com/yu-zhixing/ai.git cd ai ``` ### 2. 安装依赖 #### 后端依赖 ```bash cd backend pip install -r requirements.txt ``` #### 前端依赖 ```bash # frontend 依赖 cd ../frontend npm install # admin 依赖 cd ../admin npm install ``` ### 3. 配置环境变量 **重要**:API密钥需要通过环境变量配置,不要硬编码在代码中。 1. 复制示例配置文件: ```bash cd backend cp .env.example .env ``` 2. 编辑 `backend/.env` 文件,填入您的API密钥: ``` DASHSCOPE_API_KEY=your-actual-api-key-here SECRET_KEY=your-secret-key-change-in-production ``` 或者设置环境变量: ```bash export DASHSCOPE_API_KEY='your-api-key-here' ``` ### 4. 安全配置 项目已内置多项安全特性: - 输入验证和过滤(防止XSS和注入攻击) - 速率限制(每分钟最多10次请求) - CORS配置(只允许指定来源访问) - 错误处理(不暴露敏感信息) - 安全日志记录 - JWT认证(30分钟Token过期) - 密码加密(bcrypt) - 登录保护(连续失败5次锁定账号15分钟) - 权限控制(基于角色的细粒度权限) 详细安全配置请查看 [SECURITY.md](SECURITY.md) ### 5. 启动服务 #### 启动后端服务 ```bash cd backend python app.py ``` 后端服务将运行在 http://localhost:5000 #### 启动前端服务 ```bash # frontend(智能客服) cd frontend npm run dev # 运行在 http://localhost:3000 # admin(管理系统) cd admin npm run dev # 运行在 http://localhost:3001 ``` ### 6. 访问应用 - **智能客服**: http://localhost:3000 - **管理系统**: http://localhost:3001 **默认管理员账号**: - 用户名:admin - 密码:admin123 ## API接口地址:http://localhost:5000/docs ## API接口说明 ### 智能客服接口(frontend) #### 发送消息(普通模式) - **URL**: `POST /api/chat` - **参数**: ```json { "message": "用户消息", "session_id": "会话ID(可选)" } ``` - **响应**: ```json { "success": true, "message": "AI回复内容", "session_id": "会话ID" } ``` #### 发送消息(流式模式) - **URL**: `POST /api/chat/stream` - **说明**: 使用Server-Sent Events (SSE)实现流式输出 - **参数**: ```json { "message": "用户消息", "session_id": "会话ID(可选)" } ``` - **响应格式**: `text/event-stream` #### 获取对话历史 - **URL**: `GET /api/history/{session_id}` #### 清空对话历史 - **URL**: `DELETE /api/clear/{session_id}` #### 对话管理 - **获取对话列表**: `GET /api/conversations` - **创建对话**: `POST /api/conversations` - **更新对话**: `PUT /api/conversations/{id}` - **删除对话**: `DELETE /api/conversations/{id}` #### 提示词管理 - **获取提示词列表**: `GET /api/prompts` - **创建提示词**: `POST /api/prompts` - **更新提示词**: `PUT /api/prompts/{id}` - **删除提示词**: `DELETE /api/prompts/{id}` - **搜索提示词**: `POST /api/prompts/search` - **获取分类**: `GET /api/prompts/categories` - **获取标签**: `GET /api/prompts/tags` - **获取版本历史**: `GET /api/prompts/{id}/versions` - **恢复版本**: `POST /api/prompts/{id}/restore` #### 用户认证 - **获取验证码**: `GET /api/auth/captcha` - **用户注册**: `POST /api/auth/register` - **用户登录**: `POST /api/auth/login` - **检查用户名**: `GET /api/auth/check-username/{username}` - **检查邮箱**: `GET /api/auth/check-email/{email}` ### 管理系统接口(admin) #### 认证接口 - `POST /api/admin/login` - 用户登录 #### 数据统计 - `GET /api/admin/quota` - 获取额度信息 - `GET /api/admin/users/stats` - 获取用户统计 - `GET /api/admin/stats/trend` - 获取趋势数据 - `GET /api/admin/stats/token` - 获取Token统计 - `GET /api/admin/stats/quota` - 获取额度图表数据 #### 用户管理 - `GET /api/admin/users` - 获取用户列表 - `PUT /api/admin/users/` - 更新用户信息 - `POST /api/admin/tokens/recharge` - Token充值 - `GET /api/admin/users//permissions` - 获取用户权限 - `PUT /api/admin/users//role` - 更新用户角色 #### Token管理 - `GET /api/admin/tokens/stats` - 获取Token统计 - `GET /api/admin/tokens/records` - 获取Token记录 #### 权限管理 - `GET /api/admin/permissions` - 获取权限列表 - `GET /api/admin/permissions/categories` - 获取权限分类 - `POST /api/admin/permissions` - 添加权限 - `PUT /api/admin/permissions/` - 更新权限 - `DELETE /api/admin/permissions/` - 删除权限 - `POST /api/admin/permissions/check` - 检查权限 #### 角色管理 - `GET /api/admin/roles` - 获取角色列表 - `POST /api/admin/roles` - 添加角色 - `PUT /api/admin/roles/` - 更新角色 - `DELETE /api/admin/roles/` - 删除角色 - `PUT /api/admin/roles//permissions` - 更新角色权限 #### 操作日志 - `GET /api/admin/logs` - 获取操作日志 - `DELETE /api/admin/logs` - 清空操作日志 #### 系统设置 - `GET /api/admin/settings` - 获取系统设置 - `PUT /api/admin/settings` - 更新系统设置 - `GET /api/admin/admins` - 获取管理员列表 - `POST /api/admin/admins` - 添加管理员 - `PUT /api/admin/admins//password` - 重置管理员密码 ## 账户系统说明 ### 账户隔离 - **frontend用户**:智能客服系统的普通用户,数据存储在 `frontend_users.json` - **admin用户**:管理系统的管理员,数据存储在 `admin_users.json` - 两个系统的账户数据完全隔离,权限不互通 ### 权限体系 - **super_admin**:超级管理员,拥有所有权限 - **admin**:普通管理员,拥有大部分管理权限 - **operator**:操作员,拥有基本操作权限 ## 注意事项 1. 确保已安装 Python 3.8+ 和 Node.js 16+ 2. 需要有效的阿里云百炼API密钥 3. 后端服务默认运行在5000端口,frontend运行在3000端口,admin运行在3001端口 4. 对话历史保存在 `backend/chat_history.json` 文件中 5. 提示词数据保存在 `backend/prompt_database/` 目录 6. 生产环境必须修改 `SECRET_KEY` 7. 生产环境设置 `DEBUG_MODE=False` 8. 定期备份 `data/` 目录下的数据文件 9. 建议配置HTTPS加密传输 10. 定期查看操作日志,发现异常行为 11. admin前端项目使用统一后端服务(`d:\ai\backend`),无需单独启动后端 12. 两个系统的账户数据完全隔离,权限不互通 ## 许可证 MIT License