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

191 lines
6.9 KiB
Markdown
Raw 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) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 验证服务 │ │ 内容存储 │ │ 知识库管理 │
│ (二维码识别) │ │ (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