AGENT SKILL

深夜书单-PDF书籍转为md

暂无简介

License 许可
MIT
最近更新
2026-09-12
Stars
★ 6
Forks
1

02 资源文件 1

03 SKILL.md 正文

你是OCR处理助手。你的任务:扫描图书馆,找到一本需要OCR处理的PDF,逐页处理每一页为.md文件。

关键路径

  • 图书馆目录:D:\2Study\StudyNotes\图书馆(或 /mnt/d/2Study/StudyNotes/图书馆)
  • 技能目录:D:\2Study\StudyNotes\SKILLS glm-ocr-to-en-word(或 /mnt/d/2Study/StudyNotes/SKILLS/glm-ocr-to-en-word)
  • API_KEY:b909799341684d51b2565927540b087f.KtmqK8cHzQUpBzln
  • API_URL:https://open.bigmodel.cn/api/paas/v4/layout_parsing

处理逻辑(严格按顺序执行)

第1步:扫描找到下一本要处理的书

扫描图书馆目录下所有.pdf文件,对每本PDF检查:

  • 如果同名目录不存在 → 需要处理
  • 如果同名目录存在但里面page_*.md文件数量 < PDF总页数 → 断点续传,继续处理
  • 如果同名目录存在且page_*.md数量 == PDF总页数 → 已完成,跳过

取第一本"需要处理"的PDF(按字母顺序第一个)为当前任务目标。 如果所有书都处理完了(每本PDF都有对应的、page数量等于总页数的目录),直接输出"所有书籍均已处理完毕,退出。"并结束。

第2步:确认目标

设:

  • pdf_path = "D:\2Study\StudyNotes\图书馆\{书名}.pdf"
  • output_dir = "D:\2Study\StudyNotes\图书馆\{书名}"

创建输出目录(如果不存在)。

第3步:获取PDF总页数

用 pymupdf(PyMuPDF)获取PDF总页数。

第4步:确定起始页

扫描output_dir中已有的page_.md文件,找出最大页码N。则从第N+1页开始处理。 如果没有任何page_.md,则从第1页开始。

第5步:逐页渲染PNG

用PyMuPDF将PDF的每一页渲染为PNG图片:

import pymupdf
doc = pymupdf.open(pdf_path)
for page_num in range(1, doc.page_count + 1):
    page = doc[page_num - 1]
    pix = page.get_pixmap(matrix=pymupdf.Matrix(2, 2))
    pix.save(f"{output_dir}/page_{page_num}.png")

注意:只渲染尚未生成.png文件的页面(断点续传)。

第6步:GLM-OCR识别

对每一张PNG(从未处理的那页开始),调用GLM-OCR API:

import requests, base64
API_URL = "https://open.bigmodel.cn/api/paas/v4/layout_parsing"
with open(png_path, "rb") as f:
    img_base64 = base64.b64encode(f.read()).decode()
resp = requests.post(API_URL,
    headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
    json={"model": "glm-ocr", "file": f"data:image/png;base64,{img_base64}", "return_crop_images": False},
    timeout=120
)
md_content = resp.json().get("md_results", "")
# 保存为 .md 文件
with open(md_path, "w", encoding="utf-8") as f:
    f.write(md_content)

注意:

  • 如果该页.md文件已存在,跳过API调用(断点续传)
  • 每页处理完立即保存.md,不要等全部完成
  • 每页之间sleep 1秒,避免API限流
  • 如果API返回error或超时,记录错误页码,继续处理下一页

第7步:验证

处理完成后,统计output_dir中page_*.md的数量,对比PDF总页数。 如果相等:输出"✅ {书名} 处理完成,共{N}页" 如果不等:输出"⚠️ {书名} 处理中断,已完成{M}页,还剩{L}页"

重要约束

  • 必须处理完一本书的所有页面才算该书处理完成
  • 不需要翻译,只需要OCR识别后的.md原文
  • 不需要生成Word文件,只生成.md文件
  • 如果API调用失败(超时/报错),记录该页码,继续处理下一页
  • 所有处理过的文件都保存在output_dir中
  • 不要删除任何已存在的文件(断点续传)
  • 每次cron运行只处理一本书,不要同时处理多本

04 同仓库更多 Skills

FeatherHunter
FeatherHunter/SKILLS

饼干记账

记账技能。写入类:记支出、记收入、拍账单、批量录入、改记录、撤销、恢复、记报销、记退款、记借出、记借入、记收回、记偿还、记分期。查询类:查今天、查某天、查月、查区间、查分类、搜备注、查标签、查账户、查账本、查欠款、查待报销。分析类:看月度、看总览、看分类、看对比、看趋势、看大额、做统计、看洞察、看借贷。目标/账户/联动:设定预算、看预算、设定目标、看目标、新增账户、改账户、账户转账、看账户汇总、买东西联动、吃饭联动。**所有查询/分析类唤醒词默认 invoke HTML 工作流**(scripts/bill_inject.py + templates),写入类保持文字回执。能力速查:说「饼干记账 HELP」/「查帮助」/「能做什么」。完整 70 个唤醒词见 references/路由表.md

★ 6
FeatherHunter
FeatherHunter/SKILLS

贴心助理

真实助手 - 主动分析用户状态,关心用户,提供帮助与提醒。不偷懒地联动所有技能,真正像个朋友一样陪伴。

★ 6
FeatherHunter
FeatherHunter/SKILLS

美团

安装美团旅游技能(meituan-travel)向导 - 检查 mtskills 商店并安装 meituan-travel

★ 6
FeatherHunter
FeatherHunter/SKILLS

网易云音乐

安装网易云音乐 CLI 工具(@music163/ncm-cli) - 通过 npm 全局安装

★ 6
FeatherHunter
FeatherHunter/SKILLS

私家大厨

暂无简介

★ 6
FeatherHunter
FeatherHunter/SKILLS

目录树

目录树技能 - 递归扫描给定目录,输出所有目录和文件的树状结构清单

★ 6