Parse unstructured text such as emails or product descriptions into a typed Python object with guaranteed valid JSON output.
Classify text into a fixed set of categories using a language model that is constrained to output only the allowed values.
Triage customer support tickets into structured fields like priority and category using a local or hosted language model.
Switch a structured generation pipeline between OpenAI, Ollama, and Hugging Face models without rewriting integration code.
Requires an API key for hosted providers like OpenAI, or a running local model runtime like Ollama or vLLM for self-hosted use.
Outlines is a Python library that makes AI language models produce outputs in a guaranteed structure. When you ask a language model a question, it normally returns free-form text, and if you need that text to be formatted as JSON, a list, or a specific data shape, you have to parse it afterward and hope it came back correctly. Outlines removes that uncertainty by controlling the model during generation so it can only produce output that matches the structure you asked for. The API is built around Python types. You call the model with a prompt and a type specification: pass a Python integer type and the model returns an integer, pass a Pydantic data model and the model returns a JSON object that matches that model exactly. No post-processing, no retrying failed parses. You can also constrain outputs to a fixed set of choices using Python's Literal type, which is useful for classification tasks where the answer must be one of a known set of options. The library works with a wide range of model providers, including OpenAI, Ollama, vLLM, and Hugging Face's transformers library. The same code runs across providers without changes, so switching from a local model to a hosted one does not require rewriting your integration. Practical use cases shown in the README include things like triaging customer support emails into structured tickets with priority and category fields, categorizing e-commerce product descriptions, parsing event details from unstructured text, and calling predefined functions from natural language. All of these share the same pattern: a prompt goes in, a structured Python object comes out. The project is maintained by .txt, a company focused on structured generation, and is used in production by organizations like NVIDIA, Cohere, and Hugging Face. It is installable via pip.
← dottxt-ai on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.