wm-report-extractlisted
Install: claude install-skill open-winmale/agent-skills
# 财报提取
对财报 PDF(年报/半年报/季报)做**内容理解**:先产出可提取性 meta 文件(这份财报有什么、在哪、质量如何),再**根据用户需求**做数据提取——要特定内容就提特定内容,要全量就全量提取。无预定义模式,需求驱动;每个提取值可溯源到 PDF 页码与原文。
## 何时使用
- 「从 XX 年报里提取货币资金、前十大股东」
- 「把这份年报的核心数据全量提取出来」
- 「XX 年报第 N 页说了什么」
- 「深入解读这家公司的年报,需要的数据都拿出来」
## 不要用本技能
| 用户说法 | 改用 |
|----------|------|
| 财报列表 / 最新年报 PDF 在哪 | 让用户提供 PDF 或公开直链(A 股可用巨潮资讯网 cninfo.com.cn) |
| 三表数字、关键指标(平台口径) | 用本技能全量提取;WinMale 平台用户另可用 wm-statements / wm-data |
| 本地没有 PDF 且无法下载 | 让用户提供文件或公开直链 |
## 依赖与预期
- 转换阶段需 `docling`+`pymupdf`(约 1-2GB,Python 3.10+,实测 docling 2.120.2 / PyMuPDF 1.24.14);`scan/locate/cache` 无需。**解释器选择**:优先 `WM_REPORT_PYTHON` 指定的解释器,未设置时用 PATH 上的 `python3`;执行与依赖安装须用**同一个**已装 docling/pymupdf 的解释器,勿用 managed venv。
- 转换为双轨混合:Docling FAST 全档(版面/叙述/无框线表)+ PyMuPDF `find_tables` 接管有框线页表格(零幻觉、带单元格 bbox)+ ACCURATE 精修无框线报表页(约 10-24 页)。300 页年报约 **6-12 分钟**——**建议后台运行**;`--accurate` 可全档 ACCURATE(约 30-35 分钟,最高精度档);sha256 缓存幂等,二次提取秒级命中。
- darwin 上默认 CPU(`--device cpu`),规避 MPS 内核崩溃。
- 本地已有 docling 模型缓存时**默认离线运行**(自动设 HF_HUB_OFFLINE,避免 HuggingFace revision 在线检查在网络波动时卡死转换;需更新模型时 `unset HF_HUB_OFFLINE TRANSFORMERS_OFFLINE`)。
## 七步流程(必须按序,产物落缓存可审计)
脚本门面(路径按已安装 pack,下同):
```bash
python3 <skills_root>/wm-report-extract/scripts/wm_report.py <subcommand>
```
### ① 获取 + 转换(fetch / convert)
```bash
# 经 WinMale 平台查链接并下载(symbol 模式,可选;未接平台请用 --pdf-url 直链)
python3 …/wm_report.py fetch --symbol 601633 --filing-type annual [--report-date 2025-12-31]
# 或直链 / 本地路径
python3 …/wm_report.py fetch --pdf-url https://…/report.pdf
p