Formatering av utdata (JSON, XML, Markdown)
Tving modellen til å returnere strukturer som kan tolkes av maskiner, ved å bruke JSON-modus, XML-tagger eller strikt Markdown.
Formatering av utdata (JSON, XML, Markdown) er en gratis leksjon i AI-agenter på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AI-agenter, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AI-agenter inneholder totalt 4 leksjoner.
Hvorfor formatet er viktig
Agenter sender modellens utdata videre til kode. Frittstående prosa ødelegger parsere. Strukturert utdata (JSON, XML osv.) er obligatorisk for alle agenter i produksjon.
JSON-modus
OpenAI og de fleste leverandører tilbyr en JSON-modus som garanterer utdata som kan parses:
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)Strukturert utdata (strengt skjema)
OpenAI Structured Outputs tar imot et JSON Schema og garanterer at utdataene samsvarer med det:
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}
)XML-tagger (Anthropic-stil)
Anthropic anbefaler XML-tagger som den mest pålitelige formateringen for 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 for mennesker
Bruk Markdown når utdataene går direkte til et menneske (chatgrensesnitt, dokumentasjon).
Unngå Markdown når utdataene sendes videre til kode — Markdown er vanskelig å parse robust.
Velg riktig format for mottakeren
- JSON — skal inn i koden
- XML — skal inn i koden, særlig med Claude
- Markdown — skal vises i et menneskelig grensesnitt
- Ren tekst — skal sendes til en annen LLM
Vis, ikke bare fortell
Ta alltid med et konkret eksempel på ønsket utdata i prompten:
system = '''
Return a JSON object like:
{
"action": "reply",
"content": "Hi there!",
"confidence": 0.95
}
'''
print(system.strip())
Tving frem det første tokenet
Med Anthropic kan du forhåndsutfylle assistentturen med { eller [ for å tvinge frem JSON-utdata:
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.')
Håndter overflødig tekst
Selv med JSON-modus legger modeller noen ganger til prefikset «Sure! Here is the JSON:». Robuste parsere:
- Finn den første
{eller[ - Tell klammeparenteser for å finne den tilhørende avsluttende parentesen
- Parse bare dette utsnittet
Reparasjonsmeldinger
Hvis parsing mislykkes, sender du de ødelagte utdataene tilbake til modellen og ber om en reparasjon:
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 for validering
Valider den parsede dict-en med en Pydantic-modell — typesjekk feltene og kast en feil hvis noe mangler.
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
person = Person.model_validate_json(response_text)
print(person.name, person.age)Beste format for kode
Du sender utdata videre til Python. Hvilket format er mest pålitelig?
Oppsummering
Tre regler:
- Velg et format som passer mottakeren
- Vis et eksempel, ikke bare beskriv det
- Valider hvert svar og ha en reparasjonsmekanisme
Lær deg AI-agenter med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 60
- Leksjoner
- 239
Ofte stilte spørsmål
Er leksjonen «Formatering av utdata (JSON, XML, Markdown)» gratis?
Ja – hele teksten i «Formatering av utdata (JSON, XML, Markdown)» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av AI-agenter-kurset, kan du oppgradere til CoddyKit PRO. Kurset i AI-agenter inneholder totalt 4 leksjoner.
Hva lærer jeg i «Formatering av utdata (JSON, XML, Markdown)»?
Tving modellen til å returnere strukturer som kan tolkes av maskiner, ved å bruke JSON-modus, XML-tagger eller strikt Markdown. Du øver på AI-agenter med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med AI-agenter?
Ingen tidligere erfaring er nødvendig. AI-agenter på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Formatering av utdata (JSON, XML, Markdown)»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne AI-agenter-leksjonen?
Ja. Alle AI-agenter-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Zero-shot, few-shot og chain-of-thought
- System- versus bruker- versus assistentroller
- Formatering av utdata (JSON, XML, Markdown)
- Unngå prompt-injection i inndata