0Pricing
AI Agents · Lezione

Modalità JSON e output delle tool call

Utilizzi response_format={'type':'json_object'} o una singola tool call per imporre un output analizzabile dalle macchine.

Modalità JSON e output delle tool call è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.

La necessità di una struttura

Il testo libero degli LLM è incompatibile con il codice. Gli agenti in produzione hanno bisogno di output analizzabili: JSON, XML, argomenti di funzione, mai «la risposta è...»

Modalità JSON (OpenAI)

Dica al modello «restituisci sempre JSON»:

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[
        {'role': 'system', 'content': 'Return a JSON object with name and age.'},
        {'role': 'user', 'content': 'Alice, 30 years old.'}
    ],
    response_format={'type': 'json_object'}
)
import json
data = json.loads(response.choices[0].message.content)

Limite della modalità JSON

La modalità JSON garantisce solo JSON valido, non la STRUTTURA. Il modello potrebbe restituire {} o {"foo": "bar"}. Convalidi sempre anche la struttura.

Structured Outputs (strict)

OpenAI Structured Outputs garantisce che la risposta corrisponda a uno JSON Schema:

schema = {
    'name': 'person',
    'schema': {
        'type': 'object',
        'properties': {
            'name': {'type': 'string'},
            'age': {'type': 'integer'}
        },
        'required': ['name', 'age'],
        'additionalProperties': False
    },
    'strict': True
}

response = client.chat.completions.create(
    model='gpt-4o-2024-08-06',
    messages=...,
    response_format={'type': 'json_schema', 'json_schema': schema}
)

Come funziona la modalità strict

La modalità strict vincola il decodificatore, impedendo letteralmente al modello di produrre un token non valido. L'output corrisponde al 100% allo schema.

Chiamate a strumenti come output strutturato

È possibile forzare una specifica chiamata a uno strumento per estrarre dati strutturati:

tools = [{'type': 'function', 'function': {
    'name': 'submit_person',
    'parameters': {
        'type': 'object',
        'properties': {'name': {'type': 'string'}, 'age': {'type': 'integer'}},
        'required': ['name', 'age']
    }
}}]

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=...,
    tools=tools,
    tool_choice={'type': 'function', 'function': {'name': 'submit_person'}}
)
args = json.loads(response.choices[0].message.tool_calls[0].function.arguments)

Utilizzo degli strumenti Anthropic come output

Anthropic applica lo stesso schema con tool_choice="tool":

tool_choice = {'type': 'tool', 'name': 'submit_person'}
print(tool_choice)

JSON tramite precompilazione (Anthropic)

Per usare Claude senza strumenti, precompilare il turno dell'assistente con {

messages = [
    {'role': 'user', 'content': 'Give me JSON for Alice, 30.'},
    {'role': 'assistant', 'content': '{'}
]
# Output starts with { and likely produces valid JSON.
for m in messages:
    print(f"{m['role']}: {m['content']}")
print("Output starts with { and likely produces valid JSON.")

Pydantic + modalità strict

OpenAI Python SDK offre una scorciatoia con Pydantic:

from pydantic import BaseModel

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

response = client.beta.chat.completions.parse(
    model='gpt-4o-2024-08-06',
    messages=...,
    response_format=Person
)
person = response.choices[0].message.parsed
# Pydantic instance, type-safe

Problemi comuni

  • Modalità JSON senza strict: il modello può restituire una struttura errata
  • Dimenticare additionalProperties: false in modalità strict
  • Campi obbligatori non elencati nell'array "required"
  • La modalità strict è disponibile solo da gpt-4o-2024-08-06 in poi

Costo degli output strutturati

La modalità strict comporta un sovraccarico minimo dovuto al decodificatore vincolato dalla grammatica, trascurabile rispetto al beneficio in termini di qualità. Attivarla sempre quando la struttura è importante.

Combinare con la convalida

Anche gli output strict devono essere convalidati successivamente da Pydantic. È una difesa a più livelli che rileva casi limite come gli interi fuori intervallo.

Garanzia della modalità strict

Che cosa garantisce OpenAI Structured Outputs (modalità strict)?

Riepilogo

La modalità JSON per una struttura permissiva, Strict Outputs per strutture garantite, le chiamate a strumenti per ottenere lo stesso effetto e la precompilazione Anthropic per Claude. Convalidare sempre al termine.

Domande Frequenti

La lezione «Modalità JSON e output delle tool call» è gratuita?

Sì — il testo completo di «Modalità JSON e output delle tool call» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.

Cosa imparerò in «Modalità JSON e output delle tool call»?

Utilizzi response_format={'type':'json_object'} o una singola tool call per imporre un output analizzabile dalle macchine. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Agents?

Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Modalità JSON e output delle tool call»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Agents?

Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Modalità JSON e output delle tool call
  2. Convalida dello schema Pydantic
  3. Cicli di correzione per output non validi
  4. Instructor / Outlines per una struttura garantita
← Torna a AI Agents