- bcrypt 密码哈希升级(兼容旧 SHA-256,登录时自动升级) - auth_manager.secret_key 从环境变量读取 - 前端事件总线(on/off/emit) - ConfigService 统一配置服务 - AI 监控错误详情修复(Conversation 没有 category/source) - README.md 重写
62 lines
2.6 KiB
Markdown
62 lines
2.6 KiB
Markdown
# TSP 智能助手
|
||
|
||
AI 驱动的多租户客服与工单管理系统,支持飞书机器人、WebSocket 实时对话、知识库语义搜索。
|
||
|
||
## 功能概览
|
||
|
||
- **智能对话** — WebSocket 实时聊天 + 飞书机器人(长连接模式),按租户隔离知识库
|
||
- **工单管理** — 创建、编辑、删除、飞书多维表格双向同步,AI 生成处理建议
|
||
- **知识库** — TF-IDF + 可选 Embedding 语义搜索,支持文件导入、人工验证
|
||
- **多租户** — 数据按 tenant_id 隔离,每个租户独立的系统提示词和飞书群绑定
|
||
- **数据分析** — 工单趋势、预警统计、满意度分析,支持按租户筛选
|
||
- **预警系统** — 自定义规则、多级别预警、批量管理
|
||
- **系统管理** — 模块权限控制、流量/成本/安全配置、Token 监控
|
||
|
||
## 快速开始
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
cp .env.example .env # 编辑填入 LLM API Key、飞书凭证等
|
||
python init_database.py
|
||
python start_dashboard.py
|
||
```
|
||
|
||
访问 http://localhost:5000,默认账号 `admin` / `admin123`。
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
src/
|
||
├── config/ # 配置管理(unified_config + config_service)
|
||
├── core/ # 基础设施(数据库、LLM、缓存、认证)
|
||
├── dialogue/ # 对话管理(realtime_chat、message_pipeline)
|
||
├── knowledge_base/ # 知识库(搜索、导入、验证)
|
||
├── repositories/ # 数据访问层(自动 tenant_id 过滤)
|
||
├── analytics/ # 监控与分析(预警、Token、AI 成功率)
|
||
├── integrations/ # 外部集成(飞书客户端、工单同步)
|
||
├── agent/ # ReAct Agent(工具调度)
|
||
└── web/ # Web 层
|
||
├── app.py # Flask 应用
|
||
├── blueprints/ # API 蓝图(每个领域一个文件)
|
||
├── service_manager.py
|
||
├── static/js/ # 前端模块
|
||
│ ├── dashboard.js # 核心
|
||
│ └── modules/ # 功能模块
|
||
└── templates/ # Jinja2 模板
|
||
```
|
||
|
||
## 环境变量
|
||
|
||
| 变量 | 说明 | 默认值 |
|
||
|------|------|--------|
|
||
| `SECRET_KEY` | Flask session 密钥 | 随机生成 |
|
||
| `LLM_BASE_URL` | LLM API 地址 | DashScope |
|
||
| `LLM_API_KEY` | LLM API 密钥 | - |
|
||
| `LLM_MODEL` | 模型名称 | qwen-plus-latest |
|
||
| `FEISHU_APP_ID` | 飞书应用 ID | - |
|
||
| `FEISHU_APP_SECRET` | 飞书应用密钥 | - |
|
||
| `REDIS_HOST` | Redis 地址 | localhost |
|
||
| `ADMIN_PASSWORD` | 默认管理员密码 | admin123 |
|
||
|
||
完整变量列表见 `.env.example`。
|