自定义 JSON Schema 进阶:用 lift-oQ3 提取任意复杂文档结构
自定义 JSON Schema 进阶用 lift-oQ3 提取任意复杂文档结构【免费下载链接】lift-oQ3项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/lift-oQ3把 PDF、发票、合同等复杂文档一键变成干净、可用的 JSON 数据是当下很多团队的核心需求。lift-oQ3正是为这一场景而生的视觉语言模型它是 mlx-community 对 datalab-to/lift 的 MLX 量化版本专攻「文档 → JSON Schema 约束下的结构化输出」。这篇文章从自定义 JSON Schema 出发带你掌握用 lift-oQ3 提取任意复杂文档结构的进阶技巧——从嵌套字段、表格明细到条件分支一步步把模型的输出装进你想要的格式里。为什么文档提取离不开 JSON Schema 约束让大模型自由发挥地读文档结果往往是字段缺失、类型混乱、格式漂移无法直接入库。而JSON Schema 约束能在解码阶段就锁定输出的结构和类型✅ 输出 100% 合法 JSON不会出现截断或乱码✅ 字段名、嵌套层级、必填项全部可控✅ 数字就是数字、数组就是数组下游程序零清洗lift-oQ3 的服务端通过 llguidance 在解码时实时强制约束相当于给模型戴上了一副格式眼镜——这正是它被称为结构化提取模型的原因。lift-oQ3 是什么Apple Silicon 上的结构化提取模型lift-oQ3 基于 9B 参数的 qwen3_5 视觉语言架构能同时理解图片和文字把文档版面看成结构化数据。作为 oQ3 变体它采用数据驱动的逐层混合精度量化约 3.5 bits/weight模型仅 4.6 GB在 Apple Silicon 上表现相当亮眼变体量化精度模型大小峰值内存生成速度lift-oQ8≈8.6 bits9.7 GB12.3 GB58 t/slift-oQ4≈4.6 bits5.6 GB7.2 GB100 t/slift-oQ3本文≈3.5 bits4.6 GB6.2 GB119 t/s数据来自 M5 Max 单图发票提取实测仅作参考。内存占用低、速度快意味着普通 Mac 也能本地跑文档提取数据不出本机隐私更安心。快速上手如何用 lift-oQ3 启动 JSON Schema 提取服务先把仓库克隆到本地模型权重就在仓库内git clone https://gitcode.com/hf_mirrors/mlx-community/lift-oQ3再通过 mlx-vlm 启动 OpenAI 兼容的服务uvx --from mlx-vlm mlx_vlm.server --model ./lift-oQ3 --port 8080之后用任意 OpenAI SDK 调用关键在response_format里传入我们自定义的 JSON Schemafrom openai import OpenAI client OpenAI(base_urlhttp://127.0.0.1:8080/v1, api_keylocal) resp client.chat.completions.create( modellift-oQ3, # 以服务端启动时的模型名为准 messages[{role: user, content: [ {type: text, text: 提取这张发票的信息。}, {type: image_url, image_url: {url: data:image/png;base64,...}}, ]}], response_format{type: json_schema, json_schema: {name: invoice, schema: {...你的 Schema...}}}, temperature0.0, max_tokens800, )接下来是重点这个schema怎么写才能覆盖任意复杂文档自定义 JSON Schema 进阶技巧一用嵌套对象提取层级结构真实文档很少是平铺的发票有购买方、销售方合同有甲方、乙方体检报告有多个检查小节。用嵌套 object 可以把层级结构原样映射出来{ type: object, properties: { invoice_number: {type: string}, issue_date: {type: string}, total: {type: number}, payer: { type: object, properties: { name: {type: string}, tax_id: {type: string} }, required: [name, tax_id] } }, required: [invoice_number, total] }要点外层字段声明类型内层对象再定义自己的properties和required。层级越深模型越容易把同类信息归拢到一起输出也更接近人工整理的效果。自定义 JSON Schema 进阶技巧二用数组提取表格与明细行发票明细、订单条目、化验单项目……凡是一行一条的数据都该用array。这是表格识别最核心的一招line_items: { type: array, items: { type: object, properties: { description: {type: string}, quantity: {type: integer}, unit_price: {type: number}, amount: {type: number} }, required: [description, amount] } }给每条明细单独约束字段类型模型就能稳定地把多行表格拆成数组元素——行数多少不重要结构始终统一入库、对账都非常方便。自定义 JSON Schema 进阶技巧三用枚举与条件字段规范化输出文档类型千变万化但业务上往往只有几种取值。用enum强制收敛输出立刻变得好查询doc_type: {type: string, enum: [invoice, receipt, contract]}, currency: {type: string, enum: [CNY, USD, EUR]}更进阶的玩法是oneOf同一张单据付款方式是转账就要带银行账号是现金就不用——用条件分支让 Schema 精确匹配真实业务payment: { oneOf: [ {properties: {method: {const: bank_transfer}, account: {type: string}}, required: [method, account]}, {properties: {method: {const: cash}}, required: [method]} ] }enum管取值、const管分支、required管必填三者组合起来再复杂的文档也能约束得明明白白。复杂文档提取实战一套 Schema 搞定合同与报告把上面的技巧组合起来合同提取可以把「双方主体」做成嵌套对象、「条款列表」做成数组、「合同类型」用枚举、「付款条件」用 oneOf 分支。一份几十行的自定义 JSON Schema就能覆盖整份合同的骨架模型按图索骥逐项填值返回的 JSON 直接可以进数据库。如果文档很长建议按页切图、逐页提取后再合并配合高分辨率预处理preprocessor_config.json支持超长边图像输入复杂版式中的小字也能看得清。复杂文档提取的避坑指南与注意事项eos 修复别丢本仓库的generation_config.json已把eos_token_id设为[248044, 248046]修复了服务端不停输出|im_end|的问题若自行从上游重新转换务必补上这一项。低比特的取舍上游 9B 原版在 225 份文档基准上字段级准确率约 90.2%oQ3 精度只有约 3.5 bits遇到版式刁钻的难样本可能掉点正式场景建议先用 oQ4/oQ5 对比验证。max_tokens 给足文档信息量大默认 800 不够时就调大到 1500~2000避免输出被截断。temperature 归零提取是确定性任务保持temperature0结果才可复现。对话模板chat_template.jinja支持图文混合输入多图、图文对照都能处理注意别把图片塞进 system 消息即可。结语从嵌套对象到数组表格从枚举取值到条件分支自定义 JSON Schema 就是解锁 lift-oQ3 全部能力的钥匙。只要 Schema 设计得足够贴合业务再复杂的文档结构也能被稳定地装成 JSON。现在就克隆仓库、跑起服务用一份属于自己的 Schema 试试手吧【免费下载链接】lift-oQ3项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/lift-oQ3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

LFM2.5-1.2B-Instruct-bf16 架构深度解析:Conv 与 Attention 混合设计的效率革命

LFM2.5-1.2B-Instruct-bf16 架构深度解析:Conv 与 Attention 混合设计的效率革命

LFM2.5-1.2B-Instruct-bf16 架构深度解析:Conv 与 Attention 混合设计的效率革命 【免费下载链接】LFM2.5-1.2B-Instruct-bf16 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/LFM2.5-1.2B-Instruct-bf16 面向新手的大模型架构科普:…

2026/10/18 10:26:38 阅读更多 →
电池回收革命:从废旧电池到低成本储能系统的技术路径与商业模式

电池回收革命:从废旧电池到低成本储能系统的技术路径与商业模式

1. 从“垃圾”到“宝藏”:埃里克朗格与他的电池回收革命最近,一个名字在能源圈和科技爱好者中引发了不小的震动:埃里克朗格。他不是特斯拉的工程师,也不是某个新兴电池独角兽的创始人,但他做的一件事,却让很…

2026/10/18 11:14:35 阅读更多 →
数组安全编程:从内存越界到安全实践,详解变长数组风险与替代方案

数组安全编程:从内存越界到安全实践,详解变长数组风险与替代方案

1. 从一次线上事故说起:数组越界的“小”问题那天下午,系统监控突然报警,一个核心服务的内存使用率在几分钟内从30%飙升至90%,随后进程崩溃。重启后,同样的模式再次上演。经过紧急排查,问题定位在一个处理用…

2026/10/18 12:11:54 阅读更多 →

最新新闻

MySQL三层b+树能存多少数据步步剖析

MySQL三层b+树能存多少数据步步剖析

注意:绝大多数业务单表不会超过千万、亿级别,刚好落在高度 3 这个区间,是典型值,不是固定值。第 1 层:根节点(只有 1 页)第 2 层:中间非叶子层第 3 层:叶子节点&#xff…

2026/10/19 12:05:18 阅读更多 →
Gemini 4 Argon照片转油画:四阶对齐的风格迁移技术解析

Gemini 4 Argon照片转油画:四阶对齐的风格迁移技术解析

1. 项目概述:这不是滤镜,而是一次风格迁移的精准手术 “Gemini 4 Argon 照片转油画”——光看标题,很多人第一反应是又一个手机App里的“一键油画”功能。但真正动手试过的人会发现,这根本不是加个高斯模糊再叠层笔触纹理那么简单…

2026/10/19 12:05:18 阅读更多 →
保研面试数据结构复习指南:高频考点与手写代码实战

保研面试数据结构复习指南:高频考点与手写代码实战

保研面试里,数据结构永远是最先被拷问的硬骨头。机试挂掉直接一票否决,面试追问卡壳也会给导师留下“基础不牢”的印象——我见过不少项目经历很漂亮的同学,就因为红黑树或者快排的时间复杂度推导没答上来,最后与心仪的方向失之交…

2026/10/19 12:05:18 阅读更多 →
ESP32-S3驱动CST328+ST7789:跑通LVGL的完整例程拆解

ESP32-S3驱动CST328+ST7789:跑通LVGL的完整例程拆解

简介:ESP32S3驱动CST328与ST7789的LVGL例程,基于ESP-IDF官方框架,面向嵌入式开发者与物联网爱好者,用于在ESP32S3上快速实现彩色TFT显示与触摸交互。例程整合LVGL开源图形库,覆盖硬件SPI初始化、显示控制器配置、界面控…

2026/10/19 12:05:18 阅读更多 →
QT线程与多线程编程:从卡顿优化到线程池实战

QT线程与多线程编程:从卡顿优化到线程池实战

简介:面向Qt/C开发者的多线程专题资源包,专门解决耗时任务阻塞界面、跨线程UI更新及资源竞争等问题,适合具备基础Qt知识、希望掌握并发编程的中级开发者。包内共13个文件,涵盖cpp源码、h头文件、pro工程配置、ui界面文件等核心工程…

2026/10/19 12:05:18 阅读更多 →
手把手把手柄变成键鼠:AntiMicroX 游戏手柄映射完整指南

手把手把手柄变成键鼠:AntiMicroX 游戏手柄映射完整指南

手把手把手柄变成键鼠:AntiMicroX 游戏手柄映射完整指南 【免费下载链接】antimicrox Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support. 项目地址: https://gitcode.com/Git…

2026/10/19 12:04:17 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →