Otsikko–runko–alatunniste-promptimalli
Yhtenäinen promptirakenne, joka skaalautuu monimutkaisiin monitehtäväprompteihin.
Otsikko–runko–alatunniste-promptimalli on ilmainen Tekoälyn prompt engineering-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Tekoälyn prompt engineering-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyn prompt engineering-kurssilla on yhteensä 4 oppituntia.
Promptit asiakirjoina
Pitkissä asiakirjoissa – raporteissa, artikkeleissa ja sähköposteissa – käytetään Otsake/Runko/Alatunniste-rakennetta, koska sitä on helppo hahmottaa. Lukijat tietävät, mitä kussakin osassa odottaa.
Sama periaate pätee prompteihin. Kun promptit kasvavat muutamaa virkettä pidemmiksi, Otsake/Runko/Alatunniste-rakenne tekee niistä nopeasti silmäiltäviä, ylläpidettäviä ja johdonmukaisia.
Tämä malli toimii eri malleilla ja skaalautuu yksinkertaisista prompteista erittäin monimutkaisiin.
Otsakeosio
Otsake vastaa kahteen kysymykseen: Kuka olet? ja Mikä on tehtävä?
Se määrittää mallin identiteetin (persoonan tai roolin) ja ilmoittaa promptin ensisijaisen tavoitteen. Kaikki muu rakentuu tämän perustan varaan.
Hyvä otsake on tiivis – yleensä 2–4 virkettä. Se ei sisällä esimerkkejä, rajoitteita tai vastausta koskevia sääntöjä.
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)Runko-osio
Runko sisältää sisällön tai kontekstin, jota malli tarvitsee tehtävän suorittamiseen. Tämä on tärkein data-alue:
- käsiteltävät lähdeasiakirjat
- keskusteluhistoria
- jäsennelty data (JSON- ja CSV-katkelmat)
- viitemateriaali
- käyttäjän varsinainen syöte
Runko on suurin osio, ja se lisätään useimmiten dynaamisesti suorituksen aikana.
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))Alatunnisteosio
Alatunniste sisältää muotoiluohjeet ja vastausskeeman. Se sijoitetaan viimeiseksi seuraavista syistä:
- malli lukee sisällön ylhäältä alas ja soveltaa muotoilusääntöjä juuri käsittelemäänsä sisältöön
- loppupuolella olevat muotoiluohjeet jäävät todennäköisemmin mieleen
- alatunniste on usein uudelleenkäytettävissä prompteissa, joissa on sama vastaustyyppi
Alatunnisteen tulee olla yksiselitteinen: Palauta JSON-objekti, jossa on nämä kentät, ei muotoile siististi.
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)Koko mallin kokoaminen
Otsakkeen, rungon ja alatunnisteen yhdistäminen täydelliseksi, uudelleenkäytettäväksi promptifunktioksi:
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))Miksi tämä järjestys toimii
Otsake/Runko/Alatunniste-järjestys vastaa tapaa, jolla mallit käsittelevät kontekstia:
- Otsake ensin – määrittää identiteetin ja tavoitteen sekä pohjustaa mallin tulevaa sisältöä varten
- Runko toisena – malli käsittelee nyt sisältöä vakiintuneen roolin ja tehtävän näkökulmasta
- Alatunniste viimeisenä – muotoiluohjeet ovat juuri ennen vastauksen tuottamista, mikä maksimoi niiden vaikutuksen vastauksen rakenteeseen
Kun muotoiluohjeet sijoitetaan otsakkeeseen (alkuun), ne unohtuvat osittain siihen mennessä, kun malli kirjoittaa vastauksensa.
Skaalautuminen monimutkaisiin kehotteisiin
Header/Body/Footer-malli skaalautuu luontevasti, kun kehotteet monimutkaistuvat:
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])Footer-mallien uudelleenkäyttö
Koska Footer määrittää tulosteen rakenteen, se on osioista helpoimmin uudelleenkäytettävä. Yleisiä Footer-malleja:
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.')Dynaamisen sisällön lisääminen Body-osioon
Body on osio, joka rakennetaan ajonaikana useimmiten dynaamisesti. Dynaamisen sisällön lisäämisen parhaat käytännöt:
- Sijoittakaa lisättävä sisältö aina nimettyjen XML-tagien sisään
- Puhdistakaa käyttäjän syöte ennen lisäämistä prompt injectionin estämiseksi
- Lyhentäkää erittäin pitkät asiakirjat ja merkitkää lyhennys Body-osioon
- Merkitkää jokainen lisättävä osa selkeästi (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))Yhtenäinen rakenne koko koodikannassa
Header/Body/Footer-mallin todellinen voima tulee esiin, kun koko sovelluksessa käytetään johdonmukaisesti samaa rakennetta. Hyödyt:
- Uudet tiimin jäsenet ymmärtävät minkä tahansa kehotteen heti
- Kehotteiden tarkastelu koodikatselmoinnissa on helpompaa — tarkastajat tietävät täsmälleen, mistä etsiä
- Automaattisella testauksella voidaan tarkistaa jokainen osio itsenäisesti
- Kehotteiden siirtäminen mallista toiseen on suoraviivaista — vain sisältö muuttuu, ei rakenne
Header/Body/Footer-mallin yleiset virheet
Mallin toimivuutta heikentävät virheet:
- Muotoiluohjeet Header-osiossa — liian kaukana vastauksen muodostamisesta; malli jättää ne osittain huomiotta
- Tehtävän kuvaus piilotettuna Body-osioon — malli saattaa käsitellä sitä käsiteltävänä datana eikä ohjeena
- Rajoitteet hajautettu eri osioihin — vaikea tarkastaa ja johtaa ristiriitoihin
- Footer puuttuu — tulosteen rakenteesta tulee ennakoimaton kehotteen monimutkaistuessa
Pikatarkistus
Mihin tulosteen muotoiluohjeet pitäisi sijoittaa Header/Body/Footer-mallissa ja miksi?
Header/Body/Footer — keskeiset opit
Header/Body/Footer-malli tuo dokumenttirakenteen kurinalaisuuden kehotetekniikkaan:
- Header: Kuka olet ja mikä tehtävä on — luo kehyksen kaikelle seuraavalle
- Body: Sisältö ja konteksti — lisätään dynaamisesti ja sijoitetaan semanttisten XML-tagien sisään
- Footer: Muotoiluohjeet ja tulosteen skeema — sijoitetaan viimeiseksi, jotta ne vaikuttavat mahdollisimman paljon tulosteen rakenteeseen
- Malli skaalautuu luontevasti yksinkertaisista erittäin monimutkaisiin kehotteisiin
- Footer-malleja voidaan käyttää uudelleen kehotteissa, joilla on sama tulostetyyppi
- Koodikannan yhtenäinen rakenne tekee kehotteista helposti tarkasteltavia, testattavia ja ylläpidettäviä
Opi Tekoälyn prompt engineering tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 53
- Oppitunnit
- 199
Usein kysytyt kysymykset
Onko oppitunti ”Otsikko–runko–alatunniste-promptimalli” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Tekoälyn prompt engineering-oppimispolun 3 oppituntia, myös oppitunnin “Otsikko–runko–alatunniste-promptimalli”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Tekoälyn prompt engineering-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Otsikko–runko–alatunniste-promptimalli”?
Yhtenäinen promptirakenne, joka skaalautuu monimutkaisiin monitehtäväprompteihin. Harjoittelet Tekoälyn prompt engineering-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Tekoälyn prompt engineering-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyn prompt engineering-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Otsikko–runko–alatunniste-promptimalli”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyn prompt engineering-oppitunnilla?
Kyllä. Jokainen Tekoälyn prompt engineering-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- XML-tunnisteiden käyttö erottimina
- Modulaariset promptiosiot
- Otsikko–runko–alatunniste-promptimalli
- Promptien järjestämisen parhaat käytännöt