首页 / 资讯中心 / 文章详情

ade-python加密PDF解析指南:password参数、3种422错误码与最佳实践一次讲透

ade-python加密PDF解析指南:password参数、3种422错误码与最佳实践一次讲透 ★ FEATURED ARTICLE
【免费下载链接】ade-pythonPython library for Agentic Document Extraction (ADE).项目地址https://gitcode.com/gh_mirrors/ade/ade-python点击查看免费下载ade-python 是 LandingAI 智能文档抽取ADE的官方 Python 客户端本文带你吃透它的加密 PDF 解析password参数到底怎么用、3 种 422 错误码怎么排查以及安全最佳实践一篇讲明白。为什么加密 PDF 解析值得单独讲普通文档用client.v2.parse(document...)就能转成结构化 Markdown。但当 PDF 被密码保护时多一个password参数就能直接解锁——服务端在处理开始时解密一次密码不会随结果保留你无需自己解密文件。这正是新手最容易卡住的点password只认PDF用错文件类型或密码会收到带明确code的422。理解这条规则能少踩一大坑。 新业务推荐用client.v2.*DPT-3 模型族旧版client.parse(...)v1也支持password两者区别见文末对照。password 参数快速上手同步 / 异步 / 作业三种姿势三种入口都接收同名password关键字参数语义完全一致。① 同步解析最常用import os from pathlib import Path from landingai_ade import LandingAIADE client LandingAIADE() # 自动读取 VISION_AGENT_API_KEY parsed client.v2.parse( documentPath(locked.pdf), passwordos.environ[PDF_PASSWORD], # 解锁加密 PDF ) print(parsed.markdown)② 大文档用异步作业避免同步超时job client.v2.parse_jobs.create( documentPath(locked_large.pdf), passwordos.environ[PDF_PASSWORD], ) done client.v2.parse_jobs.wait(job.job_id) # 阻塞轮询直到完成parse与parse_jobs.create共用同一个底层函数_build_parse_body所以两条路由行为完全一致密码合并逻辑只写了一份。password 与 options[password] 谁说了算优先级规则password其实是契约字段options[password]的简写SDK 最终只把它放进options里发送——而且只发这一处。当你同时提供两种写法时显式的options[password]获胜# 实际发送的只有 options[password] from-options client.v2.parse( documentPath(locked.pdf), options{password: from-options}, passwordignored, # 被忽略 )这条规则有两个新手容易忽略的细节显式None也算获胜options{password: None}表示无密码会屏蔽背后的password参数。options支持两种形式一个映射dict或一段能解码为对象的 JSON 字符串。JSON 格式错误会抛json.JSONDecodeError解码结果不是对象会抛TypeError——两者都在请求发出前抛出方便你尽早发现问题。相关优先级逻辑见_build_parse_body的合并判断。3 种 422 错误码一次看懂附含义与排查password只适用于 PDF。用错时服务端统一返回422并在响应体里带一个稳定的code指明具体场景错误码code触发场景一句话排查password_unsupported_content_type给图片 / Office 文档传了password换成 PDF或去掉passwordencrypted_pdf_wrong_password密码打不开该 PDF核对密码是否正确encrypted_pdf_password_required锁定的 PDF 却没传密码补上正确的password 为什么都是422因为/v2/parse在规范里只声明了200、206、422三种结果——任何拒绝都是422靠code区分原因。如何读取 422 错误码code422 会抛出UnprocessableEntityError其status_code固定为422。通过异常的response拿到原始 JSON即可读取code与messageimport landingai_ade try: client.v2.parse(documentPath(locked.pdf), passwordwrong) except landingai_ade.UnprocessableEntityError as e: err e.response.json() # {code: ..., message: ...} print(err[code]) # encrypted_pdf_wrong_password异常类统一从 src/landingai_ade/_exceptions.py 导出可直接import landingai_ade后用landingai_ade.UnprocessableEntityError捕获。最佳实践安全与健壮性密码不会进调试日志ade-python 在调试日志里对密码做了打码_redact_for_logging会同时处理独立表单字段和藏在 JSON 编码options字符串内部的密码——它通过解析 JSON 而不是简单文本匹配来打码所以无论密码放在哪一层都不会漏进日志。相关测试见 tests/test_redact_logging.py。从环境变量读取别硬编码parsed client.v2.parse( documentPath(locked.pdf), passwordos.environ[PDF_PASSWORD], )把密钥放环境变量、再配合python-dotenv管理可避免密码混进源码。options 类型校验尽早失败如前所述options的 JSON 字符串若格式非法或解码为非对象会在发请求前抛json.JSONDecodeError/TypeError。这让配置错误在本地就暴露而不是等服务端返回422。v1 与 v2 的 password 差异维度v2推荐client.v2.parsev1client.parse密码发送位置仅options.passwordJSON 编码顶层password表单字段优先级规则显式options[password]优先直接顶层字段无简写层加密文档范围仅 PDFPDF 等加密文档未加密时忽略异步作业parse_jobs.create(..., password)parse_jobs.create(..., password)v1 的password直接作为顶层字段发送见_client.pyv2 则统一折叠进options。新业务请用 v2。相关文档与源码路径想深入原理可从这些文件入手密码合并与优先级逻辑src/landingai_ade/resources/v2/parse.py调试日志密码打码src/landingai_ade/_base_client.pyv2 同步超时 / 作业异常src/landingai_ade/lib/v2_errors.py官方用法说明README.md、api.md加密 PDF 测试与契约说明docs/v2-testing.md错误码与控制体测试tests/api_resources/v2/test_parse.pyAPI 规范定义specs/v2-aide.json小结用client.v2.parse(..., password)或parse_jobs.create(..., password)直接解析加密 PDF服务端解密一次、不留密码。password是options[password]的简写显式options[password]优先显式None表示无密码。3 种422错误码分别对应类型不支持、密码错误、缺密码用e.response.json()[code]精确定位。记住密码只认PDF、从环境变量读取、并依赖 SDK 的日志打码保障安全。掌握这些加密 PDF 解析的常见坑基本都能一次绕开。赞分享【免费下载链接】ade-pythonPython library for Agentic Document Extraction (ADE).项目地址https://gitcode.com/gh_mirrors/ade/ade-python点击查看免费下载相关推荐Endcord登录完全指南密码、2FA、扫码与Token四种方式一次讲透Endcord登录完全指南密码、2FA、扫码与Token四种方式一次讲透 Endcord 是一款功能丰富、完全运行在终端里的 Discord TUI 客户端。Flux实战教程5个实例带你掌握InfluxDB数据查询与处理的精髓Flux实战教程5个实例带你掌握InfluxDB数据查询与处理的精髓 Flux是一种轻量级脚本语言专为查询数据库如InfluxDB和处理数据而设计。作为编程语言数据分析7个实用技巧掌握bash脚本参数解析与错误处理的终极指南7个实用技巧掌握bash脚本参数解析与错误处理的终极指南 在bash脚本开发中参数解析和错误处理是确保脚本健壮性的核心环节。无论是自动化运维脚本还是日常任务教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站