2.2 KiB
2.2 KiB
DeepSeek-OCR 主链路与非交互 session 取 key 规则(2026-07-13)
适用场景
- 批量扫描件合同梳理
- 需要把 PDF / 图片先转成 Markdown 再审查/比对/回填汇总表
- 当前环境已把
SILICONFLOW_API_KEY写在~/.bashrc,但 agent 所在 session 不是交互式 shell
本次会话固化结论
- 默认 OCR 主链路改为 DeepSeek-OCR,脚本:
~/.hermes/scripts/deepseek_ocr.py - 不要默认回到 marker-pdf / surya 本地链路;本地 OCR 只作显式要求下的备选/对照,不是默认方案。
- 批量扫描件建议流程:
- 先批量跑
deepseek_ocr.py生成 md - 再做 grep / 规则扫描,筛出乱码、过短、金额大小写冲突、主体名称异常、日期异常
- 最后只对异常页做 vision 定点校对
- 先批量跑
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。