Outlines

活跃
GitHub Python Apache-2.0

简介

使用正则、JSON Schema、CFG 强制约束 LLM 输出结构的概率编程库。

核心特性

  • 约束解码 — 在 token 级别屏蔽非法输出,让模型 100% 符合 JSON Schema / 正则 / 上下文无关文法
  • 多后端 — 支持 Transformers、vLLM、TGI、MLX 等本地与远程推理后端
  • 类型化生成 — 与 Pydantic、dataclass 无缝集成,自动推导约束
  • 工具调用 — 内置 JSON 模式工具调用,无需自定义 parser
  • 概率编程 — 文本生成视为采样,提供更高级的提示工程能力
  • 轻量 — 库本身 < 1000 行核心代码,依赖极少

适用场景

💡 为业务表单生成严格符合 schema 的 JSON 输出。
💡 本地部署 LLM 时确保结构化输出稳定。
💡 用上下文无关文法描述 DSL,生成合法代码片段。

快速开始

# 安装
pip install outlines
# 用 Pydantic 生成 JSON
import outlines
from pydantic import BaseModel
class Joke(BaseModel):
    setup: str
    punchline: str
model = outlines.models.transformers('gpt2')
generator = outlines.generate.json(model, Joke)
joke = generator('Tell me a joke')
print(joke.setup, joke.punchline)

相关项目