# 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 注册的工具包括:知识库搜索、车辆查询、数据分析、飞书消息发送等。