企业微信智能客服产品设计文档

系统管理员 2026-01-22 10:42 0 阅读 0 点赞
# 企业微信智能客服系统 - 产品设计文档 **文档版本**:v1.0 **创建日期**:2026年1月22日 **设计人员**:[您的名字] **客户名称**:[客户公司名称] --- ## 文档说明 本文档是《企业微信智能客服系统》的详细产品设计文档,作为开发实施的依据。包含: - 功能需求详细说明 - 数据库设计 - 接口设计 - 界面原型 - 技术实现方案 - 开发排期 --- ## 目录 1. [需求概述](#1-需求概述) 2. [功能模块设计](#2-功能模块设计) 3. [数据库设计](#3-数据库设计) 4. [接口设计](#4-接口设计) 5. [界面设计](#5-界面设计) 6. [技术实现方案](#6-技术实现方案) 7. [开发排期](#7-开发排期) 8. [验收标准](#8-验收标准) --- ## 1. 需求概述 ### 1.1 项目背景 客户需要一套企业微信智能客服系统,用于: - 自动回答员工/客户的常见问题 - 减少人工客服工作量 - 提供7×24小时服务 - 沉淀企业知识库 ### 1.2 核心需求 ✅ **必须实现** - 企业微信机器人(私聊+群聊) - 知识库管理(文档CRUD、分类、批量导入) - RAG智能问答(语义检索+AI生成) - 后台管理(机器人配置、对话记录、统计) - 多机器人支持 - 定时消息推送 ❌ **不需要实现** - 前台网页展示 - 用户注册登录 - 评论互动功能 ### 1.3 技术要求 - 后端:PHP 7.4+ / CodeIgniter 4 - 数据库:MySQL 5.7+ - AI服务:火山方舟 / 腾讯云混元 - 部署:Linux服务器,支持HTTPS --- ## 2. 功能模块设计 ### 2.1 模块架构 ``` 系统架构 ├── 企业微信接入层 │ ├── 消息接收(Webhook) │ ├── 消息发送(API) │ └── 事件处理 │ ├── 业务逻辑层 │ ├── 机器人管理 │ ├── 对话处理 │ ├── 知识检索 │ ├── AI问答 │ └── 定时任务 │ ├── 数据访问层 │ ├── 机器人配置 │ ├── 知识库数据 │ ├── 对话记录 │ └── 用户画像 │ └── 后台管理层 ├── 机器人管理 ├── 知识库管理 ├── 对话记录 └── 统计分析 ``` ### 2.2 企业微信机器人模块 #### 2.2.1 功能列表 | 功能编号 | 功能名称 | 优先级 | 说明 | |---------|---------|--------|------| | WX-001 | 机器人创建 | P0 | 添加新机器人,配置企业微信参数 | | WX-002 | 机器人编辑 | P0 | 修改机器人配置 | | WX-003 | 机器人删除 | P0 | 删除机器人及相关数据 | | WX-004 | 机器人启用/禁用 | P0 | 控制机器人是否工作 | | WX-005 | 消息接收 | P0 | 接收企业微信推送的消息 | | WX-006 | 消息发送 | P0 | 向企业微信发送回复 | | WX-007 | 私聊支持 | P0 | 支持一对一私聊 | | WX-008 | 群聊支持 | P0 | 支持群聊@回复 | | WX-009 | 上下文记忆 | P1 | 记住最近N条对话 | | WX-010 | 定时推送 | P1 | 定时发送消息 | | WX-011 | 多机器人管理 | P0 | 支持创建多个机器人 | | WX-012 | 回调URL生成 | P0 | 自动生成回调地址 | #### 2.2.2 详细设计 **WX-001: 机器人创建** 输入参数: ```json { "name": "客服机器人", "identifier": "customer-service", "corp_id": "ww1234567890", "agent_id": "1000001", "secret": "xxxxx", "token": "mytoken", "encoding_aes_key": "43位字符串", "knowledge_spaces": [1, 2, 3], "ai_model": "ep-xxx", "system_prompt": "你是客服助手", "work_mode": "smart", "confidence_threshold": 0.7, "welcome_message": "您好", "no_answer_message": "抱歉", "support_group_chat": true, "enable_user_history": true } ``` 处理流程: 1. 验证必填字段 2. 检查identifier唯一性 3. 生成回调URL 4. 保存到数据库 5. 返回机器人ID和回调URL 输出结果: ```json { "code": 0, "msg": "创建成功", "data": { "id": 1, "callback_url": "https://yourdomain.com/wework/callback/customer-service" } } ``` **WX-005: 消息接收** 接收地址:`/wework/callback/{identifier}` 企业微信推送格式(XML): ```xml <xml> <ToUserName><![CDATA[企业微信CorpID]]></ToUserName> <FromUserName><![CDATA[UserID]]></FromUserName> <CreateTime>1234567890</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[用户消息内容]]></Content> <MsgId>1234567890</MsgId> <AgentID>1000001</AgentID> </xml> ``` 处理流程: 1. 验证签名(msg_signature) 2. 解密消息内容 3. 解析XML获取消息信息 4. 判断消息类型(文本/图片/文件) 5. 判断聊天类型(私聊/群聊) 6. 群聊检查是否@机器人 7. 调用RAG问答模块 8. 发送回复消息 9. 记录对话日志 **WX-006: 消息发送** 企业微信API:`https://qyapi.weixin.qq.com/cgi-bin/message/send` 请求格式: ```json { "touser": "UserID", "msgtype": "text", "agentid": 1000001, "text": { "content": "回复内容" } } ``` 处理流程: 1. 获取access_token 2. 构建消息体 3. 调用企业微信API 4. 处理返回结果 5. 记录发送日志 ### 2.3 知识库管理模块 #### 2.3.1 功能列表 | 功能编号 | 功能名称 | 优先级 | 说明 | |---------|---------|--------|------| | KB-001 | 文档创建 | P0 | 创建新文档 | | KB-002 | 文档编辑 | P0 | 修改文档内容 | | KB-003 | 文档删除 | P0 | 删除文档 | | KB-004 | 文档列表 | P0 | 查看文档列表 | | KB-005 | 文档搜索 | P0 | 搜索文档 | | KB-006 | 批量导入 | P0 | 批量导入文档 | | KB-007 | 分类管理 | P0 | 管理文档分类 | | KB-008 | 向量索引 | P1 | 建立向量索引 | | KB-009 | 文档预览 | P1 | 预览文档内容 | | KB-010 | 文档导出 | P2 | 导出文档 | #### 2.3.2 详细设计 **KB-001: 文档创建** 输入参数: ```json { "title": "产品使用手册", "category_id": 1, "tags": ["产品", "使用"], "content": "Markdown内容", "status": "published" } ``` 处理流程: 1. 验证必填字段 2. 保存文档基本信息 3. 提取纯文本内容 4. 如果启用Embedding,调用向量化API 5. 保存向量索引 6. 返回文档ID **KB-006: 批量导入** 支持格式:.txt, .md, .html 处理流程: 1. 上传文件到临时目录 2. 解析文件内容 3. 提取标题(文件名或第一行) 4. 提取正文内容 5. 批量插入数据库 6. 批量建立索引 7. 返回导入结果 ### 2.4 RAG问答模块 #### 2.4.1 功能列表 | 功能编号 | 功能名称 | 优先级 | 说明 | |---------|---------|--------|------| | RAG-001 | 语义检索 | P0 | 检索相关文档 | | RAG-002 | AI生成回答 | P0 | 调用AI生成答案 | | RAG-003 | 上下文管理 | P1 | 管理对话上下文 | | RAG-004 | 置信度评估 | P1 | 评估回答质量 | | RAG-005 | 引用来源 | P2 | 标注答案来源 | #### 2.4.2 详细设计 **RAG-001: 语义检索** 输入:用户问题 输出:相关文档列表(Top 5) 处理流程(启用Embedding): 1. 将问题向量化 2. 在向量数据库中检索相似文档 3. 计算相似度得分 4. 返回Top 5文档 处理流程(关键词匹配): 1. 提取问题关键词 2. 在文档标题和内容中搜索 3. 计算匹配度得分 4. 返回Top 5文档 **RAG-002: AI生成回答** 输入: - 用户问题 - 相关文档(Top 5) - 历史对话(最近10条) - 系统提示词 处理流程: 1. 构建提示词 ``` 系统角色:{system_prompt} 参考资料: 【文档1标题】 文档1内容... 【文档2标题】 文档2内容... 历史对话: 用户:xxx 助手:xxx 当前问题:{question} 请根据参考资料回答问题,如果参考资料中没有相关信息,请如实告知。 ``` 2. 调用AI API 3. 解析返回结果 4. 返回答案 ### 2.5 后台管理模块 #### 2.5.1 功能列表 | 功能编号 | 功能名称 | 优先级 | 说明 | |---------|---------|--------|------| | ADMIN-001 | 管理员登录 | P0 | 后台登录 | | ADMIN-002 | 机器人管理 | P0 | 管理机器人 | | ADMIN-003 | 知识库管理 | P0 | 管理知识库 | | ADMIN-004 | 对话记录 | P0 | 查看对话记录 | | ADMIN-005 | 统计分析 | P1 | 数据统计 | | ADMIN-006 | 系统配置 | P0 | 系统参数配置 | | ADMIN-007 | AI配置 | P0 | AI服务配置 | | ADMIN-008 | 全局配置 | P1 | 企业微信全局配置 | --- ## 3. 数据库设计 ### 3.1 数据库表清单 | 表名 | 说明 | 优先级 | |------|------|--------| | wework_bot | 企业微信机器人配置 | P0 | | wework_conversation | 对话记录 | P0 | | wework_user_history | 用户对话历史 | P1 | | wework_user_profile | 用户画像 | P1 | | wework_schedule | 定时任务配置 | P1 | | wework_global_config | 全局配置 | P1 | | kb_document | 知识库文档 | P0 | | kb_category | 文档分类 | P0 | | kb_embedding | 向量索引 | P1 | | cms_admin | 管理员 | P0 | | cms_config | 系统配置 | P0 | ### 3.2 核心表结构 #### 3.2.1 wework_bot(企业微信机器人) ```sql CREATE TABLE `wework_bot` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL COMMENT '机器人名称', `identifier` varchar(50) NOT NULL COMMENT '机器人标识', `corp_id` varchar(100) NOT NULL COMMENT '企业ID', `agent_id` varchar(50) NOT NULL COMMENT '应用ID', `secret` varchar(200) NOT NULL COMMENT '应用Secret', `token` varchar(100) NOT NULL COMMENT 'Token', `encoding_aes_key` varchar(100) NOT NULL COMMENT '加密密钥', `knowledge_spaces` text COMMENT '关联知识空间ID(JSON数组)', `ai_model` varchar(100) DEFAULT NULL COMMENT 'AI模型', `system_prompt` text COMMENT '系统提示词', `work_mode` varchar(20) DEFAULT 'smart' COMMENT '工作模式', `confidence_threshold` decimal(3,2) DEFAULT 0.70 COMMENT '置信度阈值', `welcome_message` text COMMENT '欢迎语', `no_answer_message` text COMMENT '无答案回复', `transfer_message` text COMMENT '转人工提示', `support_group_chat` tinyint(1) DEFAULT 1 COMMENT '支持群聊', `enable_user_history` tinyint(1) DEFAULT 1 COMMENT '启用用户历史', `history_context_length` int(11) DEFAULT 5 COMMENT '上下文长度', `status` tinyint(1) DEFAULT 1 COMMENT '状态', `total_conversations` int(11) DEFAULT 0 COMMENT '总对话数', `last_conversation_at` datetime DEFAULT NULL COMMENT '最后对话时间', `created_at` datetime DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `identifier` (`identifier`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企业微信机器人'; ``` #### 3.2.2 wework_conversation(对话记录) ```sql CREATE TABLE `wework_conversation` ( `id` int(11) NOT NULL AUTO_INCREMENT, `bot_id` int(11) NOT NULL COMMENT '机器人ID', `user_id` varchar(100) NOT NULL COMMENT '用户ID', `message_type` varchar(20) DEFAULT 'text' COMMENT '消息类型', `chat_type` varchar(20) DEFAULT 'single' COMMENT '聊天类型', `room_id` varchar(100) DEFAULT NULL COMMENT '群聊ID', `question` text NOT NULL COMMENT '用户问题', `answer` text COMMENT '机器人回答', `confidence` decimal(5,4) DEFAULT NULL COMMENT '置信度', `transfer_human` tinyint(1) DEFAULT 0 COMMENT '是否转人工', `response_time` int(11) DEFAULT NULL COMMENT '响应时间(ms)', `created_at` datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `bot_id` (`bot_id`), KEY `user_id` (`user_id`), KEY `created_at` (`created_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='对话记录'; ``` #### 3.2.3 kb_document(知识库文档) ```sql CREATE TABLE `kb_document` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(200) NOT NULL COMMENT '标题', `category_id` int(11) DEFAULT NULL COMMENT '分类ID', `tags` varchar(500) DEFAULT NULL COMMENT '标签', `content` longtext NOT NULL COMMENT '内容', `plain_text` longtext COMMENT '纯文本内容', `status` varchar(20) DEFAULT 'published' COMMENT '状态', `view_count` int(11) DEFAULT 0 COMMENT '查看次数', `use_count` int(11) DEFAULT 0 COMMENT '使用次数', `created_by` int(11) DEFAULT NULL COMMENT '创建人', `created_at` datetime DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `category_id` (`category_id`), KEY `status` (`status`), FULLTEXT KEY `title_content` (`title`,`plain_text`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库文档'; ``` #### 3.2.4 kb_embedding(向量索引) ```sql CREATE TABLE `kb_embedding` ( `id` int(11) NOT NULL AUTO_INCREMENT, `document_id` int(11) NOT NULL COMMENT '文档ID', `chunk_index` int(11) DEFAULT 0 COMMENT '分块索引', `content` text NOT NULL COMMENT '文本内容', `embedding` json DEFAULT NULL COMMENT '向量数据', `provider` varchar(50) DEFAULT 'volcano' COMMENT '服务商', `model` varchar(100) DEFAULT NULL COMMENT '模型', `created_at` datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `document_id` (`document_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='向量索引'; ``` --- ## 4. 接口设计 ### 4.1 企业微信回调接口 #### 4.1.1 接收消息 **接口地址**:`POST /wework/callback/{identifier}` **请求参数**(Query String): - msg_signature: 消息签名 - timestamp: 时间戳 - nonce: 随机数 **请求体**:企业微信加密的XML消息 **响应**: - 成功:HTTP 200 - 失败:HTTP 500 #### 4.1.2 URL验证 **接口地址**:`GET /wework/callback/{identifier}` **请求参数**: - msg_signature: 消息签名 - timestamp: 时间戳 - nonce: 随机数 - echostr: 验证字符串 **响应**:返回解密后的echostr ### 4.2 后台管理接口 #### 4.2.1 机器人管理 **创建机器人** - 接口:`POST /admin/wework/save` - 参数:见2.2.2节 - 响应:`{code: 0, msg: "创建成功", data: {id: 1}}` **编辑机器人** - 接口:`POST /admin/wework/save` - 参数:包含id字段 - 响应:`{code: 0, msg: "保存成功"}` **删除机器人** - 接口:`POST /admin/wework/delete` - 参数:`{id: 1}` - 响应:`{code: 0, msg: "删除成功"}` **机器人列表** - 接口:`GET /admin/wework` - 参数:`{page: 1, limit: 20, keyword: ""}` - 响应: ```json { "code": 0, "data": { "list": [...], "total": 10, "page": 1, "limit": 20 } } ``` #### 4.2.2 知识库管理 **创建文档** - 接口:`POST /admin/knowledge/save` - 参数:见2.3.2节 - 响应:`{code: 0, msg: "创建成功", data: {id: 1}}` **批量导入** - 接口:`POST /admin/import/upload` - 参数:`multipart/form-data`,files[] - 响应: ```json { "code": 0, "msg": "导入成功", "data": { "success": 10, "failed": 0, "total": 10 } } ``` ### 4.3 内部API接口 #### 4.3.1 RAG问答接口 **接口地址**:`POST /openapi/chat` **请求参数**: ```json { "message": "用户问题", "messages": [ {"role": "user", "content": "历史问题1"}, {"role": "assistant", "content": "历史回答1"} ], "knowledge_base": true, "space_ids": [1, 2], "provider": "tencent", "model": "hunyuan-lite", "system_prompt": "你是客服助手" } ``` **响应**: ```json { "code": 0, "data": { "content": "AI生成的回答", "model": "hunyuan-lite", "usage": { "prompt_tokens": 100, "completion_tokens": 50, "total_tokens": 150 } } } ``` --- ## 5. 界面设计 ### 5.1 后台管理界面 #### 5.1.1 登录页面 - 用户名/密码输入框 - 登录按钮 - 记住密码选项 #### 5.1.2 首页仪表盘 - 今日对话数 - 总对话数 - 活跃机器人数 - 知识库文档数 - 对话趋势图表 - 热门问题排行 #### 5.1.3 机器人管理页面 **列表页** - 表格显示:名称、标识、状态、对话数、最后对话时间 - 操作按钮:编辑、删除、启用/禁用、查看统计 - 顶部按钮:添加机器人 **编辑页** - 基本信息:名称、标识、描述 - 企业微信配置:企业ID、应用ID、Secret、Token、EncodingAESKey - 回调URL显示(只读) - 知识库配置:选择知识空间、AI模型、系统提示词 - 回复策略:工作模式、置信度阈值、欢迎语等 - 高级功能:群聊支持、用户历史、定时推送 - 保存按钮 #### 5.1.4 知识库管理页面 **文档列表** - 表格显示:标题、分类、标签、状态、查看数、更新时间 - 操作按钮:编辑、删除、预览 - 顶部按钮:添加文档、批量导入、分类管理 **文档编辑** - 标题输入框 - 分类选择 - 标签输入 - Markdown编辑器 - 状态选择(草稿/发布) - 保存按钮 **批量导入** - 文件上传区域(支持拖拽) - 支持格式说明 - 导入按钮 - 导入进度显示 - 导入结果列表 #### 5.1.5 对话记录页面 - 筛选条件:机器人、用户、时间范围、关键词 - 表格显示:时间、机器人、用户、问题、回答、响应时间 - 操作按钮:查看详情、导出 - 分页 #### 5.1.6 统计分析页面 - 时间范围选择 - 对话量趋势图 - 机器人使用排行 - 热门问题排行 - 用户活跃度 - 平均响应时间 - 导出报表按钮 #### 5.1.7 系统配置页面 **AI配置** - 火山方舟配置:API Key、Endpoint ID - 腾讯云配置:Secret ID、Secret Key、模型选择 - 测试连接按钮 **Embedding配置** - 服务商选择 - API配置 - 测试按钮 **全局配置** - 默认AI配置 - 默认工作模式 - 默认回复配置 - 群聊配置 - 用户历史配置 ### 5.2 界面风格 - 简洁现代的管理后台风格 - 主色调:蓝色系(#6366F1) - 响应式布局,支持PC端 - 使用Layui UI框架 - 图标使用Font Awesome --- ## 6. 技术实现方案 ### 6.1 技术栈 **后端** - 框架:CodeIgniter 4.x - 语言:PHP 7.4+ - 数据库:MySQL 5.7+ - 缓存:文件缓存(可选Redis) **前端** - UI框架:Layui 2.x - JavaScript:jQuery 3.x - 编辑器:Markdown编辑器 - 图表:ECharts **第三方服务** - 企业微信API - 火山方舟AI API - 腾讯云混元API ### 6.2 核心技术实现 #### 6.2.1 企业微信消息加解密 使用企业微信官方SDK或自实现: 1. 验证签名 2. AES解密消息 3. 解析XML 4. 处理业务逻辑 5. 构建回复 6. AES加密 7. 返回XML #### 6.2.2 RAG实现方案 **方案A:使用Embedding(推荐)** ```php // 1. 问题向量化 $questionVector = $embeddingService->embed($question); // 2. 向量检索 $docs = $this->searchByVector($questionVector, $limit = 5); // 3. 构建提示词 $prompt = $this->buildPrompt($docs, $question, $history); // 4. 调用AI $answer = $aiService->chat($prompt); ``` **方案B:关键词匹配(备选)** ```php // 1. 提取关键词 $keywords = $this->extractKeywords($question); // 2. 全文检索 $docs = $this->searchByKeywords($keywords, $limit = 5); // 3. 构建提示词 $prompt = $this->buildPrompt($docs, $question, $history); // 4. 调用AI $answer = $aiService->chat($prompt); ``` #### 6.2.3 定时任务实现 使用CodeIgniter 4的Commands + Cron: ```php // app/Commands/WeworkSchedule.php class WeworkSchedule extends BaseCommand { public function run(array $params) { // 查询待发送的定时任务 $tasks = $this->getScheduledTasks(); foreach ($tasks as $task) { // 发送消息 $this->sendScheduledMessage($task); } } } ``` Crontab配置: ```bash * * * * * cd /path/to/project && php spark wework:schedule ``` ### 6.3 性能优化 1. **数据库优化** - 添加必要索引 - 对话记录分表(按月) - 定期清理历史数据 2. **缓存策略** - access_token缓存(2小时) - 知识库文档缓存 - 向量检索结果缓存 3. **异步处理** - 向量化异步处理 - 批量导入异步处理 - 统计分析异步计算 ### 6.4 安全措施 1. **接口安全** - 企业微信签名验证 - 后台登录验证 - CSRF防护 - SQL注入防护 2. **数据安全** - 敏感信息加密存储 - 数据库备份 - 操作日志记录 3. **访问控制** - 管理员权限控制 - IP白名单(可选) - 访问频率限制 --- ## 7. 开发排期 ### 7.1 开发阶段划分 | 阶段 | 工作内容 | 工期 | 负责人 | |------|---------|------|--------| | 第1阶段 | 数据库设计、基础框架搭建 | 2天 | 后端 | | 第2阶段 | 企业微信接入、消息收发 | 3天 | 后端 | | 第3阶段 | 知识库管理、RAG问答 | 4天 | 后端 | | 第4阶段 | 后台管理界面 | 4天 | 前端 | | 第5阶段 | 定时任务、统计分析 | 2天 | 后端 | | 第6阶段 | 联调测试、Bug修复 | 3天 | 全员 | | 第7阶段 | 部署上线、文档整理 | 2天 | 全员 | **总工期**:20个工作日(约4周) ### 7.2 详细任务分解 **第1阶段:基础搭建(2天)** - Day 1 - 数据库表设计 - 创建数据库和表 - CodeIgniter 4项目初始化 - 基础配置 - Day 2 - BaseController封装 - 通用方法封装 - 后台登录功能 - 权限验证中间件 **第2阶段:企业微信接入(3天)** - Day 3 - 机器人CRUD接口 - 回调URL生成 - 消息接收接口 - Day 4 - 消息加解密实现 - XML解析 - 消息类型处理 - Day 5 - 消息发送实现 - access_token管理 - 群聊支持 **第3阶段:知识库和RAG(4天)** - Day 6 - 文档CRUD接口 - 分类管理 - 文档搜索 - Day 7 - 批量导入功能 - 文件解析 - 索引建立 - Day 8 - Embedding服务封装 - 向量化实现 - 向量检索 - Day 9 - RAG问答实现 - AI服务封装 - 提示词构建 **第4阶段:后台界面(4天)** - Day 10 - 后台布局框架 - 首页仪表盘 - Day 11 - 机器人管理页面 - 机器人编辑页面 - Day 12 - 知识库管理页面 - 文档编辑页面 - 批量导入页面 - Day 13 - 对话记录页面 - 统计分析页面 - 系统配置页面 **第5阶段:高级功能(2天)** - Day 14 - 定时任务实现 - 用户历史管理 - 上下文记忆 - Day 15 - 统计分析实现 - 数据导出 - 报表生成 **第6阶段:测试(3天)** - Day 16 - 功能测试 - 接口测试 - Day 17 - 企业微信联调 - AI服务测试 - Day 18 - Bug修复 - 性能优化 **第7阶段:上线(2天)** - Day 19 - 服务器部署 - 环境配置 - 数据迁移 - Day 20 - 文档整理 - 使用培训 - 正式上线 --- ## 8. 验收标准 ### 8.1 功能验收 #### 8.1.1 企业微信机器人 - [ ] 能够创建、编辑、删除机器人 - [ ] 能够接收企业微信消息 - [ ] 能够发送回复消息 - [ ] 支持私聊对话 - [ ] 支持群聊@回复 - [ ] 能够记住上下文(最近5-10条) - [ ] 支持多个机器人同时工作 #### 8.1.2 知识库管理 - [ ] 能够创建、编辑、删除文档 - [ ] 能够管理文档分类 - [ ] 能够批量导入文档(txt/md/html) - [ ] 能够搜索文档 - [ ] 能够建立向量索引(如启用) #### 8.1.3 RAG问答 - [ ] 能够检索相关文档 - [ ] 能够调用AI生成回答 - [ ] 回答准确率达到70%以上 - [ ] 响应时间<3秒 #### 8.1.4 后台管理 - [ ] 能够登录后台 - [ ] 能够查看对话记录 - [ ] 能够查看统计数据 - [ ] 能够配置AI服务 - [ ] 能够配置全局参数 #### 8.1.5 定时任务 - [ ] 能够创建定时任务 - [ ] 能够按时发送消息 - [ ] 支持每日、每周、每月定时 ### 8.2 性能验收 - [ ] 消息响应时间<3秒 - [ ] 支持100+并发用户 - [ ] 数据库查询优化,无慢查询 - [ ] 页面加载时间<2秒 ### 8.3 安全验收 - [ ] 企业微信签名验证正常 - [ ] 后台登录验证正常 - [ ] 无SQL注入漏洞 - [ ] 无XSS漏洞 - [ ] 敏感信息加密存储 ### 8.4 兼容性验收 - [ ] 支持Chrome、Firefox、Edge浏览器 - [ ] 支持1920×1080及以上分辨率 - [ ] 企业微信PC端和移动端正常使用 ### 8.5 文档验收 - [ ] 部署安装文档 - [ ] 管理员使用手册 - [ ] 企业微信配置指南 - [ ] 故障排查指南 - [ ] API接口文档 --- ## 9. 风险评估 ### 9.1 技术风险 | 风险 | 影响 | 概率 | 应对措施 | |------|------|------|---------| | 企业微信API变更 | 高 | 低 | 关注官方文档,及时更新 | | AI服务不稳定 | 中 | 中 | 多服务商备选,降级方案 | | 向量检索性能 | 中 | 中 | 优化算法,增加缓存 | | 并发性能不足 | 高 | 低 | 压力测试,优化代码 | ### 9.2 业务风险 | 风险 | 影响 | 概率 | 应对措施 | |------|------|------|---------| | 需求变更 | 中 | 中 | 预留扩展接口 | | 知识库质量差 | 高 | 中 | 提供导入模板,培训 | | 用户不会使用 | 中 | 中 | 详细文档,使用培训 | --- ## 10. 附录 ### 10.1 参考文档 - [企业微信API文档](https://developer.work.weixin.qq.com/document/) - [火山方舟API文档](https://www.volcengine.com/docs/82379) - [腾讯云混元API文档](https://cloud.tencent.com/document/product/1729) - [CodeIgniter 4文档](https://codeigniter.com/user_guide/) ### 10.2 术语表 - **RAG**:Retrieval-Augmented Generation,检索增强生成 - **Embedding**:向量化,将文本转换为向量 - **Webhook**:回调接口 - **access_token**:企业微信访问令牌 - **CorpID**:企业ID - **AgentID**:应用ID --- **文档结束** 如有疑问,请联系:[您的联系方式]
评论 (0)
登录 后参与评论

暂无评论