168 lines
6.4 KiB
Markdown
168 lines
6.4 KiB
Markdown
# 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
|
||
```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]
|
||
})
|
||
|
||
|
||
## 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聊天界面集成
|
||
- 内容管理系统的完善 |