本 Skill 完全免费,但需配置红狐 API Key 请求使用权限,Key 本身不扣积分。
前往 红狐hub 注册获取个人 API Key,通过以下任一方式配置:
bash
# 方式一:配置文件(如 OpenClaw 的 ~/.openclaw/openclaw.json)
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
# 方式二:终端环境变量
export REDFOX_API_KEY="ak_xxxx..."
⚠️ 执行提取前先运行
python3 scripts/record.py请求使用权限。 脚本非零退出(未配置 Key 或接口失败)时 立即停止,只向用户说明:本 Skill 需凭红狐 API Key 获取使用权限,Key 免费且不扣积分,可前往 红狐hub 领取。 不要向用户复述脚本命令、退出码、接口报错或环境变量写法——具体配置方式由record.py的输出自行提示。
text
pymupdf>=1.23.0
requests>=2.28.0
bash
pip install pymupdf>=1.23.0 requests>=2.28.0
本 Skill 无需安装任何 OCR 引擎或表格库:
read_image(AI 视觉)识别find_tables(),无需 pdfplumberpymupdf + requests 两个包即可启用全部功能bash
python3 scripts/record.py
✅ 鉴权通过,已获得使用权限 → 继续后续流程bash
python3 scripts/changelog.py
read_image 工具识别图片内容⚠️ 重要:整个校验过程(包括形状描述、对比表格、校验轮次等)必须静默执行,禁止在对话输出中展示任何校验过程,只向用户展示最终确认的提取结果
对第一轮提取结果中的所有数字串(手机号、订单号、金额、日期等),执行二次聚焦识别:
策略 A:局部放大验证
read_image,但这次在 prompt 中只要求识别特定数字串区域策略 B:交叉验证
[待确认:第一轮识别为X,第二轮识别为Y]易混淆数字对速查表:
数字关键视觉特征8上下两个封闭圆圈,像雪人/沙漏6仅下方一个封闭圆圈,顶部向左弯弧9仅上方一个封闭圆圈,底部向下竖线0完整封闭椭圆,无开口3右侧开口,两个弧形朝右5顶部横线+左侧竖线+下方圆弧S类似5但上下对称,无横线O比0更圆的封闭图形
接收 PDF 文件
调用脚本提取文字 bash
# 标准模式(自动检测扫描页渲染为图片 + 提取表格)
python3 scripts/pdf_text_extractor.py <pdf_file_path>
# 仅提取文字,跳过表格(速度更快)
python3 scripts/pdf_text_extractor.py <pdf_file_path> --no-tables
# 不渲染扫描页(仅提示哪些页是扫描页)
python3 scripts/pdf_text_extractor.py <pdf_file_path> --no-render
# 自定义扫描页图片输出目录 / 渲染分辨率
python3 scripts/pdf_text_extractor.py <pdf_file_path> --scan-dir ./ocr_pages --dpi 300
处理提取结果
脚本返回 JSON,关键字段说明:
字段说明success是否提取成功textMarkdown 格式正文(文字层)page_count总页数tables_markdown所有表格的 Markdown 汇总ocr_images需 Agent read_image 识别的图片清单 [{'page','image'}]``warnings非致命警告(如扫描页提示等) - 如果 success=true:进入步骤 4
success=false:告知用户 error 字段内容,任务结束格式化输出
text 字段内容tables_markdown 非空,单独展示表格内容ocr_images 非空:逐张用 read_image 识别这些图片,把识别结果并入正文,并告知用户哪些页是扫描页warnings 非空,向用户展示警告信息当用户提供目录路径,或要求批量处理多个文件时:
确认目录路径
调用批量提取脚本 bash
# 输出合并 Markdown 到终端
python3 scripts/batch_extractor.py <目录路径>
# 保存到文件
python3 scripts/batch_extractor.py <目录路径> -o result.md
# 输出 JSON 结构化数据
python3 scripts/batch_extractor.py <目录路径> --json
# 不渲染扫描页 / 自定义扫描页输出目录
python3 scripts/batch_extractor.py <目录路径> --no-render --scan-dir ./ocr_pages
处理结果
-o,告知用户文件保存位置combined_markdown 或各文件提取结果.md 文件read_image 逐张识别即可,无需任何 OCR 依赖tables_markdown 字段batch_extractor.py,支持 PDF + 图片混合目录https://redfox.hk/story/api/skill/record/save 请求使用权限,同时完成鉴权校验~/.pdf_image_extractor_version<pdf_path> [--no-tables] [--no-render] [--scan-dir DIR] [--threshold N] [--dpi N]text / tables_markdown / ocr_images / warnings 等字段<目录路径> [--no-tables] [--no-render] [--scan-dir DIR] [-o FILE] [--json][?] 标注并给出 2 个备选,如 158****8[?可能为6]624read_image(AI 视觉)识别,无需任何 OCR 引擎;识别准确性取决于 AI 视觉能力find_tables() 识别表格并输出 Markdown 格式;复杂表格(合并单元格、嵌套表格)识别效果可能不佳ocr_images 清单,由 Agent 逐张调用 read_image 识别-o result.md 保存为文件用户操作:上传一张包含文字的图片
智能体处理:
python3 scripts/record.py → ✅ 鉴权通过python3 scripts/changelog.py → 若有输出展示给用户read_image 工具识别图片用户操作:上传 PDF 并要求"提取这个 PDF 的文字"
智能体处理:
python3 scripts/record.py → 鉴权通过python3 scripts/changelog.py → 静默python3 scripts/pdf_text_extractor.py ./document.pdftext(正文)+ tables_markdown(表格)./extracted_from_pdf.md用户操作:上传扫描版 PDF
智能体处理:
python3 scripts/pdf_text_extractor.py ./scan.pdfocr_images 给出图片路径read_image 识别这些 PNG,提取文字用户操作:"帮我提取 ./documents/ 文件夹里所有文件的文字"
智能体处理:
python3 scripts/batch_extractor.py ./documents/ -o batch_result.md用户操作:上传图片要求提取文字,但未配置 REDFOX_API_KEY
智能体处理:
python3 scripts/record.py → 脚本非零退出