themblem/doc/ai-chat.md
2025-10-29 21:27:29 +00:00

6.4 KiB
Raw Permalink Blame History

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) │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                       │                       │
         ▼                       ▼                       ▼
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   验证服务      │    │   内容存储      │    │   RAG知识库     │
│  (二维码识别)    │    │  (OSS/数据库)    │    │  (向量检索)     │
└─────────────────┘    └─────────────────┘    └─────────────────┘

3.2 数据流设计

  1. 用户扫描二维码 → 验证服务
  2. 验证结果 → AI聊天界面
  3. 用户提问 → AI服务层处理
  4. AI回答 → 返回多模态内容
  5. 用户反馈 → 知识库更新

4. 技术实现方案

4.1 AI模型集成

4.1.1 智能能力调度系统

  • 架构选择: 直接以Tool形式接入Kimi K2无需复杂路由
  • 能力分类: 知识库检索工具、二维码扫描工具、一般问答
  • 调度策略: 依赖Kimi K2的智能判断自动选择合适的工具
  • 优势: 实现简单、维护成本低、Kimi K2原生支持
  • 扩展性: 后续可轻松添加更多工具,无需修改路由逻辑

4.3 后端API设计

4.3.1 AI聊天API

# 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]
        })


## 9. 项目计划

### 9.1 开发阶段
1. **第一阶段 (1)**: 核心架构和基础功能  **已完成**
   - 数据模型扩展最小化
   - Kimi K2 API基础集成 
   - 基础AI聊天功能 
   - 工具调用系统 
   - Django管理命令 
   - **RAG知识库系统**  **新增完成**
2. **第二阶段 (1)**: AI能力扩展  **已完成**
   - 知识库检索工具集成 
   - 平台知识库完整版 
   - 工具调用优化和扩展 
   - **RAG系统性能优化**  **新增完成**
3. **第三阶段 (1)**: 小程序集成和内容管理
   - 小程序AI聊天界面核心功能
   - 小程序与AI服务的集成
   - 内容管理基础功能
4. **第四阶段 (1)**: 集成测试和部署
   - 功能测试和bug修复
   - 性能优化
   - 生产环境部署

### 11.2 开发周期
- **总周期**: 4压缩版
- **核心功能**: AI聊天RAG知识检索工具调用小程序集成基础内容管理
- **技术栈**: Django + Kimi K2 + LangChain知识库管理+ 微信小程序 + FAISS向量存储
- **开发策略**: MVP优先核心功能先行小程序集成优先后续迭代优化

### 11.3 架构设计总结

**核心架构选择直接以Tool形式接入Kimi K2 + RAG知识库系统**

1. **简化设计**避免复杂的能力调度和路由逻辑
2. **原生支持**充分利用Kimi K2的Function Calling能力
3. **易于维护**代码结构清晰逻辑简单
4. **扩展性好**后续可以轻松添加更多工具
5. **RAG集成**完整的知识库检索和增强系统

**RAG实现方式**
- 知识库检索作为工具提供给Kimi K2
- AI根据用户问题自动选择是否使用知识库
- 基于检索结果生成高质量回答
- 无需手动路由完全依赖AI智能判断
- 多层缓存优化支持高性能检索

**技术优势**
- 减少系统复杂度
- 降低维护成本
- 提高系统稳定性
- 保持架构简洁性
- **新增**: 完整的RAG知识库系统
- **新增**: 高性能缓存和向量检索
- **新增**: 多租户知识库隔离

TODO:
- context length management
- 小程序AI聊天界面集成
- 内容管理系统的完善