Formattazione dell'output (JSON, XML, Markdown)
Obblighi il modello a restituire strutture analizzabili usando la modalità JSON, tag XML o Markdown rigoroso, così da rendere l'output leggibile dalle macchine.
Formattazione dell'output (JSON, XML, Markdown) è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 3 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.
Perché il formato è importante
Gli agenti passano l'output del modello al codice. La prosa libera manda in crisi i parser. L'output strutturato (JSON, XML e così via) è indispensabile per qualsiasi agente in produzione.
Modalità JSON
OpenAI e la maggior parte dei provider offrono una modalità JSON che garantisce un output analizzabile:
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
response_format={'type': 'json_object'},
)
import json
data = json.loads(response.choices[0].message.content)Output strutturati (schema rigido)
Structured Outputs di OpenAI riceve uno JSON Schema e garantisce che l'output lo rispetti:
schema = {
'name': 'extract_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=messages,
response_format={'type': 'json_schema', 'json_schema': schema}
)Tag XML (stile Anthropic)
Anthropic consiglia i tag XML come formato più affidabile per Claude:
system = '''
Return your answer wrapped in XML tags:
<reasoning>Your step-by-step thinking</reasoning>
<answer>The final answer</answer>
'''
# Parse with a simple regex or BeautifulSoup
import re
ans = re.search(r'<answer>(.*?)</answer>', text, re.S).group(1)Markdown per le persone
Utilizzi Markdown quando l'output viene mostrato direttamente a una persona (interfaccia di chat, documentazione).
Eviti Markdown quando passa l'output al codice: Markdown è difficile da analizzare in modo affidabile.
Scelga il formato giusto per ogni destinatario
- JSON — quando entra nel codice
- XML — quando entra nel codice, soprattutto con Claude
- Markdown — quando viene mostrato in un'interfaccia per persone
- Testo semplice — quando viene inviato a un altro LLM
Mostri, non si limiti a dire
Includa sempre nel prompt un esempio letterale dell'output desiderato:
system = '''
Return a JSON object like:
{
"action": "reply",
"content": "Hi there!",
"confidence": 0.95
}
'''
print(system.strip())
Forzi il primo token
Con Anthropic, precompili il turno dell'assistant con { o [ per forzare l'output JSON:
messages = [
{'role': 'user', 'content': 'Return JSON with name and age.'},
{'role': 'assistant', 'content': '{'}
]
# Output will start at '{ "name": ...' guaranteed.
for m in messages:
print(f"{m['role']}: {m['content']}")
print('Output will start at \'{ "name": ...\' guaranteed.')
Gestisca il testo superfluo finale
Anche con la modalità JSON, a volte i modelli aggiungono il prefisso "Certo! Ecco il JSON:". I parser robusti:
- Cercano il primo
{o[ - Contano le parentesi per trovare quella di chiusura corrispondente
- Analizzano solo quella porzione
Prompt di correzione
Se l'analisi non riesce, invii l'output non valido al modello e chieda di correggerlo:
repair_prompt = f'''
The previous output failed to parse with error: {error}.
Return ONLY a valid JSON object matching the schema. No prose.
Previous output:
{bad_output}
'''Pydantic per la validazione
Convalidi il dict analizzato con un modello Pydantic: verifichi i tipi dei campi e generi un errore se ne manca uno.
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
person = Person.model_validate_json(response_text)
print(person.name, person.age)Il formato migliore per il codice
Sta passando l'output a Python. Quale formato è più affidabile?
Riepilogo
Tre regole:
- Scelga un formato adatto al destinatario
- Mostri un esempio, senza limitarsi a descriverlo
- Convalidi ogni risposta e predisponga una procedura di correzione
Domande Frequenti
La lezione «Formattazione dell'output (JSON, XML, Markdown)» è gratuita?
Sì — il testo completo di «Formattazione dell'output (JSON, XML, Markdown)» è 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 «Formattazione dell'output (JSON, XML, Markdown)»?
Obblighi il modello a restituire strutture analizzabili usando la modalità JSON, tag XML o Markdown rigoroso, così da rendere l'output leggibile 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 3 di 4.
Quanto tempo richiede la lezione «Formattazione dell'output (JSON, XML, Markdown)»?
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
- Zero-shot, few-shot e chain-of-thought
- Ruoli di sistema, utente e assistente a confronto
- Formattazione dell'output (JSON, XML, Markdown)
- Come evitare la prompt injection negli input