人工智能大模型计算机视觉OCR本地部署AI 技能【免费下载链接】GLM-OCRGLM-OCR: Accurate × Fast × Comprehensive项目地址https://gitcode.com/GitHub_Trending/gl/GLM-OCR点击查看免费下载GLM-OCR Skill位于 skills/glmocr/SKILL.md是 GLM-OCR 开源项目面向 AI Agent 与开发者提供的即插即用技能包只需配置ZHIPU_API_KEY并调用一个 Python 脚本即可通过官方 Layout Parsing API 从本地图片、远程 URL 甚至 PDF 中提取 Markdown 文本同时获得表格、公式与手写文字的识别能力。读完本文你将掌握 Skill 的完整安装配置流程、glm_ocr_cli.py的全部命令行参数与返回结构、底层请求封装原理以及常见错误的排查与处理方案。Skill 是什么定位与核心能力GLM-OCR 是一个面向复杂文档理解场景的多模态 OCR 模型。项目 README 在 2026.3.12 的更新中正式推出了agent-friendly Skill 模式用户只需pip install glmocr并设置 API Key无需 GPU 与 YAML 配置即可通过 CLI 或 Python 直接使用。本 Skill 正是这套能力的落地方案之一它不依赖本地模型部署而是将请求转发给智谱云端的 Layout Parsing 接口完成识别。适用场景When to Use根据 SKILL.md 的定义以下需求均可直接调用本 Skill从图片中提取文本支持 PNG、JPG、PDF 格式将截图转换为文本处理扫描件文档对含文字的图片包括手写文字执行 OCR识别文档中的表格与公式用户明确提到 OCR、文字识别、文档解析 等关键词关键能力Key Features能力说明表格识别检测并自动将表格转换为 Markdown 表格格式公式提取以 LaTeX 格式输出公式内容手写支持对手写文字具备较强的识别能力本地文件与 URL同时支持本地文件路径与远程 URL 两种输入源这些能力最终统一收敛为一条核心输出text字段中的 Markdown 文本可直接用于渲染、二次加工或存入文档系统。使用前置条件唯一硬性前置条件Prerequisites是ZHIPU_API_KEY已配置完成配置方法见下文API Key 配置一节。Skill 本身不要求安装 GLM-OCR 模型、不需要 GPU也无需部署任何本地服务。依赖与安全设计Skill 的 Python 依赖被刻意保持到最简。requirements.txt 中只有一个依赖requests2.31.0也就是说运行环境只要具备 Python 3 与requests库即可。安全约定Security NotesSKILL.md 中明确声明了三条安全设计脚本不做任何运行时依赖安装——避免 Agent 在执行过程中引入未审计的第三方包OCR 请求固定使用官方 GLM 端点不接受自定义 API URL——防止通过注入自定义地址导致 API Key 外泄仅从环境变量读取ZHIPU_API_KEY与可选超时时间GLM_OCR_TIMEOUT——缩小密钥暴露面。这三条在源码中有直接印证glm_ocr_cli.py 的 get_config 函数 固定返回DEFAULT_API_URL https://open.bigmodel.cn/api/paas/v4/layout_parsing并注释说明使用固定官方端点以避免通过自定义 URL 泄露密钥API 请求构造处 通过Bearer令牌认证超时时间则取自GLM_OCR_TIMEOUT环境变量缺省为 60 秒DEFAULT_TIMEOUT 60。该固定端点与 SDK 中 MaaS 模式的默认api_url完全一致见 glmocr/config.yaml 中pipeline.maas.api_url配置说明 Skill 与完整 SDK 走的是同一条云端识别链路行为可预期。强制使用约束MANDATORY RESTRICTIONSSKILL.md 还给出了一套面向 Agent 的硬性使用规范本质上也是对所有调用者的最佳实践约束只能通过 GLM-OCR API 完成提取——即执行python scripts/glm_ocr_cli.py绝不自行解析文档——不要把文档交给 LLM 直接读图或手动抽取文本绝不提供替代方案——不回答我可以尝试分析一下之类的降级承诺若 API 失败——原样展示错误信息并立即停止无回退方法——不尝试任何其他文本提取途径。这套约束保证了识别结果的准确性与一致性避免 Agent 在不具备视觉解析能力时产生幻觉输出。API Key 配置Setup获取 API Key首先需要在智谱开放平台控制台的 API Key 管理页面创建密钥该 Key 用于云端 Layout Parsing 服务的身份认证。使用配置脚本一键写入SKILL.md 推荐的配置命令为python scripts/config_setup.py setup --api-key YOUR_KEYconfig_setup.py 是一个三合一配置工具提供三个子命令子命令作用setup写入/更新配置到.env文件show显示当前配置密钥自动脱敏仅展示前 8 位与后 4 位validate校验当前配置是否有效setup支持两种模式# 命令行传参非交互 python scripts/config_setup.py setup --api-key YOUR_KEY # 交互式输入不传 --api-key 时进入已有密钥可直接回车保留 python scripts/config_setup.py setup # 非交互模式必须配合 --api-key python scripts/config_setup.py setup --api-key YOUR_KEY --non-interactive脚本行为要点可从 config_setup.py 源码确认写入位置为 Skill 根目录下的.env文件即skills/glmocr/.env文件头会生成注释说明该文件不应提交到版本控制写入前会做基础校验ZHIPU_API_KEY缺失时直接报错退出长度不足 10 位时输出警告show与validate子命令可用于事后核对配置是否正确落盘若 Skill 目录存在.gitignore且未包含.env脚本会提示补充防止密钥入库。手动配置.env的等价方式不运行脚本也可以手工创建skills/glmocr/.env文件# skills/glmocr/.env ZHIPU_API_KEYyour-api-key GLM_OCR_TIMEOUT120 # 可选覆盖默认 60 秒超时glm_ocr_cli.py 的 _load_env 函数 会在首次读取配置时自动加载 Skill 根目录Path(__file__).parent.parent即skills/glmocr/下的.env文件解析KEYVALUE形式的行并写入进程环境已存在的系统环境变量优先不会被.env覆盖。因此你也可以在 shell 中直接export ZHIPU_API_KEY...而不使用.env文件。命令行使用详解How to Use所有命令均以 Skill 根目录skills/glmocr/为相对路径基准执行。从 URL 提取python scripts/glm_ocr_cli.py --file-url URL provided by user适用于图片托管在公网如https://example.com/image.jpg的场景脚本直接将该 URL 作为file字段提交给 API。从本地文件提取python scripts/glm_ocr_cli.py --file /path/to/image.jpg本地文件会被读取为字节流并转成data:mime;base64,...形式的 Data URI 再上传MIME 类型由mimetypes.guess_type自动推断无法推断时回退为application/octet-stream见 glm_ocr_cli.py 的 _encode_file 函数。保存结果到文件推荐python scripts/glm_ocr_cli.py --file-url URL --output result.json不指定--output时结果打印到标准输出脚本还会在 stderr 中提示Tip: Use --output result.json to save the result指定后结果写入 JSON 文件自动创建父目录并打印Result saved to: 绝对路径。格式化输出python scripts/glm_ocr_cli.py --file photo.png --output result.json --pretty--pretty会让 JSON 以缩进 2 空格的美化形式输出源码中indent 2 if args.pretty else None便于阅读与调试。CLI 参数参考SKILL.md 给出的完整 CLI 签名python {baseDir}/scripts/glm_ocr_cli.py (--file-url URL | --file PATH) [--output FILE] [--pretty]参数必需说明--file-url二选一图片/PDF 的 URL 地址--file二选一图片/PDF 的本地文件路径--output,-o否将结果 JSON 保存到指定文件--pretty否美化打印 JSON 输出两个输入参数被定义为互斥且必选其一的参数组源码见 glm_ocr_cli.py 的 main 函数 中add_mutually_exclusive_group(requiredTrue)因此不能同时传入--file-url与--file也不能两者都缺。命令的退出码设计为识别成功退出 0失败退出 1若--output目标路径不可写则退出 5见 main 函数结尾可在 CI 或自动化脚本中直接利用。底层调用链与请求原理理解 CLI 背后发生了什么有助于排查问题和扩展功能。整个调用链在 glm_ocr_cli.py 的 extract_text 函数 中清晰可见配置读取get_config()检查ZHIPU_API_KEY缺失时抛出CONFIG_ERROR输入判定_is_url()通过urlparse判断输入是否为http/httpsURL本地路径则调用_encode_file()转为 base64 Data URI构造请求体组装model、file、return_crop_images、need_layout_visualization、start_page_id、end_page_id六个字段发送请求_make_api_request()携带Authorization: Bearer key调用 Layout Parsing 端点解析响应_extract_text()从响应中提取 Markdown 文本组装信封返回统一的{ok, text, layout_details, result, error, source, source_type}结构。请求体默认参数extract_text还暴露了若干可编程选项源码中的**options它们对应的请求字段默认值如下字段默认值说明modelglm-ocr使用的模型标识return_crop_imagesFalse是否返回裁剪后的区域图片need_layout_visualizationFalse是否需要布局可视化结果开启后响应中才会携带完整的layout_detailsstart_page_id1PDF 起始页码end_page_id2PDF 结束页码其中start_page_id/end_page_id仅对 PDF 输入有意义用于限制解析的页码范围避免大文档造成超时或消耗过多 token。响应文本的两种格式兼容glm_ocr_cli.py 的 _extract_text 函数 对 API 响应做了双格式兼容优先读取顶层md_results字符串若不存在则尝试读取嵌套data.md_results。两种格式都缺失时抛出ValueError并转为API_ERROR保证了 SDK 与原生 API 不同返回风格的兼容性。响应格式详解Response Format无论是 CLI 输出还是 Python 调用返回值都是统一的标准信封结构。完整规范见 output_schema.md核心结构如下{ ok: true, text: # Extracted text in Markdown..., layout_details: [[...]], result: { raw_api_response: ... }, error: null, source: /path/to/file.jpg, source_type: file }字段说明字段类型含义okboolean提取是否成功true表示成功false表示出错textstring提取出的 Markdown 全文展示时优先使用此字段仅在oktrue时存在表格为 Markdown 表格、公式为 LaTeXlayout_detailsarray | null布局分析结果包含表格含单元格位置、公式含位置、文本块含布局信息仅在oktrue且 API 请求开启need_layout_visualization时存在resultobject | nullGLM-OCR 的原始 API 响应供高级场景使用含md_results、layout_details、usage等字段仅在oktrue时存在errorobject | null失败时的错误详情{code, message}仅在okfalse时存在sourcestring原始输入源URL 或本地路径始终存在source_typestring输入源类型取值为url或file原始 API 响应result 字段result字段内的原始响应遵循 GLM-OCR Layout Parsing API 格式{ md_results: Extracted text content in Markdown format..., layout_details: [ { type: table, bbox: [x1, y1, x2, y2], cells: [...] }, { type: formula, bbox: [x1, y1, x2, y2], text: LaTeX formula... } ], usage: { prompt_tokens: 1000, completion_tokens: 500, total_tokens: 1500 } }md_resultsMarkdown 格式的文本提取结果layout_details带边界框bbox与元素分类的详细布局分析usagetoken 用量统计提示 token、生成 token、合计。错误码表output_schema.md 定义了三个顶层错误码错误码含义CONFIG_ERRORAPI Key 或 URL 未配置INPUT_ERROR输入无效URL 非法、格式不支持等API_ERRORAPI 请求失败网络错误、认证失败、限流等Python 编程接口用法除了命令行extract_text可直接在 Python 中以函数形式使用from glm_ocr_cli import extract_text result extract_text(https://example.com/image.jpg) if result[ok]: print(result[text]) else: print(fError: {result[error][message]})读取原始响应中的 token 用量result extract_text(https://example.com/image.jpg) if result[ok]: raw_response result[result] usage raw_response.get(usage, {}) print(fTokens used: {usage.get(total_tokens, 0)})同时检查输入源类型result extract_text(https://example.com/document.jpg) if result[ok]: print(fSource type: {result[source_type]}) print(fText: {result[text]})编程方式可额外透传model、return_crop_images、need_layout_visualization、start_page_id、end_page_id等参数比 CLI 更灵活适合嵌入批量处理脚本或后端服务。错误处理与排查指南SKILL.md 对常见失败场景给出了明确的处理指引以下是完整对照表API Key 未配置Error: ZHIPU_API_KEY not configured. Get your API key at: https://open.bigmodel.cn/usercenter/proj-mgmt/apikeys→ 将错误原样展示给用户引导其完成 API Key 配置。该提示由 get_config 函数 抛出对应的信封错误码为CONFIG_ERROR。认证失败401/403API Key 无效或已过期响应会包含Authentication failed (401/403): 详情。→ 引导用户到控制台重新生成密钥并重新配置。限流429配额耗尽响应为API rate limit exceeded (429): 详情。→ 告知用户等待配额恢复或升级额度后再试。源码中 HTTP 状态码分支处理 对 401/403、429、5xx 分别给出语义化错误信息。文件不存在本地文件缺失时返回File not found: path对应的信封错误码为INPUT_ERROR。→ 检查路径是否正确、文件是否为常规文件目录会被判定为Not a regular file。其他边界情况请求超时默认 60 秒可通过GLM_OCR_TIMEOUT环境变量调大超时错误为API request timed out after ns服务端错误5xx返回API service error (code): 详情响应 JSON 非法返回Invalid JSON response: 前200字符依赖缺失未安装requests时脚本会提示pip install -r scripts/requirements.txt并以退出码 2 终止见 导入检查。所有运行时错误最终都会被封装为{ok: false, error: {code: ..., message: ...}}信封方便调用方统一处理。最佳实践与下游应用建议始终使用--output落盘CLI 默认将 JSON 打印到 stdout长文档输出可能被终端截断保存到文件后可反复读取text字段做后续处理。对长 PDF 控制页码范围通过 Python 接口传入start_page_id/end_page_id只解析需要的页节省 token 并缩短响应时间。按需开启布局可视化layout_details仅在need_layout_visualizationtrue时返回不需要定位信息时保持默认关闭可降低响应体积。合理设置超时大批量或大文件场景建议调大GLM_OCR_TIMEOUT避免误判超时。善用 Markdown 输出text字段是标准 Markdown——表格已是 Markdown 表格、公式已是 LaTeX可直接渲染为网页、导入文档系统或继续喂给 RAG 与 LLM 做结构化理解与项目仓库中examples/result/目录下展示的 Markdown 产物形态一致。参考资源SKILL.md —— 技能主文档本文核心依据output_schema.md —— 输出格式详细规范glm_ocr_cli.py —— CLI 与extract_text完整实现config_setup.py —— 环境配置工具实现requirements.txt —— 运行时依赖清单glmocr/config.yaml —— SDK 全量配置含 MaaS 端点、重试、布局参数README.md —— 项目总览与 SDK 安装、MaaS/自托管两种使用方式赞分享人工智能大模型计算机视觉OCR本地部署AI 技能【免费下载链接】GLM-OCRGLM-OCR: Accurate × Fast × Comprehensive项目地址https://gitcode.com/GitHub_Trending/gl/GLM-OCR点击查看免费下载相关推荐PaddleOCR 文本识别 Agent Skill 实战指南用 paddleocr api 从图片与 PDF 提取行级文本PaddleOCR 文本识别 Agent Skill 实战指南用 paddleocr api 从图片与 PDF 提取行级文本 PaddleOCR 官方为支持人工智能计算机视觉OCR深度学习大模型RAG三步下载电子课本PDFtchMaterial-parser 完全指南三步下载电子课本PDFtchMaterial parser 完全指南 tchMaterial parser 是一款面向国家中小学智慧教育平台的电子课本下载工具网页爬虫教育SumatraPDF 命令行从 PDF 提取内嵌图片完整指南sumatrapdf-tool extract / info 实战SumatraPDF 命令行从 PDF 提取内嵌图片完整指南sumatrapdf tool extract / info 实战 本文基于 SumatraPDF桌面应用文档上一篇3分钟掌握StatsmacOS菜单栏系统监控终极指南下一篇解锁Python语音合成的5种创新玩法pyttsx3完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考