0Pricing
AI Agents · Aula

Instructor / Outlines para estrutura garantida

Instructor (Python) e Outlines restringem a decodificação para que o modelo literalmente não possa produzir JSON inválido.

Instructor / Outlines para estrutura garantida é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

Duas bibliotecas principais

Duas abordagens principais para obter saídas estruturadas garantidas:

  • Instructor (Jason Liu) — camada Pydantic para OpenAI, Anthropic e muitos provedores
  • Outlines (.txt) — decodificação restringida para modelos 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)

A mágica do Instructor

Nos bastidores, o Instructor:

  1. Gera um esquema JSON a partir do seu modelo Pydantic
  2. Adiciona-o como ferramenta à chamada da OpenAI
  3. Força a chamada dessa ferramenta
  4. Analisa os argumentos e retorna uma instância do Pydantic
  5. Faz novas tentativas com reparo em caso de erros de validação

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 para modelos OSS

Outlines usa decodificação restringida por gramática. Ele funciona com HuggingFace, vLLM e 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')

Por que usar decodificação restringida?

Outlines identifica quais tokens são válidos em cada etapa (de acordo com o esquema) e mascara os tokens inválidos. O modelo literalmente não consegue emitir JSON inválido.

Expressão regular / escolha no Outlines

Você pode restringir a uma expressão regular ou a uma lista de escolhas:

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

Combinando ambos

Para obter a máxima confiabilidade:

  1. Use Instructor para modelos gerenciados/fechados (OpenAI, Anthropic)
  2. Use Outlines para modelos auto-hospedados
  3. Os modelos Pydantic são compartilhados entre ambos

Comparação de custos

  • Saídas Estritas (OpenAI nativo) — incluídas no preço
  • Instructor — pequena sobrecarga decorrente de novas tentativas durante a validação
  • Outlines — pequena redução na vazão devido à aplicação de máscaras, mas sem chamadas adicionais

Quando usar cada um

Caso de usoFerramenta
OpenAI/AnthropicInstructor + Pydantic
OSS auto-hospedadoOutlines
Crítico para a latênciaSaídas Estruturadas da OpenAI (nativas)

Abordagem do Outlines

Como o Outlines garante uma saída estruturada?

Recapitulação

Para OpenAI/Anthropic, use as Saídas Estruturadas nativas ou o Instructor. Para OSS, use o Outlines. Os modelos Pydantic conectam tudo.

Perguntas Frequentes

A aula “Instructor / Outlines para estrutura garantida” é grátis?

Sim — o texto completo de “Instructor / Outlines para estrutura garantida” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “Instructor / Outlines para estrutura garantida”?

Instructor (Python) e Outlines restringem a decodificação para que o modelo literalmente não possa produzir JSON inválido. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Instructor / Outlines para estrutura garantida”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Modo JSON e saídas de chamadas de ferramentas
  2. Validação de esquemas com Pydantic
  3. Loops de reparo para saídas malformadas
  4. Instructor / Outlines para estrutura garantida
← Voltar para AI Agents