LLMアプリケーションに入出力ガードを追加し、LLMの出力から検証済みの構造化データを生成するPythonフレームワーク。
567-labs/instructor
複数のプロバイダーのLLMから、Pydanticで検証済みの構造化データを取得し、検証失敗時には自動で再試行するPythonライブラリです。
- スター
- 14,046
- フォーク
- 1,330
- 未解決の Issue
- 214
- 最終コミット
- 一昨日
これは何?
Instructorは、出力形式をPydanticモデルで定義することで、LLMの応答から型付きデータを抽出します。JSON Schemaを手書きして生テキストを解析する代わりに、クライアントにresponse_modelを渡すと、検証済みのPythonオブジェクトを受け取れます。
このライブラリは、OpenAI、Anthropic、Google、Ollama、Groqなど複数のプロバイダーのAPIを、from_providerで作成する単一のインターフェースの背後にまとめています。検証に失敗すると、Instructorはエラーメッセージをモデルに返して再試行します。再試行回数はmax_retriesで設定できます。また、オブジェクトの部分的なストリーミング出力や、ネストしたモデルにも対応しています。
Pythonに加えて、プロジェクトのドキュメントにはTypeScript、Ruby、Go、Elixir、Rustの実装も掲載されています。
主な機能
- 01Pydanticモデルで出力スキーマを定義し、検証済みのオブジェクトを返します。
- 02単一のfrom_providerインターフェースを通じて、複数のLLMプロバイダーを利用できます。
- 03検証に失敗すると、エラーをモデルに返して自動で再試行します。
- 04生成中のオブジェクトを部分的にストリーミングします。
- 05ネストしたモデルやモデルのリストに対応しています。
ユースケース
- 自由形式のテキストから、名前、日付、価格などの項目を抽出する。
- LLMの出力を、後続のアプリケーションコードで使える型付きデータに変換する。
- 手動で解析せずに、モデルから信頼性の高いJSONを得る必要があるパイプラインを構築する。
クイックスタート
- 1
pip でライブラリをインストールします
pip install instructor - 2
プロバイダー用のクライアントを作成し、Pydantic モデルを抽出します
使う前に知っておきたいこと
- API キー、または OpenAI、Anthropic などのプロバイダーやローカルの Ollama サーバーが必要です。
トピック
よくある質問
- instructor とは?
- 複数のプロバイダーのLLMから、Pydanticで検証済みの構造化データを取得し、検証失敗時には自動で再試行するPythonライブラリです。 Instructorは、出力形式をPydanticモデルで定義することで、LLMの応答から型付きデータを抽出します。JSON Schemaを手書きして生テキストを解析する代わりに、クライアントにresponse_modelを渡すと、検証済みのPythonオブジェクトを受け取れます。
- instructor は無料で使えますか?ライセンスは?
- instructor は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- instructor は今もメンテナンスされていますか?
- 活発にメンテナンス中。instructor の最終コミットは 2026年10月20日 です。
- instructor は何に使えますか?
- 自由形式のテキストから、名前、日付、価格などの項目を抽出する。 LLMの出力を、後続のアプリケーションコードで使える型付きデータに変換する。 手動で解析せずに、モデルから信頼性の高いJSONを得る必要があるパイプラインを構築する。
- instructor のインストール方法は?
- pip でライブラリをインストールします: pip install instructor プロバイダー用のクライアントを作成し、Pydantic モデルを抽出します
- instructor はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/567-labs/instructor
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
標準の型アノテーションを使ってJSON、MessagePack、YAML、TOMLをエンコード・デコードする、高速なPythonシリアライズ・バリデーションライブラリ。
SQLModelは、PydanticとSQLAlchemyをベースに、PythonのクラスでSQLデータベースを扱うための、FastAPIとの併用を想定したPythonライブラリです。
LLMの生成時に出力を制約し、指定した型、正規表現、JSON Schema、文法に適合させるPythonライブラリ。
LLMのプロンプトに構造化データを渡す際のトークン使用量を抑える、コンパクトで読みやすいJSONデータ向けエンコーディング。
モデル、埋め込み、ベクトルストア、サードパーティ連携の標準インターフェースを備えた、LLMアプリケーションやエージェント構築用のPythonフレームワーク。