NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3576 most downloaded on PyPI
Probabilistic Generative Model Programming
Last release 2 months ago
06 Aug 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
84 releases · first in 2023
One column per quarter.
Support PEP 604 unions (int | str) as output types by @sohumt123 in https://github.com/dottxt-ai/outlines/pull/1932
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.3.2...1.3.3
Full Changelog: 1.3.2...1.3.3
fix(types): map JSON Schema const to a Literal by @sarathfrancis90 in https://github.com/dottxt-ai/outlines/pull/1894
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.3.1...1.3.2
Full Changelog: 1.3.1...1.3.2
Add semver and MAC address custom types by @Yeuvoir in https://github.com/dottxt-ai/outlines/pull/1863
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.3.0...1.3.1
Full Changelog: 1.3.0...1.3.1
Minor Breaking Change: API-based models (OpenAI, Anthropic...) are now raising standardized errors in case of API errors (outlines.exceptions). Make s…
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.13...1.3.0
Minor Breaking Change: API-based models (OpenAI, Anthropic...) are now raising standardized errors in case of API errors (outlines.exceptions). Make sure to update your code if you were catching specific exceptions from your provider. Information on Outlines standardized exceptions can be found here
Full Changelog: 1.2.13...1.3.0
Minor Breaking Change: API-based models (OpenAI, Anthropic...) are now raising standardized errors in case of API errors (outlines.exceptions). Make sure to update your code if you were catching specific exceptions from your provider. Information on Outlines standardized exceptions can be found here
Fix XDG_CACHE_HOME double .cache in path construction by @jnMetaCode in https://github.com/dottxt-ai/outlines/pull/1828
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.12...1.2.13
Add a link to the audit form in the README and the doc website by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1822
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.11...1.2.12
Full Changelog: 1.2.12...1.2.13
Add documentation preview when opening a PR by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1818
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.10...1.2.11
Full Changelog: 1.2.10...1.2.11
Correct mlx-lm example unpacking operator by @Anri-Lombard in https://github.com/dottxt-ai/outlines/pull/1786
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.9...1.2.10
Full Changelog: 1.2.9...1.2.10
fix: Refactor sampling parameters in VLLMOffline to use StructuredOutputsParams by @Ki-Seki in https://github.com/dottxt-ai/outlines/pull/1779
SamplingParams in model response examples by @Ki-Seki in https://github.com/dottxt-ai/outlines/pull/1777Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.8...1.2.9
SamplingParams in model response examples by @Ki-Seki in #1777Full Changelog: 1.2.8...1.2.9
Use uv sync in the CI instead of pip install by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1767
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.7...1.2.8
Full Changelog: 1.2.7...1.2.8
Add the device_dtype init parameter to the transformers model by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1762
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.6...1.2.7
Fix correct handling of chat multimodal inputs in TransformersMM class by @laitifranz in https://github.com/dottxt-ai/outlines/pull/1728
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.5...1.2.6
Update the output_type formatting of the llamacpp model by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1753
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.4...1.2.5
Jax/tensorflow deprecation by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1726
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.3...1.2.4
Create AsyncOpenAI model by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1721
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.2...1.2.3
Fix a bug in the outlines_core backend for the Transformers model about the token to string conversion by @RobinPicard in https://github.com/dottxt-ai
outlines_core backend for the Transformers model about the token to string conversion by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1716eos_token in the LlamaCpp tokenizer by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1712Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.1...1.2.2
Create our own logits processor for Xgrammar, add support for mlx by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1706
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.2.0...1.2.1
Remove dead link to VLM example from examples index by @laitifranz in https://github.com/dottxt-ai/outlines/pull/1685
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.1.1...1.2.0
Set add_generation_template to True in chat formatting for Transformers by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1684
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.1.0...1.1.1
Remove deprecated features from v0 by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1682
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.0.4...1.1.0
Create Choice output type by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1671
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.0.3...1.0.4
Add llm.txt file by @rlouf in https://github.com/dottxt-ai/outlines/pull/1661
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.0.2...1.0.3
Fix typos in getting started guide by @ganglike248 in https://github.com/dottxt-ai/outlines/pull/1644
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.0.1...1.0.2
Fix broken links in the README by @RobinPicard in https://github.com/dottxt-ai/outlines/pull/1625
Full Changelog: https://github.com/dottxt-ai/outlines/compare/1.0.0...1.0.1
As this new version deprecates some previously available features of Outlines, we have written a migration guide that gives detailed information on ho…
The v1 intends on making Outlines more closely focused on constrained generation. To do so, we delegate a wider range of tasks to the users and inference libraries. On top of making Outlines leaner, this design provides more flexibility to the users and let them use interfaces they are already familiar with.
Our approach is inspired by the unix best practices — each element does one thing well, and we compose those functional elements.
As this new version deprecates some previously available features of Outlines, we have written a migration guide that gives detailed information on how to upgrade your v0 code to v1.
All deprecated features listed below will be removed in version 1.1.0. Until then, a warning will be displayed with information on how to migrate your code to v1.
models module (transformers, openai, etc.) have been deprecated. They are replaced by equivalent functions prefixed with from_ such as from_transformers, from_openai, etc. The new loader functions accept different arguments compared to the old ones. They now typically require an instance of an engine/client from the associated inference library. This change was made to avoid duplicating inference library logic and to give users more control over inference engine/client initialization.
Documentation# v0
from outlines import models
from transformers import BertForSequenceClassification, BertTokenizer
model = models.transformers(
model_name="prajjwal1/bert-tiny",
model_class=BertForSequenceClassification,
tokenizer_class=BertTokenizer,
model_kwargs={"use_cache": False},
tokenizer_kwargs={"model_max_length": 512},
)
# v1
import outlines
from transformers import BertForSequenceClassification, BertTokenizer
hf_model = BertForSequenceClassification.from_pretrained("prajjwal1/bert-tiny", use_cache=False)
hf_tokenizer = BertTokenizer.from_pretrained("prajjwal1/bert-tiny", model_max_length=512)
model = outlines.from_transformers(hf_model, hf_tokenizer)
generate module and the associated functions (json, choice…) have been deprecated. They are replaced by the Generator constructor. While you had to select the right generate function for your output type, you can now provide any output type supported by Outlines to the unique Generator object.
Documentation# v0
from pydantic import BaseModel
from outlines import generate, models
class Character(BaseModel):
name: str
model = models.openai("gpt-4o")
generator = generate.json(model, Character)
# v1
from openai import OpenAI
from pydantic import BaseModel
from outlines import Generator, from_openai
class Character(BaseModel):
name: str
model = from_openai(OpenAI())
generator = Generator(model, Character)
TransformersVision model has been deprecated. It's replaced by TransformersMultiModal, which is more general as it supports additional input types beyond images, such as audio. When calling it, instead of providing the prompt and image assets separately, both should now be included in a single dictionary. The model is loaded with from_transformers just like the Transformers model, but the second argument must be a processor instead of a tokenizer.
Documentation# v0
from io import BytesIO
from urllib.request import urlopen
from PIL import Image
from transformers import LlavaForConditionalGeneration
from outlines import models, generate
def img_from_url(url):
img_byte_stream = BytesIO(urlopen(url).read())
return Image.open(img_byte_stream).convert("RGB")
model = models.transformers_vision(
model_name="trl-internal-testing/tiny-LlavaForConditionalGeneration",
model_class=LlavaForConditionalGeneration,
)
generator = generate.text(model)
result = generator(
"Describe the image <image>",
img_from_url("https://upload.wikimedia.org/wikipedia/commons/2/25/Siam_lilacpoint.jpg")
)
# v1
from io import BytesIO
from urllib.request import urlopen
from PIL import Image
from transformers import LlavaForConditionalGeneration, AutoProcessor
import outlines
def img_from_url(url):
img_byte_stream = BytesIO(urlopen(url).read())
return Image.open(img_byte_stream).convert("RGB")
model = outlines.from_transformers(
LlavaForConditionalGeneration.from_pretrained("trl-internal-testing/tiny-LlavaForConditionalGeneration"),
AutoProcessor.from_pretrained("trl-internal-testing/tiny-LlavaForConditionalGeneration")
)
image = img_from_url("https://upload.wikimedia.org/wikipedia/commons/2/25/Siam_lilacpoint.jpg")
result = model({"text": "Describe the image <image>", "images": image})
The Exllamav2 model has been deprecated without replacement because its interface is not fully compatible with Outlines. We had to implement cumbersome patching to make it work, so we decided to remove it entirely.
The function module and the associated Function class have been deprecated. They are replaced by the Application class, which serves a similar purpose to Function. There are two notable differences: an Application is not initialized with a model (a model must be provided when calling the object), and template variables must be provided in a dictionary instead of as keyword arguments when calling the Application.
Documentation
# v0
from pydantic import BaseModel
from outlines import Function, Template
class Character(BaseModel):
name: str
template = Template.from_string("Create a {{ gender }} character.")
fn = Function(template, Character, "hf-internal-testing/tiny-random-GPTJForCausalLM")
response = fn(gender="female")
# v1
from pydantic import BaseModel
from outlines import Application, Template, from_transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
class Character(BaseModel):
name: str
model = from_transformers(
AutoModelForCausalLM.from_pretrained("microsoft/Phi-3-mini-4k-instruct"),
AutoTokenizer.from_pretrained("microsoft/Phi-3-mini-4k-instruct")
)
template = Template.from_string("Create a {{ gender }} character.")
app = Application(template, Character)
response = app(model, {"gender": "female"})
samplers module and the associated objects (multinomial, greedy…) have been deprecated. You should now use the inference arguments specific to the inference library your model is based on to control the sampling.# v0
from outlines import generate, models, samplers
model = models.transformers("microsoft/Phi-3-mini-4k-instruct")
generator = generate.text(model, samplers.beam_search(2))
response = generator("Write a short story about a cat", max_tokens=10)
# v1
from outlines import Generator, from_transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
model = from_transformers(
AutoModelForCausalLM.from_pretrained("microsoft/Phi-3-mini-4k-instruct"),
AutoTokenizer.from_pretrained("microsoft/Phi-3-mini-4k-instruct")
)
response = model("Write a short story about a cat", num_beams=2)
load_lora methods on the VLLM and LlamaCpp models have been deprecated. You should now load through the Llama instance provided when initializing the model in the case of the LlamaCpp model, and provide it as a keyword argument when calling the model in the case of the VLLM model.# v0
from outlines import models
from vllm import LLM
model = models.vllm("erwanf/gpt2-mini")
model.load_lora("path/to/lora/file")
response = model("Write a short story about a cat.")
#v1
from outlines import from_vllm
from vllm import LLM
from vllm.lora.request import LoRARequest
model = from_vllm(
LLM("microsoft/Phi-3-mini-4k-instruct")
)
lora_request = LoRARequest("path/to/lora/file", 1, "path/to/lora/file")
response = model("Write a short story about a cat.", lora_request=lora_request)
Some objects are maintained, but their interface or behavior has been modified.
Model classes (Transformers, OpenAI, etc.) has been significantly modified. Models can now be called directly with a prompt and an output type without having to create a generator first. Additionally, all models have a stream method that can be invoked directly by the user.
Documentation# v0
from pydantic import BaseModel
from outlines import generate, models
class Character(BaseModel):
name: str
model = models.openai("gpt-4o")
generator = generate.json(model, Character)
result = generator("Create a character")
# v1
from openai import OpenAI
from pydantic import BaseModel
from outlines import from_openai
class Character(BaseModel):
name: str
model = from_openai(OpenAI(), "gpt-4o")
result = model("Create a character", Character)
__init__ method of the OpenAI model class has been modified. While it previously accepted a client and an OpenAIConfig object instance, it now accepts a client and a model name. The inference arguments from the config object should now be specified when calling the model to more closely align with the OpenAI Python library's functionality. If you provide an OpenAIConfig instance when initializing the model, a deprecation warning will appear and your model will behave like a v0 model.
We recommend using the from_openai function instead of initializing models directly.
Documentation# v0
from outlines.models.openai import OpenAI, OpenAIConfig
from openai import OpenAI as OpenAIClient
model = OpenAI(
OpenAIClient(),
OpenAIConfig(model="gpt-4o", stop=["."])
)
# v1
import outlines
from openai import OpenAI
model = outlines.from_openai(OpenAIClient(), "gpt-4o")
# v0
from pydantic import BaseModel
from outlines import generate, models
class Character(BaseModel):
name: str
model = models.openai("gpt-4o")
generator = generate.json(model, Character)
result = generator("Create a character")
print(result) # name='James'
# v1
import openai
from pydantic import BaseModel
from outlines import from_openai
class Character(BaseModel):
name: str
model = from_openai(OpenAI())
result = model("Create a character", Character)
print(result) # {"name": "James"}
print(Character.model_validate_json(result)) # name='James'
samplers mentioned above is a part of this change of approach.
Documentation# v0
from outlines import generate, models
model = models.transformers("microsoft/Phi-3-mini-4k-instruct")
generator = generate.text(model)
result = generator("Create a character", max_tokens=256, stop_at=".")
# v1
from outlines import from_transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
model = from_transformers(
AutoModelForCausalLM.from_pretrained("microsoft/Phi-3-mini-4k-instruct"),
AutoTokenizer.from_pretrained("microsoft/Phi-3-mini-4k-instruct")
)
result = model("Create a character", max_new_tokens=256, stop_strings=".")
from_ function that accepts an inference engine/client instance.
Documentation
DottxtAnthopicGeminiOllamaSGLangTGITransformersMultiModelVLLMAsyncSGLangAsyncTGIAsyncVLLMimport outlines
from huggingface_hub import AsyncInferenceClient
async_model = outlines.from_tgi(AsyncInferenceClient("http://localhost:11434"))
Generator constructor has been added. It accepts a model and an output type as arguments and returns a generator object that can be used to generate text by providing a prompt and inference arguments. The interest of a generator is that it's reusable such that the user does not have to specify the output type they want each time and the output type compilation (when applicable) happens only once.
Documentation# direct model calling
from typing import Literal
from outlines import from_transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
model = from_transformers(
AutoModelForCausalLM.from_pretrained("fmicrosoft/Phi-3-mini-4k-instruct"),
AutoTokenizer.from_pretrained("fmicrosoft/Phi-3-mini-4k-instruct")
)
result = model("Pizza or burger", Literal["pizza", "burger"])
# using a generator
from outlines import Generator, from_transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
model = from_transformers(
AutoModelForCausalLM.from_pretrained("microsoft/Phi-3-mini-4k-instruct"),
AutoTokenizer.from_pretrained("microsoft/Phi-3-mini-4k-instruct")
)
generator = Generator(model, Literal["pizza", "burger"])
result = generator("Pizza or burger")
Application class has been added. An Application is initialized with a prompt template and an output type. The application object returned can then be called with a model, a dictionary containing values for the template variables and inference arguments. The objective of this object is to let users easily switch from a model to another for a given set of prompt and output type.
Documentationfrom pydantic import BaseModel
from outlines import Application, Template
class Character(BaseModel):
name: str
template = Template.from_string("Create a {{ gender }} character.")
app = Application(template, Character)
response = app(model, {"gender": "female"})
Term classes and functions have been added. Terms (Regex, String…) can be used as output types to generate text with models or generators (they are turned into a regex). The term functions (either, optional, at_least…) are useful to build more complex regex patterns by combining terms. On top of the objects related to regex patterns, there are also 3 terms that are intended to be used by themselves as output types: JsonSchema, CFG and FSM.
Documentation# term used directly as an output type
from outlines import from_transformers
from outlines.types import JsonSchema
from transformers import AutoModelForCausalLM, AutoTokenizer
model = from_transformers(
AutoModelForCausalLM.from_pretrained("fmicrosoft/Phi-3-mini-4k-instruct"),
AutoTokenizer.from_pretrained("fmicrosoft/Phi-3-mini-4k-instruct")
)
json_schema = '{"type": "object", "properties": {"answer": {"type": "number"}}}'
result = model("What's 2 + 2? Respond in a json", JsonSchema(json_schema))
# creating a complex regex pattern
from outlines import from_transformers
from outlines.types import at_least, either, integer, optional
from transformers import AutoModelForCausalLM, AutoTokenizer
model = from_transformers(
AutoModelForCausalLM.from_pretrained("fmicrosoft/Phi-3-mini-4k-instruct"),
AutoTokenizer.from_pretrained("fmicrosoft/Phi-3-mini-4k-instruct")
)
regex_term = "I have " + integer + either("dog", "cat") + optional("s")
result = model("How many pets do you have", regex_term)
JSON schema error when using OpenAI with Pydantic model by @derfred in https://github.com/dottxt-ai/outlines/pull/1472
Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.2.2...0.2.3
Rename Prompt to Template and add deprecation warning to the prompt decorator by @rlouf in https://github.com/dottxt-ai/outlines/pull/1440
Prompt to Template and add deprecation warning to the prompt decorator by @rlouf in https://github.com/dottxt-ai/outlines/pull/1440Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.2.0...0.2.1
Add a few dotfiles to improve newcomers' experience by @yvan-sraka in https://github.com/dottxt-ai/outlines/pull/1368
pycountry with iso3166 for Better Licensing Compliance by @aman-17 in https://github.com/dottxt-ai/outlines/pull/1410uv and DevContainer intructions by @yvan-sraka in https://github.com/dottxt-ai/outlines/pull/1405uv and nix by @yvan-sraka in https://github.com/dottxt-ai/outlines/pull/1387Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.14...0.2.0
Fix typo in examples docs by @petros in https://github.com/dottxt-ai/outlines/pull/1379
.gitignore by @yvan-sraka in https://github.com/dottxt-ai/outlines/pull/1388genson integration for json generation by @g-prz in https://github.com/dottxt-ai/outlines/pull/1390Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.13...0.1.14
Update react_agent.md with current import structure by @pervrosen in https://github.com/dottxt-ai/outlines/pull/1375
transformers_vision multiple Images example by @gante in https://github.com/dottxt-ai/outlines/pull/1370vllm-related pytest warning (that was spaming user) by @yvan-sraka in https://github.com/dottxt-ai/outlines/pull/1362Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.12...0.1.13
Fix image link in receipt-digitization example by @rootAvish in https://github.com/dottxt-ai/outlines/pull/1341
docstring_style by @EdAbati in https://github.com/dottxt-ai/outlines/pull/1343mamba and transfomers by @martin0258 in https://github.com/dottxt-ai/outlines/pull/1354vllm-related tests on non-linux platforms by @yvan-sraka in https://github.com/dottxt-ai/outlines/pull/1357json_schema imports in cot example by @tylerjthomas9 in https://github.com/dottxt-ai/outlines/pull/1360from_file class method to the Prompt object by @yvan-sraka in https://github.com/dottxt-ai/outlines/pull/1355Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.11...0.1.12
Bump outlines-core version to 0.1.26 by @sidharthrajaram in https://github.com/dottxt-ai/outlines/pull/1336
Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.10...0.1.11
Bump outlines-core version to 0.1.25 by @rlouf in https://github.com/dottxt-ai/outlines/pull/1333
outlines-core version to 0.1.25 by @rlouf in https://github.com/dottxt-ai/outlines/pull/1333Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.9...0.1.10
Fix typo in vllm extra requirements by @chicham in https://github.com/dottxt-ai/outlines/pull/1315
outlines-core to translate JSON Schemas into regexes by @rlouf in https://github.com/dottxt-ai/outlines/pull/1311Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.8...0.1.9
Bump the outlines core version to 0.1.20 by @rlouf in https://github.com/dottxt-ai/outlines/pull/1323
Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.7...0.1.8
Fix library top-level imports by @rlouf in https://github.com/dottxt-ai/outlines/pull/1296
Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.6...0.1.7
Update generation.md by @djinnome in https://github.com/dottxt-ai/outlines/pull/1248
Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.5...0.1.6
Turn off guide caching by @torymur in https://github.com/dottxt-ai/outlines/pull/1278
Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.4...0.1.5
Bump to outlines-core=0.1.17 for python 3.12-3.13 support by @mgoin in https://github.com/dottxt-ai/outlines/pull/1273
Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.3...0.1.4
Add PDF cookbook by @cpfiffer in https://github.com/dottxt-ai/outlines/pull/1256
Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.2...0.1.3
Doc corrections by @cpfiffer in https://github.com/dottxt-ai/outlines/pull/1213
Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.1...0.1.2
The 0.1.0 included a version of outlines-core for which wheels where not available, causing many errors for users who don't have a Rust compiler insta
The 0.1.0 included a version of outlines-core for which wheels where not available, causing many errors for users who don't have a Rust compiler installed. We fixed this in outlines-core, but changes to the interface where pushed in the meantime so we have to account for these before cutting this new release.
dottxt-ai/outlines not outlines-dev/outlines in mkdocs by @lapp0 in https://github.com/dottxt-ai/outlines/pull/1194outlines-core release by @lapp0 in https://github.com/dottxt-ai/outlines/pull/1204Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.1.0...0.1.1
outlines.integrations is now deprecated: #1061
models.openai with any OpenAI-like API (e.g. vLLM, ChatGPT), including structured generation with generate.json and generate.choice (#1142).outlines.processors, completed by adding the following to the integration: llama-cpp, vLLM and ExLlamaV2).models.transformers_vision (#1077).models.llamacpp no longer includes implicit max_tokens (#996).models.mlxlm (#1003).models.mamba now working, and supporting structured generation (#1040).pad_token_id reset issue in TransformerTokenizer (#1068).outlines.generate generator reuse causing runtime errors (#1160).outlines.integrations is now deprecated: #1061models.llamacpp Doesn't Have Implicit max_tokens by @lapp0 in https://github.com/dottxt-ai/outlines/pull/996models.mlxlm whitespace prefix handling by @lapp0 in https://github.com/dottxt-ai/outlines/pull/1003vllm by @BIMM99 in https://github.com/dottxt-ai/outlines/pull/1004pyproject.toml, enable mlx-lm requirement only on darwin, disable vllm requirement on darwin by @lapp0 in https://github.com/dottxt-ai/outlines/pull/1005outlines.processors, add integration tests to test_generate.py by @lapp0 in https://github.com/dottxt-ai/outlines/pull/998RegexFSM: Cache Legal-Token Mask as torch.Tensor to Improve Performance by @lapp0 in https://github.com/dottxt-ai/outlines/pull/1013models.transformers to use SequenceGeneratorAdapter and OutlinesLogitsProcessors by @lapp0 in https://github.com/dottxt-ai/outlines/pull/966outlines.processors for models.llamacpp by @lapp0 in https://github.com/dottxt-ai/outlines/pull/997outlines.models.transformers by @lapp0 in https://github.com/dottxt-ai/outlines/pull/1040outlines.models.transformers_vision by @lapp0 in https://github.com/dottxt-ai/outlines/pull/1052outlines.processors and SequenceGeneratorAdapter for outlines.models.vllm by @lapp0 in https://github.com/dottxt-ai/outlines/pull/1053mamba model reference by @rlouf in https://github.com/dottxt-ai/outlines/pull/1072exclude_lines setting for ellipsis by @brandonwillard in https://github.com/dottxt-ai/outlines/pull/1089model_class required arg, default processor_class to AutoProcessor by @parkervg in https://github.com/dottxt-ai/outlines/pull/1077outlines.integrations by @rlouf in https://github.com/dottxt-ai/outlines/pull/1061text and images as kwargs to VLM processor by @lapp0 in https://github.com/dottxt-ai/outlines/pull/1126CFGGuide to use outlines.fsm.parsing. Enable generate.cfg by @lapp0 in https://github.com/dottxt-ai/outlines/pull/1067test_create_fsm_index_tokenizer by @brandonwillard in https://github.com/dottxt-ai/outlines/pull/1139outlines-core version by @brandonwillard in https://github.com/dottxt-ai/outlines/pull/1187Full Changelog: https://github.com/dottxt-ai/outlines/compare/0.0.46...0.1.0
Nothing published for this version
Adding MLXLM, VLLM classes to LogitsGenerator type by @parkervg in https://github.com/outlines-dev/outlines/pull/970
MLXLM, VLLM classes to LogitsGenerator type by @parkervg in https://github.com/outlines-dev/outlines/pull/970json_schema.py by @lapp0 in https://github.com/outlines-dev/outlines/pull/991os.environ in documentation by @rlouf in https://github.com/outlines-dev/outlines/pull/993json_schema.py by removing anchors by @lapp0 in https://github.com/outlines-dev/outlines/pull/995LlamaCppTokenizer by @lapp0 in https://github.com/outlines-dev/outlines/pull/992Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.45...0.0.46
Fix some dependency issues and remove obsolete try-except block by @fpgmaas in https://github.com/outlines-dev/outlines/pull/967
numpy<2.0.0, Prevent ModuleNotFoundError by @lapp0 in https://github.com/outlines-dev/outlines/pull/977Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.44...0.0.45
Fix null byte \x00 issue in byte level fsm resulting in KeyError in BetterFSM::FSMInfo by @lapp0 in https://github.com/outlines-dev/outlines/pull/930
\x00 issue in byte level fsm resulting in KeyError in BetterFSM::FSMInfo by @lapp0 in https://github.com/outlines-dev/outlines/pull/930outlines.models.mlxlm by @lapp0 in https://github.com/outlines-dev/outlines/pull/956Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.43...0.0.44
fix typo in docs by @eitanturok in https://github.com/outlines-dev/outlines/pull/860
huggingface_hub & pyairports by @leloykun in https://github.com/outlines-dev/outlines/pull/866Email type by @eitanturok in https://github.com/outlines-dev/outlines/pull/870get_schema_from_signature by @eitanturok in https://github.com/outlines-dev/outlines/pull/878STRING_INNER by @lapp0 in https://github.com/outlines-dev/outlines/pull/899additionalProperties) in JSON Schemas by @lapp0 in https://github.com/outlines-dev/outlines/pull/907create_states_mapping by @brandonwillard in https://github.com/outlines-dev/outlines/pull/911{}, resulting in unconstrained json value by @lapp0 in https://github.com/outlines-dev/outlines/pull/914LlamaCppTokenizer an outlines Tokenizer by @lapp0 in https://github.com/outlines-dev/outlines/pull/929pyproject.toml Deps, Breaking Release PyPi Workflow & Add Build Wheel / SDist Check to PR Workflow by @lapp0 in https://github.com/outlines-dev/outlines/pull/938Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.42...0.0.43
Fix typo in llama.cpp documentation by @rlouf in https://github.com/outlines-dev/outlines/pull/835
Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.40...0.0.41
Exclude escape character in JSON string fields by @rlouf in https://github.com/outlines-dev/outlines/pull/829
model_name as an optional parameter for azure_openai by @HerrIvan in https://github.com/outlines-dev/outlines/pull/825Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.39...0.0.40
Add page with projects from the community by @rlouf in https://github.com/outlines-dev/outlines/pull/816
torch dependency in installation instructions by @rlouf in https://github.com/outlines-dev/outlines/pull/818Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.38...0.0.39
Refactored exl2 method to add LoRA, 8bit cache, and other features supported by exllama by @psych0v0yager in https://github.com/outlines-dev/outlines/
exl2 by @rlouf in https://github.com/outlines-dev/outlines/pull/742model_kwargs dictionary by default by @rlouf in https://github.com/outlines-dev/outlines/pull/747RegexLogitsProcessor._fsm_state by @saattrupdan in https://github.com/outlines-dev/outlines/pull/760Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.36...0.0.37
Restore FSM interface for backward compatibility by @rlouf in https://github.com/outlines-dev/outlines/pull/741
Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.35...0.0.36
Fix/fsm race condition by @saattrupdan in https://github.com/outlines-dev/outlines/pull/718
prompt_token_ids, attentions_mask and weights on the same device by @rlouf in https://github.com/outlines-dev/outlines/pull/719transformers and llamacpp interfaces by @rlouf in https://github.com/outlines-dev/outlines/pull/727Guide interface by @rlouf in https://github.com/outlines-dev/outlines/pull/737Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.34...0.0.35
fix minor typo by @avriiil in https://github.com/outlines-dev/outlines/pull/706
Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.33...0.0.34
Dockerize and Add Release-Push Workflow by @lapp0 in https://github.com/outlines-dev/outlines/pull/688
LlamaSequenceGenerator by @rlouf in https://github.com/outlines-dev/outlines/pull/701Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.32...0.0.33
Link to grammars module instead of deleted repo by @rlouf in https://github.com/outlines-dev/outlines/pull/671
grammars module instead of deleted repo by @rlouf in https://github.com/outlines-dev/outlines/pull/671Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.31...0.0.32
Keep track of state in RegexLogitsProcessor using input_ids by @lapp0 in https://github.com/outlines-dev/outlines/pull/628
RegexLogitsProcessor using input_ids by @lapp0 in https://github.com/outlines-dev/outlines/pull/628ancestors on the same device as the KV cache by @raphaelchinchilla in https://github.com/outlines-dev/outlines/pull/660Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.30...0.0.31
Ensure Ancestors on Correct Device During Sampling by @lapp0 in https://github.com/outlines-dev/outlines/pull/651
Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.29...0.0.30
Make generate.format return the corresponding object by @rlouf in https://github.com/outlines-dev/outlines/pull/630
generate.format return the corresponding object by @rlouf in https://github.com/outlines-dev/outlines/pull/630top_p logits processor and temperature rescaling to the multinomial sampler by @rlouf in https://github.com/outlines-dev/outlines/pull/646Full Changelog: https://github.com/outlines-dev/outlines/compare/0.0.28...0.0.29
Your coding agent can read these notes before it upgrades. Set up the MCP server →