1实现原理 · 为什么它能做到
实现方式是「脚本编排 + 外部 API」:模型被硬性约束只能执行 scripts/vl_caller.py 调 PaddleOCR 文档解析 API,自身不得解析文档。
skills/paddleocr-doc-parsing/SKILL.md
**⛔ MANDATORY RESTRICTIONS - DO NOT VIOLATE ⛔**
注:这里在做什么:用带破坏性语气的强制约束堵住模型「自己看图解析」的退路。
标准工作流为单条命令:传 --file-url 或 --file-path 给 vl_caller.py,脚本负责编码/请求/封装。
skills/paddleocr-doc-parsing/SKILL.md
python scripts/vl_caller.py --file-url "URL provided by user" --pretty
注:这里在做什么:这就是技能的执行入口,参数决定本地文件还是远程 URL。
默认把原始 JSON 落盘到系统临时目录,并在 stderr 打印绝对路径;--stdout 才跳过持久化。
skills/paddleocr-doc-parsing/SKILL.md
Default path pattern: `<system-temp>/paddleocr/doc-parsing/results/result_<timestamp>_<id>.json`
注:这里在做什么:规定产物落盘策略,保证大 JSON 可回查。
输出是稳定 envelope(ok/text/result/error),text 为各页 markdown 拼接,result 为原生响应。
skills/paddleocr-doc-parsing/SKILL.md
"text": "Full markdown/HTML text extracted from all pages",
注:这里在做什么:把不稳定的 provider 响应包一层固定结构,方便模型/程序消费。
凭据经环境变量注入(API URL / ACCESS_TOKEN / 可选 TIMEOUT),运行时由脚本读取。
skills/paddleocr-doc-parsing/SKILL.md
primaryEnv: PADDLEOCR_ACCESS_TOKEN
注:这里在做什么:frontmatter 声明主凭据环境变量,配置流程据此引导用户。
给出明确错误处理(403 认证失败 / 429 配额耗尽 / 不支持格式),要求原样显示错误并停止。
skills/paddleocr-doc-parsing/SKILL.md
→ Token is invalid, reconfigure with correct credentials
注:这里在做什么:把 API 失败转成确定的行动指引而非让模型兜底。
大 PDF 先用 split_pdf.py 按页范围切片再解析(单请求上限 100 页)。
skills/paddleocr-doc-parsing/SKILL.md
python scripts/split_pdf.py large.pdf pages_1_5.pdf --pages "1-5"
注:这里在做什么:配套工具解决大文件分页,避免超限。
输出 schema 有独立参考文档,调试/理解格式时按需加载。
skills/paddleocr-doc-parsing/SKILL.md
`references/output_schema.md` - Output format specification
注:这里在做什么:渐进式披露,细节移到 references 而非塞进 SKILL.md。
2核心能力
01文档结构解析:文本、表格、公式(LaTeX)、图表、页眉页脚、印章、版面与阅读顺序
02本地文件与远程 URL 双输入(--file-path / --file-url),可显式指定 --file-type
03原始 JSON 自动落盘到临时目录并回报路径;--output/--stdout 可覆盖
04大 PDF 分页处理:split_pdf.py 支持混合页范围
05首次配置引导:缺失 env 时给出获取 API 的地址并列出所需变量
06自检脚本:smoke_test.py 验证配置与可选 API 连通性
07文件优化能力:Pillow 图像压缩与 pypdfium2 PDF 处理
08稳定的输出 envelope 与错误码(ok/text/result/error、INPUT/CONFIG/API_ERROR)
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | python(技能声明的 bins 依赖) |
| network | PaddleOCR Layout Parsing API(用户自备端点,路径以 /layout-parsing 结尾) |
| package | httpx(HTTP 客户端) |
| package | python-dotenv(读取环境变量) |
| package | pypdfium2(PDF 拆页/处理) |
| package | Pillow(图像处理) |
4风险提醒 风险提醒:橙色 · 评估后使用
风险提醒:橙色 · 评估后使用
- 用户文档会发送到外部 PaddleOCR 服务,数据离开本机。 — vl_caller.py 将本地文件或 URL 交给 PADDLEOCR_DOC_PARSING_API_URL 解析;涉密文档需评估合规。
- 聊天中提供的 token 可能留存会话历史。 — SKILL.md 允许从聊天提取凭据并自行警告该风险;实际操作应走宿主配置。
- 解析结果回灌模型上下文,存在间接提示注入面。 — 外部 API 返回的 markdown/文本可携带指令,模型可能照做,技能无内容净化步骤。
- 依赖外部服务可用性与配额。 — 错误处理列出 403/429;服务不可用或配额耗尽时技能只能停止(无本地兜底)。
判定 🟠 orange:技能为自身声明用途读取自身 env 凭据(PADDLEOCR_ACCESS_TOKEN 等),并把用户文档(本地文件或 URL)发送到外部 PaddleOCR 服务解析,同时命中「读凭据/env」与「送用户素材给外部服务后端」两项 orange 触发。另含本地写入(临时 JSON、可选 .env)。无逆向/绕过防护/任意代码执行,不到 red。风险提醒:orange,谨慎使用——文档内容会离开本机,首次配置勿在聊天中贴 token。
5第二遍独立确认
- [ok] 文件面核对 — §1 列出 11 个文件:SKILL.md、_meta.json、references/output_schema.md、7 个 scripts、2 个 requirements;与 internal_assets 一致。
- [ok] 网络调用真伪 — §3 network 命中 lib.py 的 urllib.parse;结合 SKILL.md 的 API 流程与 requirements.txt 的 httpx,确认真实外发到用户端点。
- [ok] 凭证读取复核 — frontmatter requires.env 明列三个变量,配置流程与错误处理段反复引用,确认真实读取。
- [ok] 写盘复核 — §3 写盘命中 configure.py 的 open(env_file,"w");SKILL.md 另述默认 temp 落盘与 --output,结论成立。
- [ok] 行为限制是否落空 — ⛔ 强制约束为提示层,不构成技术隔离;宿主若允许仍可绕过,故 injection_surface 按提示层描述。
- [ok] 档位判定复核 — 读 env 凭据 + 外发用户素材 → 🟠 orange 成立,未达 red。
6结论
适合:需要从复杂文档(发票/财报/学术论文/多栏刊物)结构化提取文本、表格、公式、图表的用户;已有 PaddleOCR 端点与 token、愿意把文档送到该服务解析的场景。
不适合:对数据不出本机有硬性要求(涉密/合规)的场景;只需简单文本 OCR 或截图识别的任务(SKILL.md 明确劝退);无 API 凭据且不愿配置外部服务的环境。
安装 agent 直装可复制
① 本站镜像 更新 2026-10-10
方式 A · 人下载镜像包下载 paddleocr-doc-parsing.tar.gz
sha256:
方式 B · JSON 格式安装指南,复制给 agent677ae1c7c7845ee9…agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
② 上游 GitHub · 原始来源
来源信息 GitHub 原始
作者 / 仓库freestylefly / freestylefly/canghe-skills
原始 GitHubfreestylefly/canghe-skills ↗
本 skill commit
dd0bf35595许可MIT(仓库根 LICENSE)
本站信息
收录日期2026-09-06
分类内容创作
侦查报告AI 侦查 · 2 遍 · 2026-09-06
本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。