AI-agenter · Lektion

Utdataformatering (JSON, XML, Markdown)

Tvinga modellen att returnera strukturer som går att tolka genom att använda JSON-läge, XML-taggar eller strikt Markdown, så att utdata blir maskinläsbar.

Lektion 3 av 413 steg

Utdataformatering (JSON, XML, Markdown) är en gratis lektion i AI-agenter på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för AI-agenter, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AI-agenter innehåller totalt 4 lektioner.

Varför formatet spelar roll

Agenter skickar modellens utdata vidare till kod. Fritt formulerad text förstör parsrar. Strukturerad utdata (JSON, XML med mera) är obligatorisk för alla produktionsagenter.

JSON-läge

OpenAI och de flesta leverantörer erbjuder ett JSON-läge som garanterar parsbar utdata:

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)

Structured Outputs (strikt schema)

OpenAI Structured Outputs tar emot ett JSON Schema och garanterar att utdata matchar 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-taggar (Anthropic-stil)

Anthropic rekommenderar XML-taggar som det mest tillförlitliga formateringssättet för 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 för människor

Använd Markdown när utdata går direkt till en människa (chattgränssnitt, dokumentation).

Undvik Markdown när utdata skickas vidare till kod — Markdown är svårt att parsa robust.

Välj rätt format för varje mottagare

  • JSON — ska in i er kod
  • XML — ska in i er kod, särskilt med Claude
  • Markdown — ska visas i ett mänskligt gränssnitt
  • Ren text — ska skickas till en annan LLM

Visa, berätta inte bara

Inkludera alltid ett konkret exempel på den önskade utdata i prompten:

system = '''
Return a JSON object like:
{
  "action": "reply",
  "content": "Hi there!",
  "confidence": 0.95
}
'''
print(system.strip())

Tvinga fram den första token

Med Anthropic kan ni förifylla assistant-turen med { eller [ för att tvinga fram 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.')

Hantera efterföljande skräp

Även med JSON-läge lägger modeller ibland till prefixet "Visst! Här är JSON-objektet:". Robusta parsrar:

  1. Leta efter den första { eller [
  2. Räkna klamrar och hakparenteser för att hitta den matchande avslutningen
  3. Parsa endast det utsnittet

Reparationsprompter

Om parsningen misslyckas skickar ni tillbaka den trasiga utdata till modellen och ber den rätta till den:

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 för validering

Validera den parsade dict-strukturen med en Pydantic-modell — typkontrollera fält och generera ett fel om något saknas.

from pydantic import BaseModel

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

person = Person.model_validate_json(response_text)
print(person.name, person.age)

Bästa formatet för kod

Ni skickar utdata vidare till Python. Vilket format är mest tillförlitligt?

Sammanfattning

Tre regler:

  1. Välj ett format som passar mottagaren
  2. Visa ett exempel, beskriv det inte bara
  3. Validera varje svar och ha en väg för reparation
Gratis att börja

Lär dig AI-agenter med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
60
Lektioner
239

Vanliga frågor

Är lektionen ”Utdataformatering (JSON, XML, Markdown)” gratis?

Ja – hela texten till ”Utdataformatering (JSON, XML, Markdown)” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i AI-agenter, kan Ni uppgradera till CoddyKit PRO. Kursen i AI-agenter innehåller totalt 4 lektioner.

Vad lär jag mig i ”Utdataformatering (JSON, XML, Markdown)”?

Tvinga modellen att returnera strukturer som går att tolka genom att använda JSON-läge, XML-taggar eller strikt Markdown, så att utdata blir maskinläsbar. Ni övar på AI-agenter med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig AI-agenter?

Du behöver inga förkunskaper. Utbildningen i AI-agenter på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Utdataformatering (JSON, XML, Markdown)”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här AI-agenter-lektionen?

Ja. Varje AI-agenter-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Zero-shot, few-shot och chain-of-thought
  2. System- kontra användar- och assistentroller
  3. Utdataformatering (JSON, XML, Markdown)
  4. Undvik prompt injection i indata
← Tillbaka till AI-agenter