- 新增 .agents/summary/ 完整文档(架构、组件、接口、数据模型、流程、依赖) - 新增 AGENTS.md(AI 助手导航) - 更新 README.md - 修复 dashboard.html 租户模态框多余 </div> 导致保存按钮失效 - 更新 .gitignore 排除虚拟环境文件
128 lines
3.4 KiB
Markdown
128 lines
3.4 KiB
Markdown
# Workflows / 关键流程
|
||
|
||
## 1. 应用启动流程
|
||
|
||
```mermaid
|
||
sequenceDiagram
|
||
participant Main as start_dashboard.py
|
||
participant Log as setup_logging
|
||
participant DB as DatabaseManager
|
||
participant WS as WebSocket Thread
|
||
participant FS as 飞书长连接 Thread
|
||
participant Flask as Flask App
|
||
|
||
Main->>Log: 初始化日志(按启动时间分目录)
|
||
Main->>DB: check_database_connection()
|
||
alt 连接失败
|
||
Main->>Main: sys.exit(1)
|
||
end
|
||
Main->>WS: 启动守护线程 (port 8765)
|
||
Main->>FS: 启动守护线程 (飞书长连接)
|
||
Main->>Main: sleep(2) 等待初始化
|
||
Main->>Flask: app.run(port=5000, threaded=True)
|
||
```
|
||
|
||
## 2. 用户对话流程 (WebSocket)
|
||
|
||
```mermaid
|
||
sequenceDiagram
|
||
participant Client as 浏览器
|
||
participant WS as WebSocketServer
|
||
participant RCM as RealtimeChatManager
|
||
participant DM as DialogueManager
|
||
participant KB as KnowledgeManager
|
||
participant LLM as LLMClient
|
||
|
||
Client->>WS: WebSocket 连接
|
||
Client->>WS: JSON 消息
|
||
WS->>RCM: 转发消息
|
||
RCM->>DM: process_message()
|
||
DM->>KB: search() 知识库检索
|
||
KB-->>DM: 匹配结果
|
||
DM->>LLM: 调用 Qwen API(含知识上下文)
|
||
LLM-->>DM: AI 回复
|
||
DM-->>RCM: 回复内容
|
||
RCM-->>WS: 发送回复
|
||
WS-->>Client: JSON 回复
|
||
```
|
||
|
||
## 3. 工单创建与飞书同步
|
||
|
||
```mermaid
|
||
sequenceDiagram
|
||
participant User as 用户/AI
|
||
participant API as workorders Blueprint
|
||
participant DB as Database
|
||
participant Sync as WorkOrderSyncService
|
||
participant Feishu as 飞书多维表格
|
||
|
||
User->>API: POST /api/workorders
|
||
API->>DB: 创建工单记录
|
||
DB-->>API: 工单 ID
|
||
|
||
opt 飞书同步已配置
|
||
API->>Sync: sync_to_feishu(workorder_id)
|
||
Sync->>Feishu: 创建/更新记录
|
||
Feishu-->>Sync: feishu_record_id
|
||
Sync->>DB: 更新 feishu_record_id
|
||
end
|
||
|
||
API-->>User: 工单创建成功
|
||
```
|
||
|
||
## 4. 知识库搜索流程
|
||
|
||
```mermaid
|
||
flowchart TD
|
||
Q["用户查询"] --> TF["TF-IDF 关键词匹配"]
|
||
Q --> EMB{"Embedding 启用?"}
|
||
|
||
EMB -->|是| VEC["向量语义搜索"]
|
||
EMB -->|否| SKIP["跳过"]
|
||
|
||
TF --> MERGE["合并结果"]
|
||
VEC --> MERGE
|
||
SKIP --> MERGE
|
||
|
||
MERGE --> RANK["按相似度排序"]
|
||
RANK --> VERIFIED{"已验证条目优先"}
|
||
VERIFIED --> RESULT["返回 Top-K 结果"]
|
||
```
|
||
|
||
## 5. 飞书机器人消息处理
|
||
|
||
```mermaid
|
||
sequenceDiagram
|
||
participant User as 飞书用户
|
||
participant Feishu as 飞书服务器
|
||
participant LC as FeishuLongConnService
|
||
participant DM as DialogueManager
|
||
participant LLM as LLMClient
|
||
participant FS as FeishuService
|
||
|
||
User->>Feishu: @机器人 发送消息
|
||
Feishu->>LC: 长连接事件推送
|
||
LC->>LC: 消息去重
|
||
LC->>LC: resolve_tenant_by_chat_id()
|
||
LC->>DM: 处理消息(带 tenant_id)
|
||
DM->>LLM: 生成回复
|
||
LLM-->>DM: AI 回复
|
||
DM->>FS: 发送飞书消息
|
||
FS->>Feishu: API 回复
|
||
```
|
||
|
||
## 6. Agent 工具调度
|
||
|
||
```mermaid
|
||
flowchart TD
|
||
INPUT["用户输入"] --> THINK["Thought: 分析意图"]
|
||
THINK --> ACT["Action: 选择工具"]
|
||
ACT --> EXEC["执行工具"]
|
||
EXEC --> OBS["Observation: 获取结果"]
|
||
OBS --> DONE{"任务完成?"}
|
||
DONE -->|否| THINK
|
||
DONE -->|是| ANSWER["Final Answer: 返回结果"]
|
||
```
|
||
|
||
ReactAgent 注册的工具包括:知识库搜索、车辆查询、数据分析、飞书消息发送等。
|