SuperAPI AI 工具集

glmocr-formula

数据与分析

查看项目

更新于 10-16 08:52

技能介绍

GLM-OCR 公式识别技能(glmocr-formula)是智谱 GLM-OCR 的官方技能,用于从图片和 PDF 中识别数学公式并转换为 LaTeX 格式,底层调用智谱 GLM-OCR 版面解析 API。

【用途】 该技能适用于从图片或扫描件中提取数学公式、将公式图片转为 LaTeX、识别复杂方程(如积分、求和、矩阵、分数、根式)、解析含公式的论文、教材、试卷等场景。当用户提到“formula OCR”“extract formula”“公式识别”“公式OCR”“提取公式”“图片转LaTeX”等关键词时,可使用该技能。

【主要能力】

  • 复杂公式支持:可处理积分、求和、矩阵、分数、根式等。
  • LaTeX 输出:公式以 LaTeX 格式输出,可直接用于文档。
  • 行内与独立公式:同时识别行内公式和展示式公式。
  • 混合内容:可处理文字与公式混排的文档。
  • 本地文件与 URL:支持本地文件和远程 URL 两种输入方式。

【使用方式】 前置条件:需配置 API Key。脚本通过 ZHIPU_API_KEY 环境变量获取密钥,可与其他智谱技能复用同一个 key。获取 Key 需访问智谱开放平台 API Keys 页面创建或复制。配置方式任选一种:

  1. 全局配置(推荐):在 openclaw.json 的 env.vars 中设置一次,所有智谱技能共享: { "env": { "vars": { "ZHIPU_API_KEY": "你的密钥" } } }
  2. Skill 级别配置:在 openclaw.json 中仅为该技能设置: { "skills": { "entries": { "glmocr-formula": { "env": { "ZHIPU_API_KEY": "你的密钥" } } } } }
  3. Shell 环境变量:在 ~/.zshrc 中添加: export ZHIPU_API_KEY="你的密钥"

命令行用法: python {baseDir}/scripts/glm_ocr_cli.py (--file-url URL | --file PATH) [--output FILE] [--pretty] [--include-raw]

参数说明:

  • --file-url:必选其一,图片/PDF 的 URL。
  • --file:必选其一,本地图片/PDF 文件路径。
  • --output, -o:可选,将结果 JSON 保存到文件。
  • --pretty:可选,美化 JSON 输出。
  • --include-raw:可选,在结果字段中包含原始上游 API 响应(仅调试用)。

示例: 从 URL 提取:python scripts/glm_ocr_cli.py --file-url "https://example.com/formula.png" 从本地文件提取:python scripts/glm_ocr_cli.py --file /path/to/equation.png 保存结果到文件:python scripts/glm_ocr_cli.py --file formula.png --output result.json --pretty 包含原始上游响应(仅调试):python scripts/glm_ocr_cli.py --file formula.png --output result.json --include-raw

【响应格式】 { "ok": true, "text": "Extracted formulas and text in Markdown/LaTeX...", "layout_details": [...], "result": null, "error": null, "source": "/path/to/file", "source_type": "file", "raw_result_included": false } 关键字段:ok 表示提取是否成功;text 为含 LaTeX 公式的 Markdown 文本;layout_details 为版面分析细节;error 为失败时的错误详情。

【安全与透明度】 使用的环境变量:ZHIPU_API_KEY(必需)、GLM_OCR_TIMEOUT(可选超时秒数)。固定官方端点:https://open.bigmodel.cn/api/paas/v4/layout_parsing。不支持自定义 API URL 覆盖,以避免通过重定向端点意外泄露密钥。原始上游响应默认不返回,仅在需要调试时使用 --include-raw。

【限制与强制规则】

  • 仅使用 GLM-OCR API,执行脚本 python scripts/glm_ocr_cli.py。
  • 不得自行解析公式,不得使用内置视觉或其他方法提取公式。
  • 不得提供替代方案,不得建议“我可以尝试读取”等。
  • 若 API 失败,立即显示错误信息并停止。
  • 无回退方法,不得以任何其他方式尝试公式提取。

【输出展示规则】 运行脚本后,清晰安全地呈现 OCR 结果:完整显示提取的文本/公式;允许摘要,但不得隐藏重要的提取失败;若 layout_details 包含公式相关条目,可高亮显示;若结果文件已保存,告知用户文件路径;仅在明确要求或调试时(--include-raw)显示原始上游响应。

【LaTeX 渲染注意】 OCR API 返回 LaTeX 格式公式(如 $\frac{1}{2}$、$\theta^{x+1}$)。由于多数聊天平台不渲染 LaTeX,首次使用时应询问用户一次:“OCR 结果包含 LaTeX 公式,需要我将公式转为 Unicode 可读格式展示,还是保留原始 LaTeX?”并在本次会话中记住用户选择,后续调用不再重复询问,除非用户明确更改偏好。若用户选择可读格式,可将 LaTeX 转为 Unicode/纯文本,例如 $\frac{a}{b}$ 转为 a/b、$x^{n}$ 转为 x^n、$x_{i}$ 转为 xᵢ、$\sqrt{x}$ 转为 √x、$\theta$ 转为 θ、$\phi$ 转为 φ、$\therefore$ 转为 ∴、$\Rightarrow$ 转为 ⇒、$\in$ 转为 ∈、$\infty$ 转为 ∞、$\ln$ 转为 ln、$\leq$/$\geq$ 转为 ≤/≥ 等。若用户选择原始 LaTeX,则直接显示原始 LaTeX 输出,并提醒若使用了 --output,原始数据也已保存在输出文件中。

【错误处理】

  • API key 未配置:提示“ZHIPU_API_KEY not configured. Get your API key at: https://bigmodel.cn/usercenter/proj-mgmt/apikeys”,向用户显示确切错误并引导配置。
  • 认证失败(401/403):API key 无效/过期,需重新配置。
  • 速率限制(429):配额耗尽,告知用户等待。
  • 文件未找到:本地文件缺失,检查路径。