ade-python响应处理技巧:save_to落盘、raw响应与模型转换的5个实用方法
【免费下载链接】ade-pythonPython library for Agentic Document Extraction (ADE).项目地址https://gitcode.com/gh_mirrors/ade/ade-python点击查看免费下载ade-python是 LandingAI Agentic Document ExtractionADE的官方 Python 库负责把 PDF、图片解析成结构化 Markdown再按 JSON Schema 或 Pydantic 模型抽取字段。对新手来说请求发出去之后怎么接住返回值常常是卡点结果想存盘、想拿 HTTP 头、想把模型转成字典或 JSON、想知道字段到底是null还是没返回。下面 5 个技巧都是仓库里现成的能力学完就能直接上手。技巧一用 save_to 参数一行代码把结果落盘 client.v2.parse和client.v2.extract都支持save_to参数见 README.md 与 src/landingai_ade/resources/v2/parse.py它遵循两条规则传入值行为以.json结尾的路径直接写入该文件目录路径自动生成文件名{输入文件名}_{parse/extract}_output.json推不出输入文件名时退化为{方法名}_output.json父目录会自动创建写出的内容就是result.to_json()的缩进 JSON。批量跑几十份发票时每一份结果都会以源文件名为前缀整齐归档调试时不用再去翻控制台输出。落盘逻辑位于 _client.py测试用例可参考 tests/test_save_to.py。parsed client.v2.parse( documentPath(invoice.pdf), save_to./output, # 生成 ./output/invoice_parse_output.json )技巧二用 with_raw_response 拿原始 HTTP 响应 有些场景要看响应头比如网关的 request-id或检查状态码此时把 v1 方法前加上.with_raw_response.前缀即可response client.with_raw_response.parse(documentPath(file.pdf)) print(response.status_code) print(response.headers.get(X-Request-Id)) parsed response.parse() # 拿到本应直接返回的对象APIResponse同时暴露read()、text()、json()、iter_lines()等底层方法源码在 src/landingai_ade/_response.py。注意两点这类包装器目前只覆盖 v1 方法不含client.v2如果只想流式读取大响应体改用.with_streaming_response需要with上下文。技巧三模型转换——to_dict / to_json 的隐藏开关 所有响应对象都是 Pydantic 模型自带to_dict()和to_json()定义于 src/landingai_ade/_models.py参数比想象的灵活use_api_namesTrue默认键名保持 API 原始拼写如pageCount转出去就是接口视角的数据设为False则用 Python 属性名page_count适合存数据库。modejsondatetime等对象统一转成 JSON 可序列化字符串默认的python模式则保留 Python 对象。exclude_unsetTrue默认API 没返回的字段不会出现在输出里文件更干净。data parsed.metadata.to_dict(modejson, exclude_noneTrue) json_str parsed.to_json(indent2)save_to落盘用的正是to_json()所以技巧一和三天然配合。技巧四分清 None 是 null 还是字段缺失 模型里看到metadata.duration_ms is None时无法直接判断是接口回了null还是这个 key 根本没返回。ade-python 给出的官方判法是检查model_fields_setif parsed.metadata.duration_ms is None: if duration_ms not in parsed.metadata.model_fields_set: print(接口没有返回该字段) else: print(接口明确返回了 null)这个细节在做数据校验、核对计费billing.total_credits时特别有用能避免把没返回误当成值为 0。技巧五类型模型没覆盖的字段走 raw 与 extra 兜底 异步 Job 的raw字段parse_jobs/extract_jobs的create、get、wait返回标准化Jobjob_id、status、progress、result……同时附带raw——未改写的原始 API 信封。类型模型没暴露的新字段从job.raw里取即可参考 examples/v2_parse.py。extraallow保留未知键所有响应模型如 V2ParseResponse配置了extraallow服务端新增的字段不会在反序列化时丢失可通过model_extra访问。配合这两招即使上游接口加字段、文档还没跟上代码也能优雅降级而不是抛异常。小结 需求用什么结果直接存盘save_to参数看响应头/状态码.with_raw_response.前缀转字典/JSONto_dict()/to_json() 参数开关区分 null 与缺失model_fields_set兜底未知字段Job.raw、model_extra掌握这 5 个技巧ade-python 返回值的各种后处理需求基本都有现成答案少写一半胶水代码。赞分享【免费下载链接】ade-pythonPython library for Agentic Document Extraction (ADE).项目地址https://gitcode.com/gh_mirrors/ade/ade-python点击查看免费下载相关推荐ReactiveCocoa DelegateProxy模式优雅处理代理方法的响应式转换ReactiveCocoa DelegateProxy模式优雅处理代理方法的响应式转换 ReactiveCocoa的DelegateProxy模式是iOS和mUI组件UI Recorder移动端测试完全教程Android和iOS自动化录制实战UI Recorder移动端测试完全教程Android和iOS自动化录制实战 UI Recorder是一款功能强大的多平台UI测试录制工具特别支持AndroMockoon访问者模式5个API响应处理扩展技巧Mockoon访问者模式5个API响应处理扩展技巧 Mockoon是最简单快速的本地API模拟工具无需远程部署和账户开源免费。访问者模式作为Mockoon开发工具测试后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考