0Pricing
AI Agents · レッスン

Instructor / Outlinesによる構造の保証

Instructor(Python)とOutlinesでデコードを制約し、モデルが不正なJSONを文字どおり生成できないようにします。

「Instructor / Outlinesによる構造の保証」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

主要な 2 つのライブラリ

保証付きの構造化出力を実現する代表的なアプローチは 2 つあります:

  • Instructor(Jason Liu) — OpenAI、Anthropic、その他多数のプロバイダー向けの Pydantic ラッパー
  • Outlines(.txt) — OSS モデル向けの制約付きデコーディング

Instructor Basics

# pip install instructor openai
import instructor
from openai import OpenAI
from pydantic import BaseModel

client = instructor.from_openai(OpenAI())

class User(BaseModel):
    name: str
    age: int

user = client.chat.completions.create(
    model='gpt-4o-mini',
    response_model=User,
    messages=[{'role': 'user', 'content': 'Alice, 30'}]
)
print(user.name, user.age)

Instructor の仕組み

内部では、Instructor は次の処理を行います:

  1. Pydantic モデルから JSON Schema を生成する
  2. それを OpenAI の呼び出しにツールとして追加する
  3. そのツールが呼び出されるよう強制する
  4. 引数をパースして Pydantic インスタンスを返す
  5. バリデーションエラーが発生した場合は、修復してリトライする

Instructor with Validation

from pydantic import field_validator

class User(BaseModel):
    name: str
    age: int

    @field_validator('age')
    @classmethod
    def positive(cls, v):
        if v <= 0:
            raise ValueError('Age must be positive')
        return v

# Instructor catches ValidationError and retries automatically

Streaming Instructor

for partial in client.chat.completions.create_partial(
    model='gpt-4o-mini',
    response_model=User,
    messages=[{'role': 'user', 'content': 'Alice, 30'}]
):
    print(partial)
# Streams partial Pydantic instances as fields fill in.

Instructor with Anthropic

from anthropic import Anthropic
client = instructor.from_anthropic(Anthropic())

user = client.messages.create(
    model='claude-sonnet-4-5',
    max_tokens=1024,
    response_model=User,
    messages=[{'role': 'user', 'content': 'Alice, 30'}]
)

OSS モデル向け Outlines

Outlines は文法制約付きデコーディングを使用します。HuggingFace、vLLM、llama.cpp で動作します:

# pip install outlines
import outlines

model = outlines.models.transformers('mistralai/Mistral-7B-Instruct-v0.2')

generator = outlines.generate.json(model, User)
user = generator('Alice, 30')

なぜ制約付きデコーディングなのか

Outlines は、スキーマに基づいて各ステップで有効なトークンを判断し、無効なトークンをマスクします。モデルは文字どおり無効な JSON を出力できません。

Outlines の正規表現と選択肢

正規表現または選択肢のリストに制約できます:

import outlines.text.generate as g
yes_no = g.choice(model, ['yes', 'no'])
result = yes_no('Are bananas fruits?')   # 'yes'

両方を組み合わせる

最大限の信頼性を得るには:

  1. マネージドモデルまたはクローズドモデル(OpenAI、Anthropic)には Instructor を使用する
  2. 自前ホストのモデルには Outlines を使用する
  3. 両方で Pydantic モデルを共有する

コスト比較

  • Strict Outputs(OpenAI ネイティブ) — 料金に含まれます
  • Instructor — バリデーション時のリトライによるわずかなオーバーヘッドがあります
  • Outlines — マスク処理によってスループットがわずかに低下しますが、追加の呼び出しはありません

どれを使うべきか

用途ツール
OpenAI/AnthropicInstructor + Pydantic
自前ホストの OSSOutlines
レイテンシー重視OpenAI Structured Outputs(ネイティブ)

Outlines のアプローチ

Outlines はどのように構造化出力を保証しますか?

まとめ

OpenAI と Anthropic には、ネイティブの Structured Outputs または Instructor を使用します。OSS には Outlines を使用します。Pydantic モデルがすべてをつなぎます。

よくある質問

「Instructor / Outlinesによる構造の保証」レッスンは無料ですか?

はい。「Instructor / Outlinesによる構造の保証」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。

「Instructor / Outlinesによる構造の保証」で何を学びますか?

Instructor(Python)とOutlinesでデコードを制約し、モデルが不正なJSONを文字どおり生成できないようにします。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Agentsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Instructor / Outlinesによる構造の保証」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Agentsレッスンでコードを書いて実行できますか?

はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. JSON ModeとTool-Call出力
  2. Pydanticスキーマ検証
  3. 不正な出力の修復ループ
  4. Instructor / Outlinesによる構造の保証
← AI Agentsに戻る