Appearance
02 · Bridge 层
架构剖析第二篇:本地 FastAPI 桥承担了什么、路由怎么组织、SSE 事件泵与并发、启动副作用顺序。 对应「技术架构长视频」章节 2。来源
ARCHITECTURE.md§3。
§3.1 为什么选 FastAPI
- 类型安全(pydantic)、自动 OpenAPI、ASGI 支持 HTTP/2 + SSE;
- 与 Electron renderer 直接对话(而非双进程间复杂 IPC)简单可靠。
§3.2 路由组织
src/bridge/routes/下按领域拆分:chat/tree/agents/settings/cron/schedule/todo/reminders/skills/monitor/daily/digital_human/asr/auth/usage/status/reports/gift/cg/agent_workshop/skill_forge/skill_proposals/skill_workshop/feishu/background/user/agent_recipes/broker/broker_workshop/broker_app/pipelines/flows/broadcast/memory_status/onboarding/phone_call/quick_ask/responses/setup/tool_skills/vram/agent_activity/agent_assets…(47 文件)。- 每个文件是一个
APIRouter,mounted 到各自 prefix。
§3.3 SSE 事件泵与并发控制
/api/chat/stream走 SSE;- HTTP/2 多路复用解决 Chromium 6-socket/host 上限 → 客户端可并行多个流;
- 每个对话一个异步任务,事件通过队列推给 renderer。
§3.4 Bridge 启动副作用顺序(重要!)
src/bridge/app.py import 时按顺序做:
- pin
WORKSPACE_ROUTE(仓库根); - 主线程 pin CUDA(Windows WDDM 不允许 worker 线程首触 GPU);
align_all_paths()—— 路径漂移自动对齐(必须在任何 DialogueManager 读对话之前);- import + mount 47 路由;
- 注册 CORS +
BridgeTokenMiddleware; startuphooks:broker_workshop bootstrap → anyio 线程限制器提升 → 池看门狗 → 浏览器生命周期;- 模块级:杀孤儿 GPU 进程 → 预热 embedder/rembg/rewriter/最近的 DH → autorun 检查 → rehydrate 监控/cron/技能调度。
顺序错误会直接崩(CUDA 首触线程、路径未对齐读对话)。改这段请谨慎。
视频时间点映射
| 视频时间点 | 内容 |
|---|---|
| (待录制) | Bridge 总览:路由 47 个、SSE 流、HTTP/2 |
| (待录制) | 启动副作用顺序演示(改一个会怎样) |
下一篇:03-Agent 管线 →
