一文定義
Pydanticモデルを使ってLLMに構造化データを出力させるPythonライブラリ。型安全なLLM出力パーシングを実現し、自動リトライも搭載。
詳細解説
Instructorとは、Jason Liuが開発したPythonライブラリで、Pydanticのデータモデルを使ってLLMに構造化されたデータを出力させることに特化しています。「LLMをPythonの関数として扱う」という設計思想のもと、型安全なLLM出力を最小限のコードで実現できます。OpenAI・Anthropic・Google・Cohere・Ollama等の主要LLMプロバイダーに対応しています。
基本的な使い方として、Pydanticモデルでほしいデータ構造を定義し、`client = instructor.from_openai(OpenAI())` でインストラクター対応クライアントを作成した後、`client.chat.completions.create(response_model=MyModel, messages=[...])` を呼び出すだけで、LLMの出力がMyModelのインスタンスとして直接返されます。Function CallingまたはJSON Modeを内部で自動選択して構造化出力を取得します。
主要機能として、(1)型安全な出力:Pydanticの型アノテーション・バリデーターを活用し、整数・文字列・列挙型・ネストされたオブジェクト・リスト等の複雑なデータ構造を安全に受け取れる、(2)自動リトライ(Auto-retry):LLMが不正なJSONや型検証エラーのある出力を返した場合、エラーメッセージをプロンプトに含めて自動的に再試行し、有効な出力が得られるまでループ、(3)Partial Streaming:Pydanticモデルを段階的にストリーミング補完し、フィールドが確定したタイミングで逐次処理できる、(4)マルチプロバイダー対応:`instructor.from_anthropic()`・`instructor.from_google()`等で各プロバイダーの最適な構造化出力方法(Function Calling・JSON Mode等)を自動選択があります。
ユースケースとして、情報抽出(ニュース記事からのエンティティ抽出)・分類(感情分析・カテゴリ分類)・データ変換(非構造化テキストをデータベースレコードに変換)・フォーム自動入力等で広く活用されています。
参考情報・出典
- ▸Instructor Official Documentation— Instructor(参照日: 2026-02-26)
- ▸instructor – GitHub— Jason Liu(参照日: 2026-02-26)