AI-prompt engineering · leksjon

Mønsteret topptekst–brødtekst–bunntekst

En konsekvent ledetekststruktur som kan skaleres til komplekse oppgaver med flere deler.

Leksjon 3 av 413 trinn

Mønsteret topptekst–brødtekst–bunntekst er en gratis leksjon i AI-prompt engineering på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AI-prompt engineering, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AI-prompt engineering inneholder totalt 4 leksjoner.

Prompter som dokumenter

Lengre dokumenter – rapporter, artikler og e-poster – bruker en struktur med topptekst, hoveddel og bunntekst fordi den gjør det enkelt å orientere seg. Leserne vet hva de kan forvente i hver del.

Det samme prinsippet gjelder for prompter. Når prompter blir lengre enn noen få setninger, gjør en struktur med topptekst, hoveddel og bunntekst dem enklere å skanne, vedlikeholde og holde konsekvente.

Mønsteret fungerer på tvers av modeller og kan skaleres fra enkle til svært komplekse prompter.

Topptekstseksjonen

Toppteksten svarer på to spørsmål: Hvem er du? og Hva er oppgaven?

Den angir modellens identitet (persona eller rolle) og beskriver promptens hovedmål. Alt annet bygger på dette grunnlaget.

En god topptekst er kortfattet – vanligvis 2–4 setninger. Den inneholder ikke eksempler, begrensninger eller utdataregler.

header = '''
<header>
You are an expert technical writer specializing in API documentation.
Your task is to write clear, developer-friendly documentation
for the API endpoint described in the body of this prompt.
</header>
'''

print(header)

Hoveddelsseksjonen

Hoveddelen inneholder innholdet eller konteksten modellen trenger for å utføre oppgaven. Dette er den viktigste datasonen:

  • kildedokumenter som skal behandles
  • samtalehistorikk
  • strukturerte data (JSON, CSV-utdrag)
  • referansemateriale
  • brukerens faktiske inndata

Hoveddelen er den største seksjonen og settes oftest inn dynamisk ved kjøring.

def build_body(endpoint_spec):
    return f'''
<body>
<endpoint_specification>
{endpoint_spec}
</endpoint_specification>
</body>
'''

spec = 'POST /api/v2/users\nRequest body: {email: string, role: admin|user}\nReturns: {id: string, created_at: ISO8601}'
print(build_body(spec))

Bunntekstseksjonen

Bunnteksten inneholder formateringsinstruksjoner og utdataformatet. Den kommer sist fordi:

  • modellen leser ovenfra og ned og bruker formateringsreglene på det den nettopp har behandlet
  • formateringsinstruksjoner nær slutten har mindre risiko for å bli ignorert
  • bunnteksten kan ofte gjenbrukes i prompter med samme utdatatype

Bunnteksten bør være tydelig: Returner et JSON-objekt med disse feltene, ikke formater det pent.

footer = '''
<footer>
Format your response as a JSON object with these fields:
{
  "endpoint": "string",
  "summary": "string (one sentence)",
  "parameters": [{"name": "string", "type": "string", "required": true|false, "description": "string"}],
  "response_example": "string (JSON)",
  "error_codes": [{"code": "number", "meaning": "string"}]
}
Do not include any text outside the JSON object.
</footer>
'''

print(footer)

Sette sammen hele mønsteret

Ved å kombinere topptekst, hoveddel og bunntekst til en komplett, gjenbrukbar promptfunksjon:

def build_api_doc_prompt(endpoint_spec):
    header = '<header>\nYou are an expert technical writer. Document the API endpoint in the body.\n</header>'
    body = f'<body>\n<endpoint>\n{endpoint_spec}\n</endpoint>\n</body>'
    footer = '<footer>\nReturn JSON: {"summary": str, "parameters": [...], "response_example": str}\nNo text outside JSON.\n</footer>'
    return '\n\n'.join([header, body, footer])

spec = 'GET /api/products/:id\nReturns product details by ID'
print(build_api_doc_prompt(spec))

Hvorfor denne rekkefølgen fungerer

Rekkefølgen med topptekst, hoveddel og bunntekst speiler hvordan modeller behandler kontekst:

  1. Topptekst først — etablerer identitet og mål og forbereder modellen på det som følger
  2. Hoveddel deretter — modellen behandler nå innholdet gjennom perspektivet til den etablerte rollen og oppgaven
  3. Bunntekst til slutt — formateringsinstruksjonene kommer rett før modellen genererer svaret sitt, noe som maksimerer deres innflytelse på utdatastrukturen

Hvis du plasserer formateringsinstruksjonene i toppteksten (først), blir de delvis glemt innen modellen skriver svaret sitt.

Skalering til komplekse prompt

Header/Body/Footer-mønsteret skalerer naturlig når promptene blir komplekse:

def build_complex_prompt(persona, task, context_docs, constraints, output_schema):
    header = f'<header>\n{persona}\nTask: {task}\n</header>'

    docs = '\n'.join(f'<document id="{i+1}">\n{d}\n</document>' for i, d in enumerate(context_docs))
    body = f'<body>\n{docs}\n</body>'

    constraint_list = '\n'.join(f'- {c}' for c in constraints)
    footer = f'<footer>\n<constraints>\n{constraint_list}\n</constraints>\n<output_schema>\n{output_schema}\n</output_schema>\n</footer>'

    return '\n\n'.join([header, body, footer])

Gjenbruk av Footer-maler

Fordi Footer definerer utdatastrukturen, er den den mest gjenbrukbare delen. Vanlige Footer-maler:

FOOTER_JSON = '<footer>\nReturn a valid JSON object. No text outside JSON. No markdown code fences.\n</footer>'

FOOTER_MARKDOWN = '<footer>\nFormat your response as markdown.\nUse ## for section headers.\nUse bullet points for lists.\nMaximum 500 words.\n</footer>'

FOOTER_STRUCTURED = '<footer>\nRespond using this exact structure:\n1. Summary (1 sentence)\n2. Key Findings (bullet list)\n3. Recommendation (1 paragraph)\n</footer>'

print('Footer templates ready for reuse.')

Sette inn dynamisk innhold i Body

Body er den delen som oftest bygges dynamisk under kjøring. Beste praksis for dynamisk innsetting i Body:

  • Pakk alltid inn innhold som settes inn, i navngitte XML-tagger
  • Sanitér brukerinput før innsetting for å hindre prompt injection
  • Trunker svært lange dokumenter, og noter trunkeringen i Body
  • Merk hver del som settes inn, tydelig (document_1, user_query, chat_history)
def safe_inject(user_content, max_chars=3000):
    safe = user_content.replace('<', '&lt;').replace('>', '&gt;')
    if len(safe) > max_chars:
        safe = safe[:max_chars] + '... [TRUNCATED]'
    return f'<user_input>\n{safe}\n</user_input>'

raw = 'User provided text here. Could be very long.'
print(safe_inject(raw))

Konsistent struktur på tvers av kodebasen

Den virkelige styrken ved Header/Body/Footer viser seg når hele applikasjonen bruker det samme mønsteret konsekvent. Fordeler:

  • Nye teammedlemmer forstår enhver prompt umiddelbart
  • Det blir enklere å gjennomgå prompten i kodegjennomganger — gjennomgåerne vet nøyaktig hvor de skal lete
  • Automatiserte tester kan validere hver del uavhengig
  • Det er enkelt å migrere prompten mellom modeller — bare innholdet endres, ikke strukturen

Vanlige feil i Header/Body/Footer

Feil som svekker mønsterets effektivitet:

  • Formatinstruksjoner i Header — for langt fra genereringen av svaret; modellen ignorerer dem delvis
  • Oppgavebeskrivelsen gjemt i Body — modellen kan oppfatte den som data som skal behandles, ikke som en instruks
  • Begrensninger fordelt på flere deler — vanskelig å kontrollere, og fører til motsigelser
  • Ingen Footer — utdatastrukturen blir uforutsigbar når prompten blir mer kompleks

Hurtigsjekk

Hvor skal instruksjoner om utdataformat plasseres i Header/Body/Footer-mønsteret, og hvorfor?

Header/Body/Footer – viktigste punkter

Header/Body/Footer-mønsteret gir promptutvikling den samme disiplinen som dokumentstruktur:

  • Header: Hvem du er + oppgaven — setter rammen for alt som følger
  • Body: Innhold og kontekst — settes inn dynamisk og pakkes inn i semantiske XML-tagger
  • Footer: Formatinstruksjoner og utdatastruktur — plasseres sist for størst mulig innflytelse på utdatastrukturen
  • Mønsteret skalerer naturlig fra enkle til svært komplekse prompt
  • Footer-maler kan gjenbrukes på tvers av prompt med samme utdatatypen
  • Konsistens i kodebasen gjør promptene enklere å gjennomgå, teste og vedlikeholde
Gratis å komme i gang

Lær deg AI-prompt engineering 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
53
Leksjoner
199

Ofte stilte spørsmål

Er leksjonen «Mønsteret topptekst–brødtekst–bunntekst» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien AI-prompt engineering, inkludert «Mønsteret topptekst–brødtekst–bunntekst», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i AI-prompt engineering inneholder totalt 4 leksjoner.

Hva lærer jeg i «Mønsteret topptekst–brødtekst–bunntekst»?

En konsekvent ledetekststruktur som kan skaleres til komplekse oppgaver med flere deler. Du øver på AI-prompt engineering 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-prompt engineering?

Ingen tidligere erfaring er nødvendig. AI-prompt engineering 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 «Mønsteret topptekst–brødtekst–bunntekst»?

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-prompt engineering-leksjonen?

Ja. Alle AI-prompt engineering-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

  1. Bruke XML-tagger som skilletegn
  2. Modulære ledetekstdeler
  3. Mønsteret topptekst–brødtekst–bunntekst
  4. Beste praksis for organisering av ledetekster
← Tilbake til AI-prompt engineering