docs: 同步 app/search/ 模块结构 + OCRProvider 签名到 ARCHITECTURE.md

This commit is contained in:
2026-07-07 06:14:26 -04:00
parent 499c5b8043
commit 7cd49a5a3f
+17 -10
View File
@@ -119,12 +119,16 @@ project_root/
├── app/ # 应用层(组合 core + adapters,领域特化)
│ ├── tree/ # 模块1:建树
│ │ ├── index.py # TreeIndex 数据结构(L1/L2/L3Node
│ │ ├── video_builder.py # VideoTreeBuilderasyncio 并发)
│ │ ├── text_builder.py # TextTreeBuilder
│ │ ├── embeddings.py # EmbeddingModellocal/remote 双后端)
│ │ ├── enhance/ # 树增强管线(verify/supplement/clean
│ │ ── subtitle.py # SRT 解析 + 字幕注入
│ │ ├── index.py # TreeIndex 数据结构(L1/L2/L3Node + Card
│ │ ├── video_builder.py # VideoTreeBuilderL2 轴心 + asyncio 并发)
│ │ ├── config.py # TreeConfig 配置 dataclass
│ │ ├── subtitle.py # SRT 解析 + Voronoi 字幕分配
│ │ ├── verify.py # 交叉校验(entities/visible_text
│ │ ── environment.py # 树环境语义搜索(分块 embedding + 祖先去重)
│ │ └── repair/ # 后修复管线
│ │ ├── detector.py # 缺陷检测(空字段/缺帧/时间间隙)
│ │ ├── regenerator.py # VLM 重描述 + 自底向上级联修复
│ │ └── supplement.py # Q&A 反向补全
│ ├── harness/ # 模块2:训练 harness
│ │ ├── runner.py # 训练循环编排(对标 Trainer)
│ │ ├── inference.py # 推理 step
@@ -138,8 +142,11 @@ project_root/
│ ├── question_gen/ # 模块3:出题(加载 + 采样 + 未来 LLM 生成)
│ │ └── loader.py # benchmark 加载、分层采样
│ ├── search/ # 搜索 Agent 装配
│ │ ├── prompt.py # PromptManager
│ │ ── skills.py # SkillRegistry
│ │ ├── prompt.py # PromptManagerprompt 加载与拼装)
│ │ ── skills.py # SkillRegistry + discover_skills
│ │ ├── summarizer.py # 两轮 LLM 摘要(view_node / search_similar 用)
│ │ ├── vision.py # observe_frameVLM 两轮 + OCR 注入)
│ │ └── tools.py # SearchToolDispatcher(实现 ToolDispatcher
│ ├── retriever/ # 可训练检索器
│ │ ├── recursive.py # RecursiveRetriever (CrossAttention+ACT)
│ │ ├── losses.py # NavigationLoss + ACTLoss
@@ -219,7 +226,7 @@ project_root/
| `EmbeddingProvider` | `embed(texts)` | 文本嵌入 | `adapters/embedding.py` |
| `TreeCache` | `get()`, `set()` | 树索引缓存 | `adapters/redis_cache.py` |
| `ASRProvider` | `transcribe(audio_path)` | 语音识别 | `adapters/asr.py` |
| `OCRProvider` | `recognize(image_path)` | OCR | `adapters/ocr.py` |
| `OCRProvider` | `transcribe_frames(frame_paths: list[Path]) -> str` | 帧文字转录 | `adapters/ocr.py` |
判据:这块代码会不会被换实现、或需要在测试里替换成假的?不会,就别抽象。
@@ -229,7 +236,7 @@ project_root/
|----------|-------------|------|
| `LLMProvider` | `adapters/llm.py` `GovernedLLMClient` | OpenAI 兼容 API,内置治理栈(§5) |
| `VLMProvider` | `adapters/vlm.py` | Qwen VL 等 OpenAI 兼容 VLM API |
| `ToolDispatcher` | `app/search/skills.py` `SkillRegistry` | 按名称分发到已注册工具函数 |
| `ToolDispatcher` | `app/search/tools.py` `SearchToolDispatcher` | 搜索 Agent 工具分发(view_node / search_similar / observe_frame / submit_answer / read_skill |
| `SkillStore` / `PromptStore` | `app/harness/workspace.py` | 文件系统版本化存储(`store/skills/v{N}/` |
| `RunLog` | `app/harness/log.py` `HarnessLog` | SQLite 持久化 |
| `TelemetryRecorder` | `adapters/telemetry.py` | SQLite `telemetry.db` |