TSP助手 - 基于大模型的AI客服机器人
项目简介
TSP助手是一个基于阿里云千问大模型的智能客服机器人系统,具备以下核心功能:
- 智能对话处理:基于大模型进行自然语言理解和回复生成
- 知识库学习:从历史工单中自动学习问题处理经验
- 实时数据分析:统计工单处理情况,生成分析报告
- 智能预警系统:监控关键指标,及时发现问题
- 工单管理:完整的工单生命周期管理
系统架构
TSP_assistant/
├── src/
│ ├── config/ # 配置文件
│ ├── core/ # 核心模块
│ ├── knowledge_base/ # 知识库管理
│ ├── dialogue/ # 对话管理
│ ├── analytics/ # 分析统计
│ └── utils/ # 工具函数
├── data/ # 数据存储
├── logs/ # 日志文件
└── requirements.txt # 依赖包
核心功能
1. 智能对话处理
- 基于阿里云千问大模型进行自然语言理解
- 支持上下文记忆和对话历史管理
- 自动从知识库检索相关信息
- 生成准确、有用的回复
2. 知识库学习
- 从已解决的工单中自动提取问题和答案
- 使用TF-IDF向量化进行相似度匹配
- 支持知识库条目的增删改查
- 自动更新和优化知识库内容
3. 工单管理
- 创建、更新、查询工单
- 支持工单分类和优先级设置
- 记录完整的对话历史
- 工单状态跟踪和满意度评分
4. 数据分析与统计
- 每日自动生成分析报告
- 统计工单处理效率、满意度等指标
- 支持多维度数据分析
- 生成可视化趋势图表
5. 智能预警系统
- 监控关键性能指标
- 自动检测异常情况
- 支持多级别预警(低、中、高、严重)
- 预警历史记录和解决跟踪
安装和配置
1. 环境要求
- Python 3.8+
- MySQL数据库(推荐)或SQLite数据库
- 阿里云千问API密钥
2. 安装步骤
# 克隆项目
git clone <repository-url>
cd TSP_assistant
# 安装依赖
pip install -r requirements.txt
# 创建必要目录
mkdir -p data logs
# 设置MySQL数据库(如果使用MySQL)
python create_mysql_db.py
# 初始化数据库
python init_database.py
# 配置API密钥
# 在 src/config/config.py 中设置您的阿里云API密钥
3. MySQL数据库设置
如果使用MySQL数据库,需要先运行:
python create_mysql_db.py
此脚本会:
- 创建名为
tsp_assistant的数据库 - 设置正确的字符集(utf8mb4)
- 创建专用用户(可选)
- 测试数据库连接
4. 数据库初始化
数据库初始化脚本会自动:
- 创建所有必要的数据库表
- 插入示例知识库数据
- 检查数据库连接状态
- 显示各表的记录数统计
如果数据库已存在,脚本会跳过初始数据插入,避免重复数据。
5. 数据库选择
系统支持两种数据库:
MySQL(推荐):
- 性能更好,支持并发
- 适合生产环境
- 需要安装MySQL服务器
SQLite:
- 轻量级,无需额外安装
- 适合开发和测试
- 单文件存储
6. 配置说明
在 src/config/config.py 中配置以下参数:
# 阿里云千问API配置
ALIBABA_API_KEY = "your-api-key"
ALIBABA_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
ALIBABA_MODEL_NAME = "qwen-plus-latest"
# 数据库配置
# MySQL配置(推荐)
DATABASE_URL = "mysql+pymysql://root:123456@localhost/tsp_assistant?charset=utf8mb4"
# SQLite配置(备用)
# DATABASE_URL = "sqlite:///tsp_assistant.db"
# 其他系统参数
MAX_HISTORY_LENGTH = 10
RESPONSE_TIMEOUT = 30
使用方法
1. 启动系统
from src.main import TSPAssistant
# 创建助手实例
assistant = TSPAssistant()
# 测试系统
test_results = assistant.test_system()
print("系统测试结果:", test_results)
2. 处理用户消息
# 处理用户消息
response = assistant.process_message(
message="我的账户无法登录",
user_id="user123",
work_order_id=1
)
print("回复:", response["response"])
3. 创建工单
# 创建工单
work_order = assistant.create_work_order(
title="账户登录问题",
description="用户反映无法登录账户",
category="账户问题",
priority="high"
)
4. 搜索知识库
# 搜索知识库
results = assistant.search_knowledge("账户登录", top_k=3)
print("搜索结果:", results)
5. 生成分析报告
# 生成分析报告
analytics = assistant.generate_analytics("last_7_days")
print("分析报告:", analytics)
API接口
对话接口
process_message(message, user_id, work_order_id)- 处理用户消息create_work_order(title, description, category, priority)- 创建工单update_work_order(work_order_id, **kwargs)- 更新工单
知识库接口
search_knowledge(query, top_k)- 搜索知识库add_knowledge(question, answer, category, confidence_score)- 添加知识
分析接口
generate_analytics(date_range)- 生成分析报告get_alerts()- 获取预警信息get_system_status()- 获取系统状态
数据模型
工单 (WorkOrder)
- 工单基本信息(ID、标题、描述、类别、优先级)
- 状态跟踪(创建时间、更新时间、解决时间)
- 满意度评分
对话记录 (Conversation)
- 用户消息和助手回复
- 时间戳和置信度评分
- 使用的知识库条目
知识库条目 (KnowledgeEntry)
- 问题和答案对
- 类别和置信度评分
- 使用次数统计
分析数据 (Analytics)
- 每日统计指标
- 趋势分析数据
- 类别分布信息
监控和预警
系统自动监控以下指标:
- 客户满意度:低于0.6时触发预警
- 平均解决时间:超过24小时时触发预警
- 知识库命中率:低于0.5时触发预警
- 错误率:超过0.1时触发预警
性能优化
- 使用向量化技术提高知识库检索效率
- 支持并发处理多个用户请求
- 数据库连接池管理
- 内存使用监控和优化
扩展功能
- 支持多种大模型API(可扩展)
- 支持多种数据库后端(PostgreSQL、MySQL等)
- 支持Web界面和API接口
- 支持多语言处理
- 支持语音识别和合成
故障排除
常见问题
-
API连接失败
- 检查API密钥是否正确
- 检查网络连接
- 检查API配额是否充足
-
数据库错误
- 检查数据库文件权限
- 检查SQLite版本兼容性
- 检查磁盘空间
-
知识库检索失败
- 检查向量化器是否正确初始化
- 检查知识库数据完整性
- 检查内存使用情况
日志查看
系统日志保存在 logs/tsp_assistant.log 文件中,包含详细的运行信息和错误记录。
贡献指南
欢迎提交Issue和Pull Request来改进项目。
许可证
本项目采用MIT许可证。
Description
Languages
Python
59.3%
JavaScript
19.1%
HTML
17.7%
Shell
2.5%
CSS
1.3%