0Pricing
AI Agents · Lekcja

Instructor / Outlines dla gwarantowanej struktury

Instructor (Python) i Outlines ograniczają dekodowanie, dzięki czemu model dosłownie nie może wygenerować nieprawidłowego JSON-a.

Instructor / Outlines dla gwarantowanej struktury to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Dwie główne biblioteki

Dwa wiodące podejścia do gwarantowania danych strukturalnych:

  • Instructor (Jason Liu) — opakowanie Pydantic dla OpenAI, Anthropic i wielu innych dostawców
  • Outlines (.txt) — dekodowanie ograniczone dla modeli 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)

Magia Instructor

W tle Instructor:

  1. Generuje JSON Schema na podstawie modelu Pydantic
  2. Dodaje go jako narzędzie do wywołania OpenAI
  3. Wymusza wywołanie tego narzędzia
  4. Parsuje argumenty i zwraca instancję Pydantic
  5. Ponawia próbę z naprawą w przypadku błędów walidacji

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'}]
)

Outlines dla modeli OSS

Outlines używa dekodowania ograniczonego gramatyką. Działa z HuggingFace, vLLM i 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')

Dlaczego dekodowanie ograniczone?

Outlines określa, które tokeny są dozwolone na każdym kroku (zgodnie ze schematem), i maskuje tokeny niedozwolone. Model dosłownie nie może wygenerować nieprawidłowego JSON.

Wyrażenia regularne i wybór w Outlines

Można ograniczyć wynik do wyrażenia regularnego albo listy możliwości:

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

Łączenie obu podejść

Aby uzyskać maksymalną niezawodność:

  1. Należy używać Instructor dla zarządzanych lub zamkniętych modeli (OpenAI, Anthropic)
  2. Należy używać Outlines dla modeli hostowanych samodzielnie
  3. Modele Pydantic są współdzielone przez oba rozwiązania

Porównanie kosztów

  • Strict Outputs (natywne rozwiązanie OpenAI) — zawarte w cenie
  • Instructor — niewielki narzut wynikający z ponowień prób po walidacji
  • Outlines — niewielki spadek przepustowości z powodu maskowania, ale bez dodatkowych wywołań

Kiedy używać którego rozwiązania

Przypadek użyciaNarzędzie
OpenAI/AnthropicInstructor + Pydantic
Samodzielnie hostowane OSSOutlines
Ścieżki o krytycznym znaczeniu dla opóźnieńOpenAI Structured Outputs (natywne)

Podejście Outlines

W jaki sposób Outlines gwarantuje dane strukturalne?

Podsumowanie

W przypadku OpenAI i Anthropic należy używać natywnego Structured Outputs albo Instructor. W przypadku OSS należy używać Outlines. Modele Pydantic łączą wszystkie te elementy.

Często zadawane pytania

Czy lekcja „Instructor / Outlines dla gwarantowanej struktury” jest bezpłatna?

Tak — pełny tekst „Instructor / Outlines dla gwarantowanej struktury” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.

Co nauczysz się w „Instructor / Outlines dla gwarantowanej struktury”?

Instructor (Python) i Outlines ograniczają dekodowanie, dzięki czemu model dosłownie nie może wygenerować nieprawidłowego JSON-a. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Agents?

Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Instructor / Outlines dla gwarantowanej struktury”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?

Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tryb JSON i wyniki wywołań narzędzi
  2. Walidacja schematów Pydantic
  3. Pętle naprawcze dla nieprawidłowych danych wyjściowych
  4. Instructor / Outlines dla gwarantowanej struktury
← Powrót do AI Agents