Repolode
dottxt-ai

dottxt-ai/outlines

LLMの生成時に出力を制約し、指定した型、正規表現、JSON Schema、文法に適合させるPythonライブラリ。

スター
15,952
フォーク
907
未解決の Issue
197
最終コミット
29 日前

これは何?

Outlinesは、大規模言語モデルによる構造化生成のためのPythonライブラリです。モデルの応答後に自由形式のテキストを解析・修正するのではなく、Literalの選択肢、int、Pydanticモデルなど、指定した型に常に一致するよう生成を導きます。

ラップしたモデルにプロンプトと出力型を渡して呼び出します。正規表現パターン、JSON Schema、文脈自由文法、Pythonの型に対応しており、関数シグネチャから構造を推論することもできます。プロンプトは、再利用可能なJinjaベースのテンプレートから作成できます。

READMEには、transformers、llama.cpp、vLLM、Ollama、OpenAI、Geminiとの連携が記載されています。このプロジェクトは.txtのチームが開発しています。

主な機能

  • 01生成結果をLiteralの選択肢、int、Pydanticモデルに制約します。
  • 02正規表現パターン、JSON Schema、文脈自由文法に対応しています。
  • 03関数シグネチャから必要な出力構造を推論します。
  • 04再利用したり、ファイルから読み込んだりできるJinjaベースのプロンプトテンプレートを提供します。
  • 05transformersやllama.cppを使ったローカルモデル、およびvLLMやOllamaなどのサーバーで利用できます。

ユースケース

  • 自由形式のテキストからチケットやイベントなどの構造化レコードを抽出する。
  • 文書や商品を決められたカテゴリに分類する。
  • 自然言語のリクエストを関数呼び出し用の引数に変換する。
  • LLMによるバッチ処理向けに再利用可能なプロンプトテンプレートを作成する。

クイックスタート

  1. 1

    outlinesをインストールする

    pip install outlines
  2. 2

    モデルを読み込み、構造化生成を実行する(コード全体はREADMEのQuickstartを参照)

使う前に知っておきたいこと

  • READMEの例ではHugging Face Transformersのモデルを使用しており、十分な速度で動かすにはGPUが必要な場合があります。
  • ホスト型の.txt APIは早期アクセス段階で、利用にはアクセス申請が必要です。

トピック

よくある質問

outlines とは?
LLMの生成時に出力を制約し、指定した型、正規表現、JSON Schema、文法に適合させるPythonライブラリ。 Outlinesは、大規模言語モデルによる構造化生成のためのPythonライブラリです。モデルの応答後に自由形式のテキストを解析・修正するのではなく、Literalの選択肢、int、Pydanticモデルなど、指定した型に常に一致するよう生成を導きます。
outlines は無料で使えますか?ライセンスは?
outlines は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
outlines は今もメンテナンスされていますか?
活発にメンテナンス中。outlines の最終コミットは 2026年9月21日 です。
outlines は何に使えますか?
自由形式のテキストからチケットやイベントなどの構造化レコードを抽出する。 文書や商品を決められたカテゴリに分類する。 自然言語のリクエストを関数呼び出し用の引数に変換する。 LLMによるバッチ処理向けに再利用可能なプロンプトテンプレートを作成する。
outlines のインストール方法は?
outlinesをインストールする: pip install outlines モデルを読み込み、構造化生成を実行する(コード全体はREADMEのQuickstartを参照)
outlines はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/dottxt-ai/outlines

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト