実装

Instructor

インストラクター

一文定義

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等)を自動選択があります。

ユースケースとして、情報抽出(ニュース記事からのエンティティ抽出)・分類(感情分析・カテゴリ分類)・データ変換(非構造化テキストをデータベースレコードに変換)・フォーム自動入力等で広く活用されています。

参考情報・出典

最終更新: 2026-02-26← 用語集一覧へ

AIスキルだけでなく、自分と未来を再設計する

生成AI活用力を体系的に習得し、自己理解・キャリアデザインを深め、志を同じくする仲間と共に学ぶ場がここにあります。

AIリブートアカデミーを見る