Struttura di prompt intestazione-corpo-piè di pagina
Una struttura coerente che si adatta a prompt complessi con più attività
Struttura di prompt intestazione-corpo-piè di pagina è una lezione AI Prompt Engineering 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 Prompt Engineering, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Prompt Engineering include 4 lezioni in totale.
I prompt come documenti
I documenti lunghi — report, articoli, e-mail — utilizzano una struttura Header/Body/Footer perché facilita l'orientamento mentale. Chi legge sa cosa aspettarsi in ogni area.
Lo stesso principio vale per i prompt. Quando superano alcune frasi, una struttura Header/Body/Footer li rende facili da consultare, manutenibili e coerenti.
Questo schema funziona con diversi modelli e si adatta da prompt semplici a prompt estremamente complessi.
La sezione Header
Header risponde a due domande: Chi è Lei? e Qual è il task?
Definisce l'identità del modello (persona o ruolo) e indica l'obiettivo principale del prompt. Tutto il resto si costruisce su questa base.
Un header efficace è conciso — in genere 2-4 frasi. Non include esempi, vincoli o regole sul formato.
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)La sezione Body
Il Body contiene i contenuti o il contesto di cui il modello ha bisogno per svolgere l'attività. Questa è la principale area dei dati:
- Documenti sorgente da elaborare
- Cronologia della conversazione
- Dati strutturati (frammenti JSON, CSV)
- Materiale di riferimento
- L'input effettivo dell'utente
Il body è la sezione più ampia e viene in genere inserito dinamicamente durante l'esecuzione.
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))La sezione Footer
Il Footer contiene le istruzioni sul formato e lo schema dell'output. Compare per ultimo perché:
- Il modello legge dall'alto verso il basso e applica le regole di formattazione a ciò che ha appena elaborato
- Le istruzioni sul formato vicine alla fine hanno meno probabilità di essere ignorate
- Il footer è spesso riutilizzabile in prompt con lo stesso tipo di output
Il footer deve essere esplicito: Restituisca un oggetto JSON con questi campi, non lo formatti bene.
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)Assemblare lo schema completo
Combinare Header, Body e Footer in una funzione di prompt completa e riutilizzabile:
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))Perché questo ordine funziona
L'ordine Header/Body/Footer rispecchia il modo in cui i modelli elaborano il contesto:
- Header per primo — stabilisce identità e obiettivo, preparando il modello a ciò che segue
- Body per secondo — a questo punto il modello elabora i contenuti attraverso la prospettiva del ruolo e dell'attività stabiliti
- Footer per ultimo — le istruzioni sul formato vengono subito prima che il modello generi la risposta, massimizzandone l'influenza sulla struttura dell'output
Collocare le istruzioni sul formato nell'header (all'inizio) fa sì che vengano parzialmente dimenticate quando il modello scrive la risposta.
Scalabilità per prompt complessi
Il pattern Header/Body/Footer si adatta naturalmente quando i prompt diventano complessi:
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])Riutilizzare i template del Footer
Poiché il Footer definisce la struttura dell'output, è la sezione più riutilizzabile. Template comuni per il Footer:
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.')Inserire contenuti dinamici nel Body
Il Body è la sezione che più spesso viene costruita dinamicamente a runtime. Buone pratiche per l'inserimento dinamico del Body:
- Racchiuda sempre il contenuto inserito in tag XML con nome
- Sanitizzi l'input dell'utente prima dell'inserimento per prevenire la prompt injection
- Tronchi i documenti molto lunghi e annoti il troncamento nel Body
- Etichetti chiaramente ogni elemento inserito (document_1, user_query, chat_history)
def safe_inject(user_content, max_chars=3000):
safe = user_content.replace('<', '<').replace('>', '>')
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))Struttura coerente in tutto il codebase
Il vero potenziale del pattern Header/Body/Footer emerge quando l'intera applicazione lo utilizza in modo coerente. Vantaggi:
- I nuovi membri del team comprendono immediatamente qualsiasi prompt
- La revisione dei prompt durante la code review è più semplice — chi esamina il codice sa esattamente dove guardare
- I test automatizzati possono convalidare ogni sezione in modo indipendente
- La migrazione dei prompt tra modelli è immediata — cambia solo il contenuto, non la struttura
Errori comuni in Header/Body/Footer
Errori che compromettono l'efficacia del pattern:
- Istruzioni sul formato nell'Header — troppo lontane dalla generazione della risposta; il modello le ignora in parte
- Descrizione del compito nascosta nel Body — il modello potrebbe trattarla come dati da elaborare, non come una direttiva
- Vincoli distribuiti tra le sezioni — difficili da verificare, causano contraddizioni
- Nessun Footer — la struttura dell'output diventa imprevedibile con l'aumentare della complessità del prompt
Verifica rapida
Dove vanno inserite le istruzioni sul formato dell'output nel pattern Header/Body/Footer e perché?
Header/Body/Footer — Punti chiave
Il pattern Header/Body/Footer porta nel prompt engineering la disciplina della strutturazione dei documenti:
- Header: chi è il modello + il compito — definisce la cornice per tutto ciò che segue
- Body: contenuti e contesto — inseriti dinamicamente e racchiusi in tag XML semantici
- Footer: istruzioni sul formato e schema dell'output — posizionati alla fine per influenzare al massimo la struttura dell'output
- Il pattern si adatta naturalmente da prompt semplici a prompt altamente complessi
- I template del Footer sono riutilizzabili tra prompt con lo stesso tipo di output
- La coerenza in tutto il codebase rende i prompt facili da revisionare, testare e manutenere
Impara AI Prompt Engineering con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 53
- Lezioni
- 199
Domande Frequenti
La lezione «Struttura di prompt intestazione-corpo-piè di pagina» è gratuita?
Sì — il testo completo di «Struttura di prompt intestazione-corpo-piè di pagina» è 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 Prompt Engineering, passa a CoddyKit PRO. Il corso AI Prompt Engineering include 4 lezioni in totale.
Cosa imparerò in «Struttura di prompt intestazione-corpo-piè di pagina»?
Una struttura coerente che si adatta a prompt complessi con più attività Eserciti AI Prompt Engineering 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 Prompt Engineering?
Non è richiesta alcuna esperienza precedente. AI Prompt Engineering 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 «Struttura di prompt intestazione-corpo-piè di pagina»?
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 Prompt Engineering?
Sì. Ogni lezione AI Prompt Engineering 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
- Utilizzare i tag XML come delimitatori
- Sezioni modulari dei prompt
- Struttura di prompt intestazione-corpo-piè di pagina
- Buone pratiche per organizzare i prompt