pdf-glmocr-hybrid

SKILL效率
效率 未标注权限 许可证不明确
安装这个技能

年报/财报 PDF 的混合提取工具:pdfplumber 当主力(快、保结构),本地 Ollama 的 glm-ocr 视觉模型只兜底它搞不定的页(扫描页/图片页/复杂财报表格/乱码页),并按页图像哈希缓存(重跑免费)。当用户要处理上市公司年报、招股书、财报等 PDF,希望"比纯 pdfplumber 更准、比全页 OCR 更快"时使用。触发词:年报提取、财报OCR、pdfplumber+glm-ocr、混合提取、年报文字识别。

一句话选型结论

按资料字段整理

pdf-glmocr-hybrid是效率类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类效率 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_bf2a403c/sy-investment-arextractocr
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_bf2a403c仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791625623
正文体量7.1 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
整理待办与日程

把零散任务收进清单,排出优先级。

批量处理重复任务

把固定动作做成模板,重复执行。

把流程写成清单

把口头流程整理成可复用的步骤。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在效率场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
pdf-glmocr-hybrid当前 未标注权限 未标注 未标注 未标注 有
Nano PDF 文档 联网访问 ClawHub 市场 424.9 万 OpenClaw 有
自动更新程序 浏览器控制 ClawHub 市场 296.4 万 OpenClaw 有
Gemini 助手 联网访问 ClawHub 市场 254.7 万 OpenClaw 有
word DOCX 文档 联网访问 ClawHub 市场 239.6 万 OpenClaw 有
Excel XLSX 前端 联网访问 ClawHub 市场 227.0 万 OpenClaw 有

SKILL.md 全文

7.1 KB
模型实际读到的说明书原文,来自技能仓库

PDF 混合提取(pdfplumber + glm-ocr)

Overview

年报类 PDF 多为"有文字层"的排版文件,pdfplumber 抽文字/表格又快又准;但它在三处会翻车:扫描/图片页(无文字层)、合并单元格的复杂财报表格、乱码页。盲目全页 OCR 既慢又易把表格结构读丢。

正确姿势:pdfplumber 优先,glm-ocr 只兜底失败页,并缓存 OCR 结果。本技能自带脚本 scripts/annual_report_ocr.py。

运行方式

依赖装在被隔离的 venv(pdfplumber / pypdfium2 / requests):
- venv Python:C:\Users\wangs\.workbuddy\binaries\python\envs\default\Scripts\python.exe
- Ollama 本地服务:http://localhost:11434,模型 glm-ocr:q8_0(智谱,1.1B/Q8/128K/vision)

PY="C:/Users/wangs/.workbuddy/binaries/python/envs/default/Scripts/python.exe"
$PY scripts/annual_report_ocr.py <年报.pdf>             # 默认:pdfplumber 优先 + 仅失败页 OCR
$PY scripts/annual_report_ocr.py <年报.pdf> --ocr-all    # 强制每页 OCR(最准但慢)
$PY scripts/annual_report_ocr.py <年报.pdf> --ocr-tables # 精:正文 pdfplumber + 仅表格区域 OCR(推荐)
$PY scripts/annual_report_ocr.py <年报.pdf> --pages 5,6  # 仅指定页走 OCR
$PY scripts/annual_report_ocr.py <年报.pdf> --dpi 250 --max-tokens 8192  # 密报表页可加分辨率/上限

输出(与 PDF 同目录):<名>.md(干净正文,带 [pN|pdfplumber|ocr] 标记)+ <名>.json(结构化,含每页来源与表格)。可直接喂给"年报财务数据提取"技能或人工核对。

兜底判定逻辑(page_needs_ocr)

满足任一即走 OCR:① 文本字符数 < 阈值(稀疏/图片页);② 含财报表头(合并资产负债表/利润表/现金流量表等)但 pdfplumber 没抽到表格;③ 乱码(替换字符占比过高);④ 用户用 --ocr-all / --pages 显式指定。

精:表格区域 OCR(--ocr-tables,推荐)

最实用的模式:正文走 pdfplumber、仅表格区域走 OCR。做法:

  1. page.find_tables(vertical_strategy=&quot;text&quot;, horizontal_strategy=&quot;text&quot;) 定位每张表精确包围盒(按文字对齐检测,财报表不依赖格子线也能整张检出);
  2. pypdfium2 渲染整页 → 按 bbox 裁出表区域 → glm-ocr(num_ctx=16384);
  3. 过滤:宽 > 200pt 且面积 > 页面 1/8 才送 OCR,避免误判小列片段。

实测(农夫山泉 2025 年报 230 页,5.5 分钟):损益表 1193、财务状况表 2021、现金流量表 2527 字符(比整页 OCR 982/1551/2094 更全,因为模型专注表格区)。适合年报/招股书/财报——表格多且对数字准确性高的场景。

⚠️ 两处必须知道的 glm-ocr 坑(否则产出是垃圾)

调用 Ollama /api/generate 时:

  1. 必须显式放大 num_ctx(上下文窗口)——这是密表早停的真正根因。glm-ocr 默认 num_ctx 极小,图像编码占满后几乎无生成余量,模型在表头就 EOS(实测密表只出 ~129 字符表头,且 num_predict 调到 16384 都无效)。固定 options={&quot;num_ctx&quot;: 16384, &quot;num_predict&quot;: 4096, &quot;temperature&quot;: 0}。财报三大表实测 num_ctx=16384 时单页完整输出 982~2094 字符;不放大 num_ctx 则永远不全。
  2. num_predict 也要放大。默认生成上限极小,不设会被截断成残破 HTML(实测 ~87 字符就停)。4096 起,密表可 8192。
  3. prompt 极度敏感:
    - 空 prompt → 不输出任何内容(模型需要 prompt);
    - 英文 / 过长中文 prompt(如"严格保留原有排版顺序…不要增删")→ 触发 HTML 格式 且截断;
    - ✅ 只有简短中文 请完整转录图片中的所有文字,保留表格结构。 能稳定输出完整、制表符分隔的结果。
    - 缓存键已包含 图像+模型+prompt+num_predict+num_ctx,换 prompt/参数不会命中旧(可能残破的)结果。

架构要点

  • pdfplumber 负责文字层抽取与表格结构(快、无损);pypdfium2 仅负责把"需 OCR 的页"渲染成 PNG(不参与文字抽取)。
  • OCR 是瓶颈且昂贵 → 只给失败页调用,并按页图像哈希缓存,同一份 PDF 重跑或调参后重跑命中页免费。
  • 输出为制表符/空格对齐文本,下游易解析为表格。

实战经验:文字层乱码年报(小米 1810.HK,2026-09-09 实测)

小米集团 2021-2025 全部年报 PDF 的字体 ToUnicode 映射损坏,中英文提取出来是"伪汉字"(如「䌪䪍㟺㔺ⷭ」),但数字编码正常。文字层提取(pdfplumber/pdfkit/pymupdf)全部失效,只能 OCR。几个关键经验:

  1. 乱码类型判定:分两种——① 替换符 \ufffd 占比高(pdfplumber 检测不到字符);② CID 映射损坏(伪汉字,主要是 CJK 扩展 A U+3400-U+4DBF 与私有区 U+E000-U+F8FF)。脚本 is_garbled 已兼容两种(② 类单独统计罕见字符占比)。
  2. 页码定位改用 PDF 书签:乱码时 search_text 搜不到关键词,用 PyMuPDF doc.get_toc() 读书签(结构化元数据不受乱码影响)定位「合併損益表/合併權益變動表/合併現金流量表」等章节页码。
  3. 数字层可交叉验证:乱码 PDF 的数字通常正常,用 page.get_text(&quot;words&quot;) 提取数字做 OCR 结果的核对/补漏(实测靠它确认了 OCR 漏读的「因攤薄 (12,117)」)。
  4. 全 PDF 乱码时用 --pages 指定报表页:is_garbled 判乱码后会自动 OCR,但脚本仍会遍历全部分页跑 pdfplumber(慢);已知报表页码范围时直接 --pages a-b 只 OCR 目标页,可大幅提速(五份年报共 45 页 OCR 约 40 分钟)。
  5. OCR 输出格式不统一:同一批年报里,损益表可能输出 Markdown 表格(| 收入 | 5 | 457,286,687 | ... |),而 OCI/BS/CF 输出空格分隔文本流(逐行或同行混合)。下游解析器须兼容两种格式。
  6. temperature=0 下偶发重复生成:同一内容块会重复输出 1-8 次(整块以 ``` 分隔,或行级重叠),需按"最长实质块 + 条目级整段去重"处理。
  7. 系统性误读:常见如「權益法入賬」读成「法人賬」。跨年对照(年报 N 的上年列 vs 年报 N-1 的当年列)能兜底这类问题。

未做(v2 候选,按需扩展)

  • 单元格级 OCR:pdfplumber 切出表格单元格包围盒 → 逐格裁图送 glm-ocr,把 pdfplumber 的"结构"与 OCR 的"字符准确率"结合,进一步提财报三大表准确率。
  • 包成 WorkBuddy 连接器/技能触发器,从对话直接调起。

```

常见问题

5 问
答案由本站依据条目字段整理
pdf-glmocr-hybrid怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_bf2a403c/sy-investment-arextractocr。安装方式为未标注。装完刷新技能列表或重开客户端。

pdf-glmocr-hybrid支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

pdf-glmocr-hybrid权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

pdf-glmocr-hybrid收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

pdf-glmocr-hybrid用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。