Repolode
dottxt-ai

dottxt-ai/outlines

一个 Python 库,在生成过程中约束 LLM 输出,使其符合指定的类型、正则、JSON Schema 或语法。

Star
15,952
Fork
907
未关闭 Issue
197
最近提交
28天前

这是什么?

Outlines 是一个用于大语言模型结构化生成的 Python 库。它不是在模型回复后再解析或修复文本,而是在生成过程中进行约束,使输出始终符合你指定的类型,例如 Literal 选项、int 或 Pydantic 模型。

使用时,你将提示词和输出类型传给封装后的模型即可。它支持正则表达式、JSON Schema、上下文无关文法以及 Python 类型,也可以从函数签名推断结构。提示词可通过基于 Jinja 的可复用模板构建。

项目支持 transformers、llama.cpp、vLLM、Ollama、OpenAI 和 Gemini 等模型后端,由 .txt 团队开发维护。

核心功能

  • 01将生成结果约束为 Literal 选项、整数或 Pydantic 模型。
  • 02支持正则表达式、JSON Schema 和上下文无关文法。
  • 03可从函数签名自动推断所需的输出结构。
  • 04提供基于 Jinja 的提示词模板,可复用或从文件加载。
  • 05支持通过 transformers、llama.cpp 运行本地模型,也支持 vLLM、Ollama 等服务端。

适用场景

  • 从自由文本中提取工单、事件等结构化记录。
  • 将文档或商品归入固定的分类集合。
  • 把自然语言请求转换为函数调用的参数。
  • 为批量 LLM 处理构建可复用的提示词模板。

快速上手

  1. 1

    安装 outlines

    pip install outlines
  2. 2

    加载模型并运行结构化生成(完整代码见 README 快速开始)

使用前须知

  • README 中的示例使用 Hugging Face Transformers 模型,要获得较好速度可能需要 GPU。
  • 托管的 .txt API 目前处于早期访问阶段,需要申请访问权限。

标签

常见问题

outlines 是什么?
一个 Python 库,在生成过程中约束 LLM 输出,使其符合指定的类型、正则、JSON Schema 或语法。 Outlines 是一个用于大语言模型结构化生成的 Python 库。它不是在模型回复后再解析或修复文本,而是在生成过程中进行约束,使输出始终符合你指定的类型,例如 Literal 选项、int 或 Pydantic 模型。
outlines 可以免费使用吗?用的什么许可证?
outlines 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
outlines 还在维护吗?
活跃维护中。outlines 最近一次提交是在 2026年9月21日。
outlines 适合用来做什么?
从自由文本中提取工单、事件等结构化记录。 将文档或商品归入固定的分类集合。 把自然语言请求转换为函数调用的参数。 为批量 LLM 处理构建可复用的提示词模板。
outlines 怎么安装和运行?
安装 outlines: pip install outlines 加载模型并运行结构化生成(完整代码见 README 快速开始)
在哪里获取 outlines?
源代码和安装说明在 GitHub 上:https://github.com/dottxt-ai/outlines

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目