docs: record provider pipeline v1 completion
This commit is contained in:
121
docs/报告/PBF_Provider_Pipeline_v1_Codex完成报告_v1.md
Normal file
121
docs/报告/PBF_Provider_Pipeline_v1_Codex完成报告_v1.md
Normal file
@@ -0,0 +1,121 @@
|
||||
# PBF Provider Pipeline v1 完成报告
|
||||
|
||||
日期:2026-10-06
|
||||
分支:`feature/provider-pipeline-v1`
|
||||
状态:实现已提交;CM95 端到端验收完成;NavSea 端到端验收受资源服务器连接拒绝阻塞。
|
||||
|
||||
## 总体结论
|
||||
|
||||
已实现 Provider-neutral 的 PBF-01~PBF-07、统一 Provider Policy / Provider Package v1 契约与校验、正式导出器,以及从 manifest 启动的单命令 Pipeline。正式终点是 NavSea Provider Package;实现中没有生成 `ProviderExecutionPlan`。
|
||||
|
||||
CM95 全流程实际运行成功,Package 校验结果为 `PASS_WITH_WARNINGS` 并已导出。NavSea 使用任务指定的 X220 当前 Style 文件,但 Sprite 与三个 z12 样本瓦片所处的 `192.168.200.184:80` 均拒绝连接,因此未运行完 intake,不存在 NavSea Policy、Package 或 export 成功证据。故双 Provider 端到端验收尚未全部完成。
|
||||
|
||||
## PBF-01~PBF-07 结果
|
||||
|
||||
| 阶段 | 实现与验证结果 |
|
||||
|---|---|
|
||||
| PBF-01 Provider Source Intake | 支持本地路径与 HTTP(S) Style、由 Style 或 manifest 解析 XYZ vector tile template、Sprite JSON/PNG 快照、Glyph 明确状态、PBF 样本快照、资源 SHA-256 与稳定 source fingerprint。CM95 为 PASS;NavSea Style 快照成功,后续 Sprite/PBF 请求均被拒绝。 |
|
||||
| PBF-02 Style Visual Object Extract | 复用现有 `style_vo_tool.py`,不改写冻结 NavSea Standard Catalog。CM95 Style 成功提取 3,699 个 Visual Object,未解析项 0。 |
|
||||
| PBF-03 Actual Visual Object Instantiate | 移除实例化主逻辑中固定 `cm95` source/catalog;provider、dataset、version 均由参数传递。输出逐 occurrence 的瓦片、feature identity、field evidence、style layer 命中、geometry 与 render components;不按屏幕位置合并。CM95 解码 5,210 个 styled-layer feature,形成 2,077 个 occurrence、102 个 distinct visual object。 |
|
||||
| PBF-04 Provider → Standard Mapping | CM95 使用现有人工 assignment,未调用 matcher 覆盖人工决定;对 102 个实际对象得到 `VISUAL_OBJECT_MATCH` 9、`LAYER_ONLY` 47、`AMBIGUOUS` 2、`UNKNOWN` 44。NavSea mapping 使用冻结 Catalog 中的视觉 hash 对照实现,但受上游资源连接阻塞,未实际执行。 |
|
||||
| PBF-05 Provider Policy Compile | Policy schema 为 `navsea-provider-policy/v1`。CM95 Policy 校验 PASS。NavSea/CM95 共用相同 validator 和 schema;自动测试验证两者键结构一致。 |
|
||||
| PBF-06 Provider Package Validate | Package schema 为 `navsea-provider-package/v1`;结果枚举严格为 `PASS`、`PASS_WITH_WARNINGS`、`FAIL`。FAIL 或未知状态都会阻止导出。CM95 结果 `PASS_WITH_WARNINGS`。 |
|
||||
| PBF-07 Package Export | CM95 正式导出成功,生成 `provider-package.json`、`provider-policy.json`、层映射、Style/Sprite 资源快照、validation JSON/Markdown 与 `MANIFEST.json`。NavSea 未导出。 |
|
||||
|
||||
公开 schema 位于 `tools/provider-policy-compiler/schema/`,第三方可直接按这些公开 Contract 生产 Package,不需要使用本仓库工具。运行时输出放在忽略目录 `.tmp/` 与 `dist/`,没有将 PBF、PNG cache 或导出包纳入 Git。
|
||||
|
||||
## CM95 实际运行
|
||||
|
||||
实际命令:
|
||||
|
||||
```bash
|
||||
python3 /root/.codex/skills/codex-build-output-throttle/build-output-throttle/scripts/run_limited.py \
|
||||
--log-dir .tmp/logs -- \
|
||||
.venv/bin/python tools/provider-pipeline/run_provider_pipeline.py \
|
||||
--manifest providers/cm95/manifest.json
|
||||
```
|
||||
|
||||
实际输入与指纹:
|
||||
|
||||
- Style:`http://192.168.200.184:18889/s52/full-style.json`,SHA-256 `b1d3d0060012a8e4b55a6053231231d742ec415b3a8398f9ae0867bbdfa5290b`。
|
||||
- Sprite JSON:SHA-256 `51519fb9a64f11dc100f894b2b54d14f56770ac9d511f15ae574ff5867af857d`。
|
||||
- Sprite PNG:SHA-256 `90cf4da31e01abb0676b538ebd2b5c951b6d737a31d23062ec6eb06383d729a2`。
|
||||
- Style 未声明 Glyph URL;Package 明确记录 Glyph 不可用,`capabilities.glyphs=false`,没有伪造 Glyph 成功。
|
||||
- Source fingerprint:`aa42eb9fd575dde1b651d537ccc5b52c9dafac1bd8a3d6c5166c49a9581c9363`。
|
||||
|
||||
三个指定 PBF 样本全部成功,失败数为 0:
|
||||
|
||||
| XYZ | 字节数 | SHA-256 |
|
||||
|---|---:|---|
|
||||
| `12/3531/1641` | 423,777 | `1b9521e5dd990c92c71f22a4d56bfbd1ba33e5f236ddbf2af5ce51191e2efab8` |
|
||||
| `12/3526/1643` | 285,154 | `92147b621b213a0c1fe80c2fa28ab71292b79d133b98272977defb41424ec39c` |
|
||||
| `12/3638/1613` | 82,075 | `7eeb420fe809b09f8e03b892668830efd3db3e957bf32a80fd1b92b2d90e1dba` |
|
||||
|
||||
最终 validation 为 `PASS_WITH_WARNINGS`。两项警告分别表示存在未决 mapping,以及本次样本/范围存在已声明限制。46 个 unresolved 映射被保留,未转成猜测 Layer。CM95 本次只覆盖三个样本瓦片,不代表全量数据集覆盖情况。
|
||||
|
||||
阶段产物位置:
|
||||
|
||||
- Intake:`.tmp/provider-pipeline/cm95/s52-full/intake/`,含 `source-manifest.json`、Style/Sprite 快照及三个 PBF 样本。
|
||||
- PBF-02:`.tmp/provider-pipeline/cm95/s52-full/pbf-02-style-visual-object/anonymous-catalog.json`。
|
||||
- PBF-03:`.tmp/provider-pipeline/cm95/s52-full/pbf-03-actual/actual-anonymous-catalog.json`、`visual-object-occurrences.json`、`instantiation-report.json`。
|
||||
- PBF-04:`.tmp/provider-pipeline/cm95/s52-full/pbf-04-mapping/provider-layer-assignment.json`。
|
||||
- PBF-05/06:工作区中的 Policy、校验报告及最终包内对应 JSON/Markdown。
|
||||
- PBF-07:`dist/cm95/s52-full/1.0.0/`,含 package、policy、mapping、resources、validation 与 MANIFEST。此目录已加入 `.gitignore`,需要时可用 manifest 重建。
|
||||
|
||||
## NavSea 实际运行
|
||||
|
||||
实际命令:
|
||||
|
||||
```bash
|
||||
python3 /root/.codex/skills/codex-build-output-throttle/build-output-throttle/scripts/run_limited.py \
|
||||
--log-dir .tmp/logs -- \
|
||||
.venv/bin/python tools/provider-pipeline/run_provider_pipeline.py \
|
||||
--manifest providers/navsea/manifest.json
|
||||
```
|
||||
|
||||
已读取任务指定的本地 Style:`/root/sourceserver/pbf/src/pbf/style.navsea-delivery-full-semantic-extentfix.json`,仅在 worktree 内保存 snapshot,原主工作区文件没有纳入 Git。该 snapshot SHA-256 为 `2ffde6af6043be2567a861a8d06d075a87b532091686bb5ac6ce889e45827e33`。Style 内的 vector source 指向 `http://192.168.200.184/pbf-delivery-full-20260418-rebuild/{z}/{x}/{y}.pbf`,Sprite 指向 `http://192.168.200.184/newpec/sprite-semantic/sprite`。
|
||||
|
||||
对 Sprite JSON、Sprite PNG 和下列三个真实 z12 候选瓦片的 GET 均返回 `[Errno 111] Connection refused`:
|
||||
|
||||
- `12/3531/1641`
|
||||
- `12/3526/1643`
|
||||
- `12/3638/1613`
|
||||
|
||||
所以 NavSea PBF-01 的 Style snapshot 子步骤已完成,但 Sprite/PBF intake gate 未通过;PBF-02~PBF-07 的 NavSea 实际结果均为**无法验证/未运行**。没有改用其他 Provider、镜像或伪造 tile 结果。
|
||||
|
||||
## 测试与检查
|
||||
|
||||
以下 noisy 测试/编译命令均通过 `$build-output-throttle` 执行:
|
||||
|
||||
```bash
|
||||
python3 /root/.codex/skills/codex-build-output-throttle/build-output-throttle/scripts/run_limited.py \
|
||||
--log-dir .tmp/logs -- .venv/bin/python -m unittest discover -s tests -v
|
||||
```
|
||||
|
||||
结果:PASS,6 项测试覆盖稳定 fingerprint、Policy schema、歧义约束、FAIL 阻止导出、导出结果枚举门禁、NavSea/CM95 共用 Contract 结构。
|
||||
|
||||
```bash
|
||||
python3 /root/.codex/skills/codex-build-output-throttle/build-output-throttle/scripts/run_limited.py \
|
||||
--log-dir .tmp/logs -- .venv/bin/python -m compileall -q \
|
||||
tools/provider-policy-compiler tools/provider-pipeline \
|
||||
tools/visual-object-instantiation tests
|
||||
.venv/bin/python tools/provider-pipeline/run_provider_pipeline.py --help
|
||||
git diff --check
|
||||
```
|
||||
|
||||
以上编译检查、CLI help smoke 与 `git diff --check` 均通过。依赖安装在仓库 `.venv` 中,使用 `requirements-provider-pipeline.txt`,没有改动系统 Python。未运行 Jest、Android/ADB 相关操作。
|
||||
|
||||
## Git 与模型配置
|
||||
|
||||
- 实现提交:`aea98628e4695a17078608f64fed225433eb200e`(`feat: implement provider-neutral PBF pipeline v1`)。
|
||||
- 提交范围为本任务文件;没有提交 `docs/任务/` 下用户提供的未跟踪任务输入、`.venv`、`.tmp` 或 `dist` 产物。
|
||||
- 完成报告会作为后续独立文档提交;本报告记录的实现提交 SHA 不受该文档提交影响。
|
||||
- 当前执行器未向工具会话提供可核实的 Codex 模型完整标识或推理档位,故无法验证,未作推断。
|
||||
|
||||
## 尚待完成
|
||||
|
||||
重新开放 `192.168.200.184:80` 上的 NavSea Sprite 与 PBF 服务后,使用同一 manifest 重跑 NavSea Pipeline,确认实际可下载的 z12 样本并补齐 NavSea 七阶段结果。当前可复现执行入口为:
|
||||
|
||||
```bash
|
||||
.venv/bin/python tools/provider-pipeline/run_provider_pipeline.py --manifest providers/navsea/manifest.json
|
||||
```
|
||||
Reference in New Issue
Block a user