# AI聊天功能技术实现计划 ## 1. 项目概述 基于现有徵象防伪验证系统,扩展AI客服聊天功能,继承Kimi K2大模型能力,为每个品牌租户提供个性化的AI客服服务。 ## 2. 需求分析 ### 2.1 核心功能需求 - 接入Kimi K2或其他AI大模型API - 品牌专属AI客服,独立回答本品牌产品相关问题 - 多模态回答:文字、图片、视频链接、微信小程序码等 - 联网搜索,以品牌官方信息为主 - 支持客户上传额外内容供AI学习 - 验证失败时提供对话式结果展示 - 支持品牌色调定制 ### 2.2 技术约束 - 保留原有传统查询页面 - 通过序列码批次管理选择使用页面类型 - 与现有防伪验证流程集成 ## 3. 系统架构设计 ### 3.1 整体架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 小程序前端 │ │ Web管理端 │ │ AI服务层 │ │ (AI聊天界面) │◄──►│ (内容管理) │◄──►│ (Kimi K2 API) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 验证服务 │ │ 内容存储 │ │ 知识库管理 │ │ (二维码识别) │ │ (OSS/数据库) │ │ (品牌知识) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ``` ### 3.2 数据流设计 1. 用户扫描二维码 → 验证服务 2. 验证结果 → AI聊天界面 3. 用户提问 → AI服务层处理 4. AI回答 → 返回多模态内容 5. 用户反馈 → 知识库更新 ## 4. 技术实现方案 ### 4.1 AI模型集成 #### 4.1.4 智能能力调度系统 - **架构选择**: 直接以Tool形式接入Kimi K2,无需复杂路由 - **能力分类**: 知识库检索工具、二维码扫描工具、一般问答 - **调度策略**: 依赖Kimi K2的智能判断,自动选择合适的工具 - **优势**: 实现简单、维护成本低、Kimi K2原生支持 - **扩展性**: 后续可轻松添加更多工具,无需修改路由逻辑 #### 4.1.5 本地知识库系统 - **存储方案**: 向量数据库 + 文件存储 - **内容类型**: 文字、图片、视频、文档 - **检索策略**: 语义搜索 + 关键词匹配 - **更新机制**: 支持实时更新和版本控制 - **成本优化**: 本地处理,减少API调用 **RAG流程**: - **检索(Retrieval)**:从本地知识库找到相关信息 - **增强(Augmentation)**:将检索到的信息作为上下文 - **生成(Generation)**:Kimi K2基于增强的上下文生成回答 ### 4.2 数据模型扩展 ### 4.3 后端API设计 #### 4.3.1 AI聊天API ```python # api/products/views.py class AIChatView(BaseView): name = 'ai-chat' auth_check = 'tenant' def post(self, request): """发送消息给AI""" session_id = request.data.get('session_id') message = request.data.get('message') context = request.data.get('context', {}) # 获取或创建会话 session = self._get_or_create_session(session_id, request.tenant) # 调用AI服务 ai_service = AIService(request.tenant.id) response = ai_service.chat(message, context, self._get_tenant_context(request.tenant)) # 保存消息记录 self._save_message(session, 'user', message) self._save_message(session, 'assistant', response) return JsonResponse({ 'session_id': session.session_id, 'response': response }) def get(self, request): """获取聊天历史""" session_id = request.GET.get('session_id') if not session_id: return http400("session_id required") session = ChatSession.objects.filter( session_id=session_id, tenant=request.tenant ).first() if not session: return http404("Session not found") messages = ChatMessage.objects.filter(session=session).order_by('created_at') return JsonResponse({ 'messages': [self._serialize_message(m) for m in messages] }) ## 7. 安全考虑 ### 7.1 数据安全 - API密钥加密存储 - 用户隐私保护 - 内容审核机制 - 访问权限控制 ### 7.2 系统安全 - 请求频率限制 - 异常监控告警 ## 9. 项目计划 ### 9.1 开发阶段 1. **第一阶段 (1周)**: 核心架构和基础功能 ✅ **已完成** - 数据模型扩展(最小化) - Kimi K2 API基础集成 ✅ - 基础AI聊天功能 ✅ - 工具调用系统 ✅ - Django管理命令 ✅ 2. **第二阶段 (1周)**: AI能力扩展 - 知识库检索工具集成 - 平台知识库(简化版) - 工具调用优化和扩展 3. **第三阶段 (1周)**: 小程序集成和内容管理 - 小程序AI聊天界面(核心功能) - 小程序与AI服务的集成 - 内容管理基础功能 4. **第四阶段 (1周)**: 集成测试和部署 - 功能测试和bug修复 - 性能优化 - 生产环境部署 ### 9.2 里程碑 - Week 1: 完成核心架构和基础AI聊天功能 ✅ **已完成** - Week 2: 完成知识库检索工具和RAG系统基础功能 - Week 3: 完成小程序AI聊天集成和内容管理 - Week 4: 完成测试、优化和上线 ### 11.2 开发周期 - **总周期**: 4周(压缩版) - **核心功能**: AI聊天、RAG知识检索、工具调用、小程序集成、基础内容管理 - **技术栈**: Django + Kimi K2 + LangChain(知识库管理)+ 微信小程序 + 基础向量存储 - **开发策略**: MVP优先,核心功能先行,小程序集成优先,后续迭代优化 ### 11.3 架构设计总结 **核心架构选择:直接以Tool形式接入Kimi K2** 1. **简化设计**:避免复杂的能力调度和路由逻辑 2. **原生支持**:充分利用Kimi K2的Function Calling能力 3. **易于维护**:代码结构清晰,逻辑简单 4. **扩展性好**:后续可以轻松添加更多工具 **RAG实现方式**: - 知识库检索作为工具提供给Kimi K2 - AI根据用户问题自动选择是否使用知识库 - 基于检索结果生成高质量回答 - 无需手动路由,完全依赖AI智能判断 **技术优势**: - 减少系统复杂度 - 降低维护成本 - 提高系统稳定性 - 保持架构简洁性 TODO: - context length management