Formatação da saída (JSON, XML, Markdown)
Force o modelo a retornar estruturas analisáveis usando o modo JSON, tags XML ou Markdown rigoroso, tornando as saídas legíveis por máquinas.
Formatação da saída (JSON, XML, Markdown) é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 3 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.
Por que o formato importa
Os agentes encaminham a saída do modelo para o código. Prosa livre quebra os analisadores. Uma saída estruturada (JSON, XML etc.) é obrigatória para qualquer agente em produção.
Modo JSON
OpenAI e a maioria dos provedores oferecem um modo JSON que garante uma saída analisável:
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)Saídas estruturadas (esquema rígido)
OpenAI Structured Outputs recebe um esquema JSON e garante que a saída corresponda a ele:
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}
)Tags XML (estilo Anthropic)
Anthropic recomenda tags XML como a formatação mais confiável para 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 para seres humanos
Use Markdown quando a saída for diretamente para uma pessoa (interface de conversa, documentação).
Evite Markdown ao encaminhar a saída para o código — é difícil analisar Markdown de maneira robusta.
Escolha o formato certo para cada consumidor
- JSON — quando for para o seu código
- XML — quando for para o seu código, especialmente com Claude
- Markdown — quando for para uma interface usada por pessoas
- Texto simples — quando for para outro LLM
Mostre, não apenas diga
Sempre inclua na sua instrução um exemplo literal da saída desejada:
system = '''
Return a JSON object like:
{
"action": "reply",
"content": "Hi there!",
"confidence": 0.95
}
'''
print(system.strip())
Force o primeiro token
Com Anthropic, preencha previamente o turno do assistente com { ou [ para forçar uma saída 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.')
Lide com conteúdo extra no final
Mesmo com o modo JSON, às vezes os modelos adicionam um prefixo como "Claro! Aqui está o JSON:". Analisadores robustos:
- Procuram o primeiro
{ou[ - Contam chaves e colchetes para encontrar o fechamento correspondente
- Analisam apenas esse trecho
Instruções de reparo
Se a análise falhar, envie a saída incorreta de volta ao modelo e peça uma correção:
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 para validação
Valide o dicionário analisado com um modelo Pydantic — verifique os tipos dos campos e gere um erro quando algum estiver ausente.
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
person = Person.model_validate_json(response_text)
print(person.name, person.age)Melhor formato para código
Você está encaminhando a saída para Python. Qual formato é mais confiável?
Recapitulação
Três regras:
- Escolha um formato compatível com o consumidor
- Mostre um exemplo, não apenas o descreva
- Valide cada resposta e tenha um caminho de reparo
Perguntas Frequentes
A aula “Formatação da saída (JSON, XML, Markdown)” é grátis?
Sim — o texto completo de “Formatação da saída (JSON, XML, Markdown)” é 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 “Formatação da saída (JSON, XML, Markdown)”?
Force o modelo a retornar estruturas analisáveis usando o modo JSON, tags XML ou Markdown rigoroso, tornando as saídas legíveis por máquinas. 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 3 de 4.
Quanto tempo leva a aula “Formatação da saída (JSON, XML, Markdown)”?
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
- Zero-shot, few-shot e cadeia de pensamento
- Papéis de sistema, usuário e assistente
- Formatação da saída (JSON, XML, Markdown)
- Como evitar injeção de prompt nas entradas