1174 lines
25 KiB
Markdown
1174 lines
25 KiB
Markdown
# TSP智能助手 - 完整使用指南
|
||
|
||
## 📋 目录
|
||
|
||
1. [系统概述](#系统概述)
|
||
2. [快速开始](#快速开始)
|
||
3. [核心功能](#核心功能)
|
||
4. [Web界面使用](#web界面使用)
|
||
5. [API接口](#api接口)
|
||
6. [数据库管理](#数据库管理)
|
||
7. [Agent功能](#agent功能)
|
||
8. [车辆数据管理](#车辆数据管理)
|
||
9. [知识库管理](#知识库管理)
|
||
10. [对话系统](#对话系统)
|
||
11. [工单管理](#工单管理)
|
||
12. [分析报告](#分析报告)
|
||
13. [预警系统](#预警系统)
|
||
14. [故障排除](#故障排除)
|
||
15. [开发指南](#开发指南)
|
||
|
||
---
|
||
|
||
## 🎯 系统概述
|
||
|
||
TSP智能助手是一个基于大语言模型的智能客服系统,集成了知识库管理、车辆数据监控、工单处理、分析报告等功能。
|
||
|
||
### 主要特性
|
||
|
||
- 🤖 **智能对话**: 基于阿里云千问大模型的自然语言对话
|
||
- 📚 **知识库管理**: 支持手动添加和文件自动生成知识库
|
||
- 🚗 **车辆数据**: 实时车辆数据监控和管理
|
||
- 🎯 **Agent模式**: 自主决策和任务执行能力
|
||
- 📊 **数据分析**: 智能分析和报告生成
|
||
- 🚨 **预警系统**: 实时监控和异常预警
|
||
- 🎫 **工单管理**: 完整的客服工单流程
|
||
- 🌐 **Web界面**: 现代化的用户界面
|
||
|
||
### 技术架构
|
||
|
||
- **后端**: Python + Flask
|
||
- **数据库**: MySQL/SQLite
|
||
- **前端**: HTML5 + Bootstrap 5 + Chart.js
|
||
- **AI模型**: 阿里云千问 (Qwen)
|
||
- **实时通信**: WebSocket
|
||
|
||
---
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 1. 环境要求
|
||
|
||
- Python 3.8+
|
||
- MySQL 5.7+ (可选,默认使用SQLite)
|
||
- 阿里云千问API密钥
|
||
|
||
### 2. 安装依赖
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 3. 配置系统
|
||
|
||
编辑 `src/config/config.py`:
|
||
|
||
```python
|
||
class Config:
|
||
# 阿里云千问API配置
|
||
ALIBABA_API_KEY = "your-api-key"
|
||
ALIBABA_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
|
||
ALIBABA_MODEL_NAME = "qwen-plus-latest"
|
||
|
||
# 数据库配置
|
||
DATABASE_URL = "mysql+pymysql://user:password@localhost/tsp_assistant?charset=utf8mb4"
|
||
# 或使用SQLite: DATABASE_URL = "sqlite:///tsp_assistant.db"
|
||
```
|
||
|
||
### 4. 初始化数据库
|
||
|
||
```bash
|
||
python init_database.py
|
||
```
|
||
|
||
### 5. 启动系统
|
||
|
||
```bash
|
||
python start_dashboard.py
|
||
```
|
||
|
||
### 6. 访问界面
|
||
|
||
打开浏览器访问: http://localhost:5000
|
||
|
||
---
|
||
|
||
## 🎛️ 核心功能
|
||
|
||
### 1. 智能对话系统
|
||
|
||
- **实时对话**: 基于WebSocket的实时聊天
|
||
- **知识库集成**: 自动搜索相关知识库内容
|
||
- **车辆数据集成**: 结合实时车辆数据提供准确回答
|
||
- **上下文记忆**: 维护对话历史和上下文
|
||
|
||
### 2. Agent模式
|
||
|
||
- **自主决策**: AI Agent可以自主分析和决策
|
||
- **任务规划**: 自动分解复杂任务
|
||
- **工具调用**: 集成多种工具和API
|
||
- **主动监控**: 实时监控系统状态
|
||
|
||
### 3. 知识库管理
|
||
|
||
- **手动添加**: 通过界面手动添加知识条目
|
||
- **文件导入**: 支持TXT、PDF、DOC、DOCX、MD文件
|
||
- **自动提取**: 使用LLM自动从文件中提取知识
|
||
- **验证机制**: 人工验证确保知识质量
|
||
- **分页显示**: 支持大量知识库的分页浏览
|
||
|
||
### 4. 车辆数据管理
|
||
|
||
- **实时数据**: 存储和查询车辆实时数据
|
||
- **数据汇总**: 生成车辆状态摘要
|
||
- **历史记录**: 保存车辆数据历史
|
||
- **多车辆支持**: 支持多辆车辆的数据管理
|
||
|
||
---
|
||
|
||
## 🌐 Web界面使用
|
||
|
||
### 主界面布局
|
||
|
||
Web界面采用现代化的单页应用设计,包含以下主要区域:
|
||
|
||
1. **侧边栏导航**: 功能模块切换
|
||
2. **主内容区**: 当前功能的具体操作界面
|
||
3. **状态栏**: 系统状态和通知
|
||
|
||
### 功能模块
|
||
|
||
#### 1. 仪表板 (Dashboard)
|
||
- 系统概览和关键指标
|
||
- 实时数据图表
|
||
- 快速操作入口
|
||
|
||
#### 2. 智能对话 (Chat)
|
||
- 实时聊天界面
|
||
- 支持文本和语音输入
|
||
- 对话历史记录
|
||
|
||
#### 3. Agent模式 (Agent)
|
||
- Agent状态监控
|
||
- 任务执行情况
|
||
- 主动监控设置
|
||
|
||
#### 4. 预警管理 (Alerts)
|
||
- 预警规则配置
|
||
- 预警历史记录
|
||
- 预警处理状态
|
||
|
||
#### 5. 知识库 (Knowledge)
|
||
- 知识条目管理
|
||
- 文件上传功能
|
||
- 知识验证操作
|
||
|
||
#### 6. 工单管理 (Work Orders)
|
||
- 工单创建和编辑
|
||
- 工单状态跟踪
|
||
- 工单统计分析
|
||
|
||
#### 7. 数据分析 (Analytics)
|
||
- 数据统计图表
|
||
- 趋势分析报告
|
||
- 性能指标监控
|
||
|
||
#### 8. 系统设置 (Settings)
|
||
- 系统参数配置
|
||
- 用户权限管理
|
||
- 系统维护操作
|
||
|
||
### 页面状态保持
|
||
|
||
系统会自动保存当前页面状态,刷新后会自动恢复到之前的页面。
|
||
|
||
---
|
||
|
||
## 🔌 API接口
|
||
|
||
### 基础URL
|
||
```
|
||
http://localhost:5000/api
|
||
```
|
||
|
||
### 1. 对话接口
|
||
|
||
#### 发送消息
|
||
```http
|
||
POST /api/chat/message
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"message": "用户消息内容",
|
||
"work_order_id": 123,
|
||
"user_id": "user123",
|
||
"vehicle_id": "V001"
|
||
}
|
||
```
|
||
|
||
#### WebSocket连接
|
||
```javascript
|
||
const ws = new WebSocket('ws://localhost:5000/ws');
|
||
ws.onmessage = function(event) {
|
||
const data = JSON.parse(event.data);
|
||
console.log('收到消息:', data);
|
||
};
|
||
```
|
||
|
||
### 2. 知识库接口
|
||
|
||
#### 获取知识库列表
|
||
```http
|
||
GET /api/knowledge?page=1&per_page=10
|
||
```
|
||
|
||
#### 添加知识条目
|
||
```http
|
||
POST /api/knowledge/add
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"question": "问题内容",
|
||
"answer": "答案内容",
|
||
"category": "分类",
|
||
"confidence_score": 0.8
|
||
}
|
||
```
|
||
|
||
#### 上传文件生成知识库
|
||
```http
|
||
POST /api/knowledge/upload
|
||
Content-Type: multipart/form-data
|
||
|
||
file: [文件内容]
|
||
process_method: auto
|
||
category: 分类
|
||
confidence_score: 0.8
|
||
```
|
||
|
||
#### 验证知识条目
|
||
```http
|
||
POST /api/knowledge/verify/{knowledge_id}
|
||
```
|
||
|
||
#### 取消验证
|
||
```http
|
||
POST /api/knowledge/unverify/{knowledge_id}
|
||
```
|
||
|
||
#### 删除知识条目
|
||
```http
|
||
DELETE /api/knowledge/{knowledge_id}
|
||
```
|
||
|
||
### 3. 车辆数据接口
|
||
|
||
#### 获取车辆数据
|
||
```http
|
||
GET /api/vehicle/data?vehicle_id=V001&limit=10
|
||
```
|
||
|
||
#### 获取最新车辆数据
|
||
```http
|
||
GET /api/vehicle/data/{vehicle_id}/latest
|
||
```
|
||
|
||
#### 获取车辆摘要
|
||
```http
|
||
GET /api/vehicle/data/{vehicle_id}/summary
|
||
```
|
||
|
||
#### 添加车辆数据
|
||
```http
|
||
POST /api/vehicle/data
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"vehicle_id": "V001",
|
||
"vehicle_vin": "1HGBH41JXMN109186",
|
||
"data_type": "location",
|
||
"data_value": "{\"lat\": 39.9042, \"lng\": 116.4074}"
|
||
}
|
||
```
|
||
|
||
#### 初始化示例数据
|
||
```http
|
||
POST /api/vehicle/init-sample-data
|
||
```
|
||
|
||
### 4. Agent接口
|
||
|
||
#### 获取Agent状态
|
||
```http
|
||
GET /api/agent/status
|
||
```
|
||
|
||
#### 切换Agent模式
|
||
```http
|
||
POST /api/agent/toggle
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"enabled": true
|
||
}
|
||
```
|
||
|
||
#### 启动主动监控
|
||
```http
|
||
POST /api/agent/monitoring/start
|
||
```
|
||
|
||
#### 停止主动监控
|
||
```http
|
||
POST /api/agent/monitoring/stop
|
||
```
|
||
|
||
### 5. 工单接口
|
||
|
||
#### 获取工单列表
|
||
```http
|
||
GET /api/work-orders?page=1&per_page=10
|
||
```
|
||
|
||
#### 创建工单
|
||
```http
|
||
POST /api/work-orders
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"title": "工单标题",
|
||
"description": "工单描述",
|
||
"priority": "high",
|
||
"category": "技术问题",
|
||
"customer_id": "customer123"
|
||
}
|
||
```
|
||
|
||
#### 更新工单状态
|
||
```http
|
||
PUT /api/work-orders/{work_order_id}
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"status": "resolved",
|
||
"resolution": "问题已解决"
|
||
}
|
||
```
|
||
|
||
### 6. 分析接口
|
||
|
||
#### 获取分析报告
|
||
```http
|
||
GET /api/analytics/report?date=2025-09-06
|
||
```
|
||
|
||
#### 获取KPI数据
|
||
```http
|
||
GET /api/analytics/kpi
|
||
```
|
||
|
||
### 7. 预警接口
|
||
|
||
#### 获取预警列表
|
||
```http
|
||
GET /api/alerts?status=active
|
||
```
|
||
|
||
#### 处理预警
|
||
```http
|
||
POST /api/alerts/{alert_id}/resolve
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"resolution": "处理说明"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 🗄️ 数据库管理
|
||
|
||
### 数据库初始化
|
||
|
||
系统提供了完整的数据库初始化脚本:
|
||
|
||
```bash
|
||
python init_database.py
|
||
```
|
||
|
||
该脚本会自动执行以下操作:
|
||
1. 创建所有必要的数据库表
|
||
2. 添加新字段(如知识库验证字段)
|
||
3. 插入初始示例数据
|
||
4. 添加示例车辆数据
|
||
5. 验证所有知识库条目
|
||
|
||
### 数据库表结构
|
||
|
||
#### 1. 知识库表 (knowledge_entries)
|
||
```sql
|
||
CREATE TABLE knowledge_entries (
|
||
id INTEGER PRIMARY KEY,
|
||
question TEXT NOT NULL,
|
||
answer TEXT NOT NULL,
|
||
category VARCHAR(100),
|
||
confidence_score FLOAT DEFAULT 0.5,
|
||
usage_count INTEGER DEFAULT 0,
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
is_active BOOLEAN DEFAULT TRUE,
|
||
is_verified BOOLEAN DEFAULT FALSE,
|
||
verified_by VARCHAR(100),
|
||
verified_at DATETIME,
|
||
vector_embedding TEXT
|
||
);
|
||
```
|
||
|
||
#### 2. 车辆数据表 (vehicle_data)
|
||
```sql
|
||
CREATE TABLE vehicle_data (
|
||
id INTEGER PRIMARY KEY,
|
||
vehicle_id VARCHAR(50) NOT NULL,
|
||
vehicle_vin VARCHAR(17),
|
||
data_type VARCHAR(50) NOT NULL,
|
||
data_value TEXT NOT NULL,
|
||
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
is_active BOOLEAN DEFAULT TRUE
|
||
);
|
||
```
|
||
|
||
#### 3. 工单表 (work_orders)
|
||
```sql
|
||
CREATE TABLE work_orders (
|
||
id INTEGER PRIMARY KEY,
|
||
title VARCHAR(200) NOT NULL,
|
||
description TEXT,
|
||
status VARCHAR(50) DEFAULT 'open',
|
||
priority VARCHAR(20) DEFAULT 'medium',
|
||
category VARCHAR(100),
|
||
customer_id VARCHAR(100),
|
||
assigned_to VARCHAR(100),
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
resolved_at DATETIME,
|
||
resolution TEXT
|
||
);
|
||
```
|
||
|
||
#### 4. 对话表 (conversations)
|
||
```sql
|
||
CREATE TABLE conversations (
|
||
id INTEGER PRIMARY KEY,
|
||
user_id VARCHAR(100),
|
||
work_order_id INTEGER,
|
||
vehicle_id VARCHAR(50),
|
||
message TEXT NOT NULL,
|
||
response TEXT,
|
||
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
session_id VARCHAR(100)
|
||
);
|
||
```
|
||
|
||
#### 5. 分析表 (analytics)
|
||
```sql
|
||
CREATE TABLE analytics (
|
||
id INTEGER PRIMARY KEY,
|
||
date DATE NOT NULL,
|
||
metric_name VARCHAR(100) NOT NULL,
|
||
metric_value FLOAT NOT NULL,
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||
);
|
||
```
|
||
|
||
#### 6. 预警表 (alerts)
|
||
```sql
|
||
CREATE TABLE alerts (
|
||
id INTEGER PRIMARY KEY,
|
||
alert_type VARCHAR(100) NOT NULL,
|
||
title VARCHAR(200) NOT NULL,
|
||
description TEXT,
|
||
severity VARCHAR(20) DEFAULT 'medium',
|
||
status VARCHAR(20) DEFAULT 'active',
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
resolved_at DATETIME,
|
||
resolution TEXT
|
||
);
|
||
```
|
||
|
||
### 数据库维护
|
||
|
||
#### 重置数据库
|
||
```bash
|
||
python reset_database.py
|
||
```
|
||
|
||
#### 创建MySQL数据库
|
||
```bash
|
||
python create_mysql_db.py
|
||
```
|
||
|
||
---
|
||
|
||
## 🤖 Agent功能
|
||
|
||
### Agent架构
|
||
|
||
TSP智能助手集成了完整的Agent架构,包括:
|
||
|
||
1. **Agent核心** (Agent Core): 中央协调器
|
||
2. **规划器** (Planner): 任务规划和分解
|
||
3. **执行器** (Executor): 任务执行管理
|
||
4. **工具管理器** (Tool Manager): 工具注册和调用
|
||
5. **推理引擎** (Reasoning Engine): 逻辑推理和决策
|
||
6. **目标管理器** (Goal Manager): 目标设定和跟踪
|
||
|
||
### Agent工具
|
||
|
||
系统内置了多种Agent工具:
|
||
|
||
1. **search_knowledge**: 搜索知识库
|
||
2. **create_work_order**: 创建工单
|
||
3. **update_work_order**: 更新工单
|
||
4. **generate_response**: 生成回复
|
||
5. **analyze_data**: 数据分析
|
||
6. **send_notification**: 发送通知
|
||
7. **schedule_task**: 任务调度
|
||
8. **web_search**: 网络搜索
|
||
|
||
### Agent模式使用
|
||
|
||
#### 启用Agent模式
|
||
```javascript
|
||
// 通过Web界面
|
||
fetch('/api/agent/toggle', {
|
||
method: 'POST',
|
||
headers: {'Content-Type': 'application/json'},
|
||
body: JSON.stringify({enabled: true})
|
||
});
|
||
```
|
||
|
||
#### 启动主动监控
|
||
```javascript
|
||
fetch('/api/agent/monitoring/start', {method: 'POST'});
|
||
```
|
||
|
||
#### 获取Agent状态
|
||
```javascript
|
||
fetch('/api/agent/status')
|
||
.then(response => response.json())
|
||
.then(data => console.log('Agent状态:', data));
|
||
```
|
||
|
||
---
|
||
|
||
## 🚗 车辆数据管理
|
||
|
||
### 车辆数据类型
|
||
|
||
系统支持多种车辆数据类型:
|
||
|
||
1. **位置数据** (location): GPS坐标和地址信息
|
||
2. **状态数据** (status): 车辆运行状态
|
||
3. **电池数据** (battery): 电池电量和健康状态
|
||
4. **引擎数据** (engine): 引擎运行参数
|
||
5. **故障数据** (fault): 故障码和诊断信息
|
||
|
||
### 数据格式示例
|
||
|
||
#### 位置数据
|
||
```json
|
||
{
|
||
"lat": 39.9042,
|
||
"lng": 116.4074,
|
||
"address": "北京市朝阳区",
|
||
"speed": 60,
|
||
"direction": 180
|
||
}
|
||
```
|
||
|
||
#### 状态数据
|
||
```json
|
||
{
|
||
"engine_status": "running",
|
||
"door_status": "locked",
|
||
"window_status": "closed",
|
||
"light_status": "on"
|
||
}
|
||
```
|
||
|
||
#### 电池数据
|
||
```json
|
||
{
|
||
"battery_level": 85,
|
||
"charging_status": "not_charging",
|
||
"voltage": 12.6,
|
||
"temperature": 25
|
||
}
|
||
```
|
||
|
||
### 车辆数据操作
|
||
|
||
#### 添加车辆数据
|
||
```python
|
||
from src.vehicle.vehicle_data_manager import VehicleDataManager
|
||
|
||
vehicle_manager = VehicleDataManager()
|
||
|
||
# 添加位置数据
|
||
vehicle_manager.add_vehicle_data(
|
||
vehicle_id="V001",
|
||
vehicle_vin="1HGBH41JXMN109186",
|
||
data_type="location",
|
||
data_value={"lat": 39.9042, "lng": 116.4074}
|
||
)
|
||
|
||
# 添加状态数据
|
||
vehicle_manager.add_vehicle_data(
|
||
vehicle_id="V001",
|
||
data_type="status",
|
||
data_value={"engine_status": "running", "door_status": "locked"}
|
||
)
|
||
```
|
||
|
||
#### 查询车辆数据
|
||
```python
|
||
# 获取最新数据
|
||
latest_data = vehicle_manager.get_latest_vehicle_data("V001")
|
||
|
||
# 获取历史数据
|
||
history_data = vehicle_manager.get_vehicle_data("V001", limit=10)
|
||
|
||
# 获取数据摘要
|
||
summary = vehicle_manager.get_vehicle_summary("V001")
|
||
```
|
||
|
||
### 车辆数据集成
|
||
|
||
车辆数据会自动集成到对话系统中:
|
||
|
||
1. **实时查询**: 对话时自动查询相关车辆数据
|
||
2. **上下文整合**: 将车辆数据与知识库内容结合
|
||
3. **智能分析**: 基于车辆数据提供更准确的建议
|
||
|
||
---
|
||
|
||
## 📚 知识库管理
|
||
|
||
### 知识库结构
|
||
|
||
每个知识库条目包含以下字段:
|
||
|
||
- **问题** (question): 用户可能提出的问题
|
||
- **答案** (answer): 对应的详细答案
|
||
- **分类** (category): 问题所属类别
|
||
- **置信度** (confidence_score): 答案的可信度 (0-1)
|
||
- **使用次数** (usage_count): 该条目被使用的次数
|
||
- **验证状态** (is_verified): 是否经过人工验证
|
||
- **验证人** (verified_by): 验证人员
|
||
- **验证时间** (verified_at): 验证时间
|
||
|
||
### 知识库分类
|
||
|
||
系统支持以下知识库分类:
|
||
|
||
1. **账户问题**: 用户账户相关的问题
|
||
2. **支付问题**: 支付和财务相关的问题
|
||
3. **技术问题**: 技术故障和解决方案
|
||
4. **服务问题**: 客户服务相关问题
|
||
5. **远程控制**: 车辆远程控制功能
|
||
6. **APP功能**: 移动应用功能使用
|
||
7. **车辆绑定**: 车辆绑定和管理
|
||
8. **其他**: 其他类型的问题
|
||
|
||
### 手动添加知识
|
||
|
||
#### 通过Web界面
|
||
1. 进入"知识库"标签页
|
||
2. 点击"添加知识"按钮
|
||
3. 填写问题、答案、分类和置信度
|
||
4. 点击"保存"按钮
|
||
|
||
#### 通过API
|
||
```http
|
||
POST /api/knowledge/add
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"question": "如何重置密码?",
|
||
"answer": "您可以通过以下步骤重置密码:1. 点击登录页面的'忘记密码'链接 2. 输入您的邮箱地址 3. 检查邮箱并点击重置链接 4. 设置新密码",
|
||
"category": "账户问题",
|
||
"confidence_score": 0.9
|
||
}
|
||
```
|
||
|
||
### 文件导入知识库
|
||
|
||
#### 支持的文件格式
|
||
- **TXT**: 纯文本文件
|
||
- **PDF**: PDF文档
|
||
- **DOC/DOCX**: Word文档
|
||
- **MD**: Markdown文件
|
||
|
||
#### 导入流程
|
||
1. 进入"知识库"标签页
|
||
2. 点击"上传文件"按钮
|
||
3. 选择要上传的文件
|
||
4. 选择处理方式(自动/手动)
|
||
5. 设置分类和置信度
|
||
6. 点击"上传"按钮
|
||
|
||
#### 自动知识提取
|
||
系统使用LLM自动从文件中提取问答对:
|
||
|
||
1. **内容分析**: 分析文件内容结构
|
||
2. **问题识别**: 识别潜在的问题点
|
||
3. **答案生成**: 生成对应的详细答案
|
||
4. **分类建议**: 自动建议问题分类
|
||
5. **置信度评估**: 评估答案的可信度
|
||
|
||
### 知识库验证
|
||
|
||
#### 验证机制
|
||
- **自动验证**: 系统初始化的知识库条目自动标记为已验证
|
||
- **人工验证**: 新添加的知识库条目需要人工验证
|
||
- **验证状态**: 只有已验证的知识库条目才会在对话中使用
|
||
|
||
#### 验证操作
|
||
1. 进入"知识库"标签页
|
||
2. 找到未验证的知识条目
|
||
3. 点击"验证"按钮确认知识正确性
|
||
4. 或点击"取消验证"按钮标记为未验证
|
||
|
||
### 知识库搜索
|
||
|
||
系统使用TF-IDF向量化技术进行知识库搜索:
|
||
|
||
1. **向量化**: 将问题和答案转换为向量
|
||
2. **相似度计算**: 计算用户问题与知识库的相似度
|
||
3. **排序返回**: 按相似度排序返回最相关的知识
|
||
|
||
---
|
||
|
||
## 💬 对话系统
|
||
|
||
### 对话流程
|
||
|
||
1. **接收用户消息**: 通过WebSocket或HTTP接收用户输入
|
||
2. **上下文分析**: 分析对话历史和上下文
|
||
3. **知识库搜索**: 搜索相关的知识库内容
|
||
4. **车辆数据查询**: 如果涉及车辆,查询相关车辆数据
|
||
5. **LLM生成回复**: 使用大语言模型生成回复
|
||
6. **回复优化**: 结合知识库和车辆数据优化回复
|
||
7. **返回结果**: 将最终回复返回给用户
|
||
|
||
### 对话特性
|
||
|
||
#### 1. 上下文记忆
|
||
- 维护对话历史
|
||
- 理解上下文关系
|
||
- 支持多轮对话
|
||
|
||
#### 2. 知识库集成
|
||
- 自动搜索相关知识
|
||
- 只使用已验证的知识
|
||
- 结合多个知识条目
|
||
|
||
#### 3. 车辆数据集成
|
||
- 实时查询车辆状态
|
||
- 结合车辆数据提供建议
|
||
- 支持车辆特定问题
|
||
|
||
#### 4. 工单关联
|
||
- 自动创建工单
|
||
- 关联对话和工单
|
||
- 跟踪问题解决进度
|
||
|
||
### 对话API使用
|
||
|
||
#### WebSocket连接
|
||
```javascript
|
||
const ws = new WebSocket('ws://localhost:5000/ws');
|
||
|
||
ws.onopen = function() {
|
||
console.log('WebSocket连接已建立');
|
||
};
|
||
|
||
ws.onmessage = function(event) {
|
||
const data = JSON.parse(event.data);
|
||
console.log('收到消息:', data.message);
|
||
};
|
||
|
||
// 发送消息
|
||
ws.send(JSON.stringify({
|
||
message: '我的车辆无法启动',
|
||
vehicle_id: 'V001'
|
||
}));
|
||
```
|
||
|
||
#### HTTP接口
|
||
```javascript
|
||
fetch('/api/chat/message', {
|
||
method: 'POST',
|
||
headers: {'Content-Type': 'application/json'},
|
||
body: JSON.stringify({
|
||
message: '我的车辆无法启动',
|
||
vehicle_id: 'V001',
|
||
user_id: 'user123'
|
||
})
|
||
})
|
||
.then(response => response.json())
|
||
.then(data => console.log('回复:', data.response));
|
||
```
|
||
|
||
---
|
||
|
||
## 🎫 工单管理
|
||
|
||
### 工单状态
|
||
|
||
工单有以下状态:
|
||
|
||
1. **open**: 新建工单
|
||
2. **in_progress**: 处理中
|
||
3. **pending**: 等待用户反馈
|
||
4. **resolved**: 已解决
|
||
5. **closed**: 已关闭
|
||
|
||
### 工单优先级
|
||
|
||
1. **low**: 低优先级
|
||
2. **medium**: 中等优先级
|
||
3. **high**: 高优先级
|
||
4. **urgent**: 紧急
|
||
|
||
### 工单分类
|
||
|
||
1. **技术问题**: 技术故障和bug
|
||
2. **功能请求**: 新功能需求
|
||
3. **账户问题**: 用户账户相关问题
|
||
4. **支付问题**: 支付和财务问题
|
||
5. **其他**: 其他类型问题
|
||
|
||
### 工单操作
|
||
|
||
#### 创建工单
|
||
```javascript
|
||
fetch('/api/work-orders', {
|
||
method: 'POST',
|
||
headers: {'Content-Type': 'application/json'},
|
||
body: JSON.stringify({
|
||
title: '车辆无法远程启动',
|
||
description: '用户反馈车辆无法通过APP远程启动',
|
||
priority: 'high',
|
||
category: '技术问题',
|
||
customer_id: 'customer123'
|
||
})
|
||
});
|
||
```
|
||
|
||
#### 更新工单状态
|
||
```javascript
|
||
fetch('/api/work-orders/123', {
|
||
method: 'PUT',
|
||
headers: {'Content-Type': 'application/json'},
|
||
body: JSON.stringify({
|
||
status: 'resolved',
|
||
resolution: '已修复远程启动功能'
|
||
})
|
||
});
|
||
```
|
||
|
||
#### 获取工单列表
|
||
```javascript
|
||
fetch('/api/work-orders?page=1&per_page=10')
|
||
.then(response => response.json())
|
||
.then(data => console.log('工单列表:', data));
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 分析报告
|
||
|
||
### 分析指标
|
||
|
||
系统提供以下分析指标:
|
||
|
||
1. **对话统计**: 对话数量、响应时间、满意度
|
||
2. **知识库使用**: 知识库命中率、热门问题
|
||
3. **工单分析**: 工单数量、解决时间、分类统计
|
||
4. **车辆数据**: 车辆状态分布、故障统计
|
||
5. **用户行为**: 用户活跃度、功能使用情况
|
||
|
||
### 报告生成
|
||
|
||
#### 获取分析报告
|
||
```javascript
|
||
fetch('/api/analytics/report?date=2025-09-06')
|
||
.then(response => response.json())
|
||
.then(data => console.log('分析报告:', data));
|
||
```
|
||
|
||
#### 获取KPI数据
|
||
```javascript
|
||
fetch('/api/analytics/kpi')
|
||
.then(response => response.json())
|
||
.then(data => console.log('KPI数据:', data));
|
||
```
|
||
|
||
### 数据可视化
|
||
|
||
Web界面提供多种图表:
|
||
|
||
1. **折线图**: 趋势分析
|
||
2. **柱状图**: 分类统计
|
||
3. **饼图**: 比例分析
|
||
4. **仪表盘**: 实时指标
|
||
|
||
---
|
||
|
||
## 🚨 预警系统
|
||
|
||
### 预警类型
|
||
|
||
1. **系统预警**: 系统性能异常
|
||
2. **业务预警**: 业务指标异常
|
||
3. **安全预警**: 安全相关事件
|
||
4. **数据预警**: 数据异常
|
||
|
||
### 预警级别
|
||
|
||
1. **low**: 低级别预警
|
||
2. **medium**: 中等级别预警
|
||
3. **high**: 高级别预警
|
||
4. **critical**: 严重预警
|
||
|
||
### 预警处理
|
||
|
||
#### 获取预警列表
|
||
```javascript
|
||
fetch('/api/alerts?status=active')
|
||
.then(response => response.json())
|
||
.then(data => console.log('活跃预警:', data));
|
||
```
|
||
|
||
#### 处理预警
|
||
```javascript
|
||
fetch('/api/alerts/123/resolve', {
|
||
method: 'POST',
|
||
headers: {'Content-Type': 'application/json'},
|
||
body: JSON.stringify({
|
||
resolution: '已修复相关问题'
|
||
})
|
||
});
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 故障排除
|
||
|
||
### 常见问题
|
||
|
||
#### 1. 数据库连接失败
|
||
**症状**: 启动时提示数据库连接失败
|
||
**解决方案**:
|
||
- 检查数据库配置是否正确
|
||
- 确认数据库服务是否运行
|
||
- 检查网络连接和防火墙设置
|
||
|
||
#### 2. API密钥无效
|
||
**症状**: LLM调用失败
|
||
**解决方案**:
|
||
- 检查阿里云千问API密钥是否正确
|
||
- 确认API密钥是否有效且有足够额度
|
||
- 检查网络连接
|
||
|
||
#### 3. 文件上传失败
|
||
**症状**: 文件上传时提示"文件被占用"
|
||
**解决方案**:
|
||
- 重启系统
|
||
- 检查临时文件目录权限
|
||
- 清理临时文件
|
||
|
||
#### 4. 知识库显示异常
|
||
**症状**: 知识库内容无法正常显示
|
||
**解决方案**:
|
||
- 运行数据库初始化脚本
|
||
- 检查数据库表结构
|
||
- 重新加载知识库
|
||
|
||
### 日志查看
|
||
|
||
#### 查看系统日志
|
||
```bash
|
||
# Windows
|
||
Get-Content logs/tsp_assistant.log -Tail 50
|
||
|
||
# Linux/Mac
|
||
tail -50 logs/tsp_assistant.log
|
||
```
|
||
|
||
#### 日志级别
|
||
- **DEBUG**: 详细调试信息
|
||
- **INFO**: 一般信息
|
||
- **WARNING**: 警告信息
|
||
- **ERROR**: 错误信息
|
||
- **CRITICAL**: 严重错误
|
||
|
||
### 性能优化
|
||
|
||
#### 1. 数据库优化
|
||
- 定期清理历史数据
|
||
- 添加必要的索引
|
||
- 优化查询语句
|
||
|
||
#### 2. 缓存优化
|
||
- 启用知识库缓存
|
||
- 缓存频繁查询的数据
|
||
- 使用Redis等缓存系统
|
||
|
||
#### 3. 并发优化
|
||
- 调整WebSocket连接数
|
||
- 优化数据库连接池
|
||
- 使用异步处理
|
||
|
||
---
|
||
|
||
## 👨💻 开发指南
|
||
|
||
### 项目结构
|
||
|
||
```
|
||
TSP_assistant/
|
||
├── src/ # 源代码目录
|
||
│ ├── agent/ # Agent相关模块
|
||
│ ├── analytics/ # 分析模块
|
||
│ ├── config/ # 配置模块
|
||
│ ├── core/ # 核心模块
|
||
│ ├── dialogue/ # 对话模块
|
||
│ ├── knowledge_base/ # 知识库模块
|
||
│ ├── utils/ # 工具模块
|
||
│ ├── vehicle/ # 车辆数据模块
|
||
│ └── web/ # Web模块
|
||
├── logs/ # 日志目录
|
||
├── data/ # 数据目录
|
||
├── requirements.txt # 依赖包
|
||
├── init_database.py # 数据库初始化
|
||
└── start_dashboard.py # 启动脚本
|
||
```
|
||
|
||
### 开发环境设置
|
||
|
||
#### 1. 克隆项目
|
||
```bash
|
||
git clone <repository-url>
|
||
cd TSP_assistant
|
||
```
|
||
|
||
#### 2. 创建虚拟环境
|
||
```bash
|
||
python -m venv venv
|
||
source venv/bin/activate # Linux/Mac
|
||
# 或
|
||
venv\Scripts\activate # Windows
|
||
```
|
||
|
||
#### 3. 安装依赖
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
#### 4. 配置环境
|
||
```bash
|
||
cp src/config/config.py.example src/config/config.py
|
||
# 编辑配置文件
|
||
```
|
||
|
||
### 代码规范
|
||
|
||
#### 1. Python代码规范
|
||
- 使用PEP 8代码风格
|
||
- 添加类型注解
|
||
- 编写文档字符串
|
||
- 使用日志记录
|
||
|
||
#### 2. JavaScript代码规范
|
||
- 使用ES6+语法
|
||
- 添加JSDoc注释
|
||
- 使用const/let替代var
|
||
- 处理异步操作
|
||
|
||
#### 3. 数据库规范
|
||
- 使用ORM而不是原生SQL
|
||
- 添加适当的索引
|
||
- 使用事务处理
|
||
- 处理异常情况
|
||
|
||
### 测试
|
||
|
||
#### 1. 单元测试
|
||
```bash
|
||
python -m pytest tests/
|
||
```
|
||
|
||
#### 2. 集成测试
|
||
```bash
|
||
python test_new_features.py
|
||
```
|
||
|
||
#### 3. 功能测试
|
||
```bash
|
||
python comprehensive_frontend_test.py
|
||
```
|
||
|
||
### 部署
|
||
|
||
#### 1. 生产环境配置
|
||
- 使用生产数据库
|
||
- 配置HTTPS
|
||
- 设置环境变量
|
||
- 启用日志轮转
|
||
|
||
#### 2. Docker部署
|
||
```dockerfile
|
||
FROM python:3.9-slim
|
||
WORKDIR /app
|
||
COPY requirements.txt .
|
||
RUN pip install -r requirements.txt
|
||
COPY . .
|
||
CMD ["python", "start_dashboard.py"]
|
||
```
|
||
|
||
#### 3. 监控和运维
|
||
- 设置健康检查
|
||
- 配置监控告警
|
||
- 定期备份数据
|
||
- 性能监控
|
||
|
||
---
|
||
|
||
## 📞 技术支持
|
||
|
||
### 联系方式
|
||
|
||
- **邮箱**: support@example.com
|
||
- **电话**: 400-123-4567
|
||
- **在线客服**: 通过系统内置客服功能
|
||
|
||
### 文档更新
|
||
|
||
本文档会定期更新,请关注最新版本。
|
||
|
||
### 反馈建议
|
||
|
||
如果您在使用过程中遇到问题或有改进建议,请通过以下方式反馈:
|
||
|
||
1. 通过系统内置反馈功能
|
||
2. 发送邮件到技术支持邮箱
|
||
3. 提交GitHub Issue
|
||
|
||
---
|
||
|
||
**版本**: v2.0
|
||
**更新日期**: 2025-09-06
|
||
**维护团队**: TSP智能助手开发团队
|