Files
tsp-assistant/README.md
2025-09-06 21:06:18 +08:00

296 lines
6.9 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.
# 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. 安装步骤
```bash
# 克隆项目
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数据库需要先运行
```bash
python create_mysql_db.py
```
此脚本会:
- 创建名为 `tsp_assistant` 的数据库
- 设置正确的字符集utf8mb4
- 创建专用用户(可选)
- 测试数据库连接
### 4. 数据库初始化
数据库初始化脚本会自动:
- 创建所有必要的数据库表
- 插入示例知识库数据
- 检查数据库连接状态
- 显示各表的记录数统计
如果数据库已存在,脚本会跳过初始数据插入,避免重复数据。
### 5. 数据库选择
系统支持两种数据库:
**MySQL推荐**
- 性能更好,支持并发
- 适合生产环境
- 需要安装MySQL服务器
**SQLite**
- 轻量级,无需额外安装
- 适合开发和测试
- 单文件存储
### 6. 配置说明
`src/config/config.py` 中配置以下参数:
```python
# 阿里云千问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. 启动系统
```python
from src.main import TSPAssistant
# 创建助手实例
assistant = TSPAssistant()
# 测试系统
test_results = assistant.test_system()
print("系统测试结果:", test_results)
```
### 2. 处理用户消息
```python
# 处理用户消息
response = assistant.process_message(
message="我的账户无法登录",
user_id="user123",
work_order_id=1
)
print("回复:", response["response"])
```
### 3. 创建工单
```python
# 创建工单
work_order = assistant.create_work_order(
title="账户登录问题",
description="用户反映无法登录账户",
category="账户问题",
priority="high"
)
```
### 4. 搜索知识库
```python
# 搜索知识库
results = assistant.search_knowledge("账户登录", top_k=3)
print("搜索结果:", results)
```
### 5. 生成分析报告
```python
# 生成分析报告
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接口
- 支持多语言处理
- 支持语音识别和合成
## 故障排除
### 常见问题
1. **API连接失败**
- 检查API密钥是否正确
- 检查网络连接
- 检查API配额是否充足
2. **数据库错误**
- 检查数据库文件权限
- 检查SQLite版本兼容性
- 检查磁盘空间
3. **知识库检索失败**
- 检查向量化器是否正确初始化
- 检查知识库数据完整性
- 检查内存使用情况
### 日志查看
系统日志保存在 `logs/tsp_assistant.log` 文件中,包含详细的运行信息和错误记录。
## 贡献指南
欢迎提交Issue和Pull Request来改进项目。
## 许可证
本项目采用MIT许可证。