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

168 lines
6.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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聊天界面集成
- 内容管理系统的完善