52 lines
1.9 KiB
Markdown
52 lines
1.9 KiB
Markdown
|
|
# Codebase Info
|
|||
|
|
|
|||
|
|
## 基本信息
|
|||
|
|
|
|||
|
|
- **项目名称**: TSP 智能助手 (TSP Assistant)
|
|||
|
|
- **语言**: Python 3.11+
|
|||
|
|
- **框架**: Flask 3.x + SQLAlchemy 2.x + WebSocket
|
|||
|
|
- **代码风格**: 变量名英文,注释/UI/日志中文
|
|||
|
|
- **数据库**: SQLAlchemy ORM(开发用 SQLite,生产用 MySQL via PyMySQL)
|
|||
|
|
- **入口文件**: `start_dashboard.py`
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
| 层级 | 技术 |
|
|||
|
|
|---|---|
|
|||
|
|
| Web | Flask 3.x + Flask-CORS |
|
|||
|
|
| ORM | SQLAlchemy 2.x |
|
|||
|
|
| 实时通信 | `websockets` (port 8765) |
|
|||
|
|
| 缓存 | Redis 5.x + hiredis |
|
|||
|
|
| LLM | OpenAI-compatible API (Qwen/通义千问 via DashScope) |
|
|||
|
|
| Embedding | `sentence-transformers` + `BAAI/bge-small-zh-v1.5` (可选) |
|
|||
|
|
| NLP | jieba (分词) + scikit-learn (TF-IDF) |
|
|||
|
|
| 飞书 SDK | `lark-oapi` 1.3.x (长连接模式) |
|
|||
|
|
| 认证 | JWT (`pyjwt`) + SHA-256 |
|
|||
|
|
| 监控 | psutil |
|
|||
|
|
|
|||
|
|
## 目录结构概览
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
src/
|
|||
|
|
├── config/ # UnifiedConfig 单例,从 .env 加载
|
|||
|
|
├── core/ # 数据库、LLM、缓存、认证、ORM 模型
|
|||
|
|
├── dialogue/ # 对话管理、实时聊天
|
|||
|
|
├── knowledge_base/ # 知识库 CRUD、搜索、导入
|
|||
|
|
├── analytics/ # 监控、预警、Token 统计
|
|||
|
|
├── integrations/ # 飞书客户端、工单同步
|
|||
|
|
├── agent/ # ReAct Agent(工具调度)
|
|||
|
|
├── vehicle/ # 车辆数据管理
|
|||
|
|
├── utils/ # 通用工具
|
|||
|
|
└── web/ # Flask 应用层
|
|||
|
|
├── app.py # 应用工厂 + 中间件
|
|||
|
|
├── service_manager.py # 懒加载服务注册
|
|||
|
|
├── decorators.py # 通用装饰器
|
|||
|
|
├── blueprints/ # 按领域划分的 API 蓝图 (16 个)
|
|||
|
|
├── static/ # 前端资源
|
|||
|
|
└── templates/ # Jinja2 模板
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 启动流程
|
|||
|
|
|
|||
|
|
`start_dashboard.py` → 设置日志 → 检查数据库 → 启动 WebSocket 线程 → 启动飞书长连接线程 → 启动 Flask 应用
|