Needle 3结构化JSON提取实战:声明schema,语法级保证脏文本秒变类型化字段

发布时间:2026/10/22 1:30:43
Needle 3结构化JSON提取实战:声明schema,语法级保证脏文本秒变类型化字段
人工智能基础模型工具调用模型量化本地部署Embedding【免费下载链接】needle3项目地址https://ai.gitcode.com/hf_mirrors/Cactus-Compute/needle3点击查看免费下载Needle 3 是 Cactus Compute 开源的端侧结构化 JSON 提取模型声明 schema 后把脏文本喂进去解码语法保证输出必为合法 JSON秒级返回类型化字段全程本地运行、无需云端。本文带你快速安装、声明 schema、理解语法级保证的原理并把它部署到手机、树莓派和浏览器。为什么需要语法级的结构化提取用传统大模型做信息抽取通常是这样的流程让模型输出 JSON用try/except捕获解析失败处理截断、多余逗号、中文引号、字段缺失、类型错误……这些兜底代码越多线上翻车的概率越大。而且云端调用还有延迟、隐私和成本三座大山。Needle 3 换了一条思路把 schema 编译成字节级语法decode grammar在解码阶段约束每一个生成的 token。输出不是大概率能解析而是语法上不可能解析失败——脏文本进类型化字段出一步到位。一分钟上手pip 安装 Needle 3安装非常简单一条命令即可pip install cactus-needle引擎与权重会从仓库获取一次并本地缓存之后完全离线可用。首次安装后即可跑通第一次提取。声明 schema把脏文本变成类型化字段结构化提取的核心玩法是record as the only tool把你想抽取的记录形状声明为一个 schema作为唯一工具交给模型然后直接把原始脏文本喂给它。发票、订单、预订、通知、表单都可以。声明的形状决定返回的字段import needle invoice { name: Invoice, description: Extract invoice details from raw text., type: object, properties: { amount: {type: number}, currency: {type: string}, paid: {type: boolean} } } agent needle.Needle(tools[invoice]) result agent.run(收到发票金额 1280.50 美元状态已付款) print(result)每一轮返回一个 JSON 对象包含三部分function_calls类型化提取结果这里就是符合 schema 的字段reasoning模型的推理过程confidence经过标定的置信度分数。字段类型、缺失情况、枚举取值都由你声明的 schema 决定拿到即可直接入表、入库不需要二次清洗。语法级保证是怎么做到的这是 Needle 3 与普通提示词约束最大的区别常见做法Needle 3 做法提示词里写请输出 JSONschema 编译成字节级语法生成后解析失败重试解码时逐 token 受语法约束输出大概率合法输出必然可解析无内置置信度每个响应带标定 confidence 分数除了解码约束模型本身还有几个为端侧设计的细节权重经 Cactus Quants 压缩为 2-bit整个模型是单个 8–29 MB 文件见 needle3.cact架构参数121M 参数、20 层、8K 上下文定义在 config.json 中需要微调时仓库提供了全量检查点 checkpoints/needle3.safetensors以及 tokenizer.model 供数据处理使用。树莓派 5 上可达 4k tokens/s 的解码速度秒变名副其实。用 enum 字段做分类结构化提取还能自然泛化到分类场景把类别声明为enum字段即可。例如对客服消息做意图识别schema 里声明intent: {type: string, enum: [billing, complaint, support]}——模型只能从这三个取值中选一个不存在自由发挥输出第四种意图的可能。配合confidence分数可以按执行 / 确认 / 拒绝三档路由高分直接执行中分弹窗确认低分转人工。从笔记本到手机多平台部署仓库为每个平台准备了一个独立文件夹里面是不到 1 MB 的引擎 C 头文件启动时加载 needle3.cact 即可。常见平台包括 linux-x86_64、linux-arm64、android-arm64、ios-arm64、macos-arm64 等。CLI 运行以 Linux x86_64 为例./needle --model needle3.cact --tools tools.json --prompt dim the living room to 30C API 集成接口定义见 linux-x86_64/needle.hneedle_init(system_prompt, tools_json, tool_index_path)初始化schema 从tools_json传入needle_complete(input, max_new_tokens, out, out_capacity)喂入脏文本取出类型化结果needle_embed同一模型还能返回句子向量方便本地检索与路由。浏览器 / WASM仓库提供 wasm/needle.js 与 wasm/needle.wasm以及 WASI 组件 wasm-component/needle.component.wasm接口见 wasm-component/needle.wit无依赖即可在网页里跑结构化提取。小结声明 schema把目标记录的形状写成一个 record作为唯一工具交给 Needle 3语法级保证schema 编译为字节级解码语法输出必然可解析附带能力enum 字段即分类、内置标定 confidence 可路由决策、同一模型可出向量端侧运行8–29 MB 单文件模型覆盖手机、树莓派、浏览器与离线设备。更多细节可参阅仓库内的 README.md。赞分享人工智能基础模型工具调用模型量化本地部署Embedding【免费下载链接】needle3项目地址https://ai.gitcode.com/hf_mirrors/Cactus-Compute/needle3点击查看免费下载相关推荐xberg 结构化数据提取实战用 liter-llm 与 JSON Schema 从文档中抽取字段xberg 结构化数据提取实战用 liter llm 与 JSON Schema 从文档中抽取字段 导读 本文围绕 xberg 的 structured_ex后端AI 应用NLPRocketRide 实战用 Landing.ai Extract 节点把解析后的 Markdown 抽取为 JSON Schema 结构化字段RocketRide 实战用 Landing.ai Extract 节点把解析后的 Markdown 抽取为 JSON Schema 结构化字段 导读 本文聚人工智能大模型数据工程后端RAG本地部署MCP 服务前端xberg 结构化抽取实战用 liter-llm JSON Schema 从文档中提取规整数据xberg 结构化抽取实战用 liter llm JSON Schema 从文档中提取规整数据 本篇技术指南聚焦 xberg 的 structured_e后端AI 应用NLP上一篇vim-pathogen与量子互联网下一代网络的Vim插件下一篇LunaTranslator窗口置顶功能3个专业级游戏翻译体验优化技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考