← 返回 AI 开源导航

Outlines

LLM 推理与部署协议 Apache-2.0★ 16kPython

一、项目简介

Outlines 是开源的结构化文本生成库。它通过约束解码技术,让 LLM 输出严格符合 JSON Schema、正则表达式或自定义语法,从而解决「模型输出格式不稳定、解析经常失败」这个 RAG 和 Agent 开发中的常见痛点。

二、核心特性

  • JSON Schema 约束:直接按 schema 生成合法 JSON 对象;
  • 正则约束:用正则表达式限制输出格式;
  • 选择/枚举约束:从给定候选中选择,适合分类;
  • 多后端集成:支持 vLLM、Transformers、llama.cpp 等;
  • 减少重试:显著降低解析失败与重复调用。

三、适用场景

  • 结构化数据抽取(表格、字段);
  • 函数调用与工具参数生成;
  • 需要严格格式输出的 API 返回值生成。

四、快速上手

pip install outlines
import outlines
model = outlines.models.transformers("Qwen/Qwen2.5-0.5B-Instruct")
schema = '{"type":"object","properties":{"name":{"type":"string"}}}'
gen = outlines.generate.json(model, schema)
print(gen("给我一个人的名字"))

五、注意事项

  • 需配合支持的推理后端;
  • 复杂 schema 会增加解码开销、降低速度;
  • 确保 schema 定义正确,否则生成会受限。