⛨GuardrailAgentic capabilityFree
Outlines
Guaranteed structured generation from LLMs: enforce JSON, regex, grammar, or Pydantic schemas at the token level.
Outlines
Outlines (by dottxt-ai) makes LLM outputs reliably structured by constraining token sampling to only produce valid JSON, regex patterns, context-free grammars, or Pydantic model instances — with zero retry loops. The constraint is applied at the logit level, so it is mathematically impossible for the model to produce invalid output.
Key Features
- JSON schema enforcement — pass a Pydantic model or JSON schema; get a perfectly valid object every time
- Regex-guided generation — constrain output to any regular expression pattern
- Grammar-based — EBNF context-free grammars for generating valid code, SQL, or custom DSLs
- Choice constraints — force the model to pick from a fixed set of options
- Model-agnostic — works with transformers, llama.cpp (via llama-cpp-python), and vLLM
- No retries — unlike post-hoc JSON parsers, invalid tokens are literally impossible
Quick Start
pip install outlines
import outlines
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
city: str
model = outlines.models.transformers("Qwen/Qwen2.5-0.5B-Instruct")
generator = outlines.generate.json(model, Person)
person = generator("Generate a fictional person.")
print(person) # Person(name='Alice', age=30, city='Paris')
Install via ai-supply
npx ai-supply add outlines-structured-generation
Curated mirror of the open-source Outlines project (Apache-2.0). Install upstream from the repository.