0Pricing
AI Agents · Lección

Instructor / Outlines para garantizar la estructura

Instructor (Python) y Outlines restringen la decodificación para que el modelo no pueda generar literalmente un JSON no válido.

Instructor / Outlines para garantizar la estructura es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

Dos bibliotecas principales

Dos enfoques destacados para obtener salidas estructuradas garantizadas:

  • Instructor (Jason Liu): envoltorio de Pydantic para OpenAI, Anthropic y muchos otros proveedores
  • Outlines (.txt): decodificado restringido para modelos de código abierto

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)

La magia de Instructor

Internamente, Instructor:

  1. Genera un JSON Schema a partir de su modelo de Pydantic
  2. Lo añade como herramienta a la llamada a OpenAI
  3. Fuerza la llamada a esa herramienta
  4. Analiza los argumentos y devuelve una instancia de Pydantic
  5. Reintenta la operación reparando los errores de validación

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 de código abierto

Outlines utiliza decodificado restringido por gramática. Funciona con HuggingFace, vLLM y 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 qué usar decodificado restringido?

Outlines determina qué tokens son válidos en cada paso según el esquema y enmascara los tokens no válidos. El modelo literalmente no puede emitir JSON no válido.

Expresiones regulares y opciones en Outlines

Puede restringir la salida a una expresión regular o a una lista de opciones:

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

Combinar ambos

Para obtener la máxima fiabilidad:

  1. Use Instructor para modelos gestionados o cerrados (OpenAI, Anthropic)
  2. Use Outlines para modelos alojados por usted
  3. Comparta los modelos de Pydantic entre ambos

Comparación de costes

  • Structured Outputs (nativas de OpenAI): incluidas en el precio
  • Instructor: pequeña sobrecarga por los reintentos tras la validación
  • Outlines: ligera reducción del rendimiento por el enmascaramiento, pero sin llamadas adicionales

Cuándo usar cada opción

Caso de usoHerramienta
OpenAI/AnthropicInstructor + Pydantic
OSS alojado por ustedOutlines
Latencia críticaOpenAI Structured Outputs (nativas)

Enfoque de Outlines

¿Cómo garantiza Outlines las salidas estructuradas?

Resumen

Para OpenAI y Anthropic, use Structured Outputs nativas o Instructor. Para modelos de código abierto, use Outlines. Los modelos de Pydantic lo conectan todo.

Preguntas frecuentes

¿La lección «Instructor / Outlines para garantizar la estructura» es gratis?

Sí — el texto completo de «Instructor / Outlines para garantizar la estructura» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.

¿Qué aprenderé en «Instructor / Outlines para garantizar la estructura»?

Instructor (Python) y Outlines restringen la decodificación para que el modelo no pueda generar literalmente un JSON no válido. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Agents?

No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Instructor / Outlines para garantizar la estructura»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Agents?

Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Modo JSON y salidas de llamadas a herramientas
  2. Validación de esquemas con Pydantic
  3. Bucles de reparación para salidas malformadas
  4. Instructor / Outlines para garantizar la estructura
← Volver a AI Agents