Files

2.2 KiB

DeepSeek-OCR 主链路与非交互 session 取 key 规则(2026-07-13)

适用场景

  • 批量扫描件合同梳理
  • 需要把 PDF / 图片先转成 Markdown 再审查/比对/回填汇总表
  • 当前环境已把 SILICONFLOW_API_KEY 写在 ~/.bashrc,但 agent 所在 session 不是交互式 shell

本次会话固化结论

  1. 默认 OCR 主链路改为 DeepSeek-OCR,脚本:~/.hermes/scripts/deepseek_ocr.py
  2. 不要默认回到 marker-pdf / surya 本地链路;本地 OCR 只作显式要求下的备选/对照,不是默认方案。
  3. 批量扫描件建议流程:
    • 先批量跑 deepseek_ocr.py 生成 md
    • 再做 grep / 规则扫描,筛出乱码、过短、金额大小写冲突、主体名称异常、日期异常
    • 最后只对异常页做 vision 定点校对
  4. deepseek_ocr.py 已修成:
    • 先读当前进程环境变量 SILICONFLOW_API_KEY
    • 若当前 session 没带 key,则回退到 bash -ic~/.bashrc 读取
    • 读取成功后回填到当前进程环境
    • 两边都没有才报错:Missing SILICONFLOW_API_KEY in environment or ~/.bashrc

为什么要这样做

非交互 shell 默认不加载 ~/.bashrc。如果只在脚本里 os.environ.get("SILICONFLOW_API_KEY"),则新 session/批量 terminal 调用会误报“缺 key”,但实际上 .bashrc 里已经有 key。

执行口径

  • 单文件:
    python3 ~/.hermes/scripts/deepseek_ocr.py /path/to/file.pdf -o /path/to/file.md
    
  • 批量:按合同目录遍历 .pdf,逐个输出同名 .md
  • 批量产物出来后,优先筛这几类异常:
    • 结果过短(只剩标题/前几行)
    • 金额小写与大写不一致
    • 主体名称错字/缺字
    • 日期区间逻辑不通
    • 银行账户等长数字串

已验证案例

  • 北翼玖玖 17 份 PDF:已全量跑完 DeepSeek-OCR 输出 md
  • 发现的典型异常:
    • 某些物业合同只识别出标题,正文漏识别
    • 押金小写金额与大写金额明显冲突
    • 主体名称 OCR 错字(如“崇区川”)

给后续 agent 的一句话

扫描件合同默认先跑 DeepSeek-OCR,再筛异常,再 vision 定点校对;不要一上来就切回本地 OCR。