Opprette utfyllingsmønstre
Bruk plassholdere som {{variable}} og strengsubstitusjon i Python.
Opprette utfyllingsmønstre er en gratis leksjon i AI-prompt engineering på CoddyKit. Dette er leksjon 2 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.
Konvensjonen for plassholdere
Et utfyllingsmønster for prompter bruker plassholdere til å markere delene av en prompt som skal erstattes med faktiske verdier før prompten sendes til modellen.
Den vanligste konvensjonen for plassholdere er doble krøllparenteser: {{variable_name}}. Denne konvensjonen er lett å lese, det er lite sannsynlig at den opptrer tilfeldig i vanlig tekst, og den støttes av mange malbiblioteker.
Andre konvensjoner du vil møte på, er enkle krøllparenteser {variable}, vinkelparenteser <variable> og variabler med STORE BOKSTAVER. Velg én og vær konsekvent.
Grunnleggende substitusjon av plassholdere
Det enkleste mønsteret for utfylling av tomrom er direkte strengsubstitusjon:
Mal: "Skriv en beskrivelse på {{word_count}} ord av {{product}} for {{audience}}."
Utfylt: "Skriv en beskrivelse på 150 ord av TaskFlow Pro for eiere av små bedrifter."
Substitusjonen skjer før strengen sendes til modellen – modellen ser en ren, komplett prompt uten plassholdermarkører. Plassholdere er et forhåndsbehandlingstrinn, ikke noe modellen håndterer selv.
Vanlige plassholderkategorier
Bygg malene med standardiserte plassholderkategorier som dekker de fleste bruksområder:
{{customer_name}}— navnet på mottakeren eller emnet{{product}}— produktet, tjenesten eller temaet det skrives om{{tone}}— f.eks. profesjonell, uformell, presserende, entusiastisk{{audience}}— hvem innholdet er beregnet på{{word_count}}— ønsket lengde{{format}}— punktliste, avsnitt, nummerert liste{{context}}— bakgrunnsinformasjon som er spesifikk for denne forekomsten
Konsekvent navngivning på tvers av malene gjør biblioteket enklere å navigere i og reduserer antall feil.
Substitusjon med Python-strengformat
Pythons innebygde strengmetode .format() er en enkel måte å fylle ut plassholdere på ved hjelp av syntaksen {variable}:
import openai
client = openai.OpenAI(api_key='sk-...')
EMAIL_TEMPLATE = '''Write a follow-up email from {sender_name} to {recipient_name}.
Context: {context}
Tone: {tone}
Length: {word_count} words.
Include a clear call to action: {cta}.
Do not mention competitors. Active voice. No bullet points.'''
def generate_email(sender, recipient, context, tone, word_count, cta):
prompt = EMAIL_TEMPLATE.format(
sender_name=sender,
recipient_name=recipient,
context=context,
tone=tone,
word_count=word_count,
cta=cta
)
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}]
)
return response.choices[0].message.content
result = generate_email(
sender='Sarah Chen',
recipient='Mr. Patel',
context='We met at the DevConf conference last week and discussed API integration.',
tone='warm and professional',
word_count=120,
cta='Schedule a 20-minute demo call'
)
print(result)Tilnærming med Python-f-strenger
Python-f-strenger gir en innebygd syntaks for substitusjon som noen utviklere foretrekker fordi den er lett å lese:
import openai
client = openai.OpenAI(api_key='sk-...')
def generate_product_description(product, audience, tone, word_count, key_benefit):
prompt = (
f'Write a product description for {product}, designed for {audience}. '
f'Tone: {tone}. '
f'Length: {word_count} words. '
f'Lead with this key benefit: {key_benefit}. '
'Active voice. No bullet points. No pricing mentions.'
)
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}]
)
return response.choices[0].message.content
print(generate_product_description(
product='FocusFlow, a time-blocking productivity app',
audience='freelancers and independent consultants',
tone='energetic and practical',
word_count=150,
key_benefit='Reclaim two hours every day by blocking distractions automatically'
))Håndtering av spesialtegn i plassholdere
En vanlig feil er at verdier fra brukere som inneholder krøllparenteser, anførselstegn eller linjeskift, kan ødelegge strengsubstitusjonen.
Forebyggende tiltak:
- Rens inndata før substitusjonen — fjern eller escape spesialtegn ved behov
- Bruk strenger med tre anførselstegn for maler over flere linjer, slik at linjeskift håndteres trygt
- Når variabelverdien selv inneholder krøllparenteser (for eksempel kode), bør du bruke en fremgangsmåte som behandler variabelverdien som bokstavelig tekst (Jinja2 håndterer dette godt)
Test alltid malen med inndata fra kanttilfeller: tomme strenger, strenger med anførselstegn, strenger med linjeskift og svært lange strenger.
Standardverdier i maler
Alle variabler trenger ikke å være obligatoriske. Maler blir mer fleksible når valgfrie parametere har standardverdier:
def build_prompt(product, audience, tone='professional and friendly', word_count=200, format_style='prose'):
format_instruction = {
'prose': 'Write in continuous paragraphs. No bullet points.',
'bullets': 'Use bullet points. Each point is one sentence.',
'numbered': 'Use a numbered list. Each item is one sentence.'
}.get(format_style, 'Write in continuous paragraphs.')
return (
f'Write a description of {product} for {audience}. '
f'Tone: {tone}. '
f'Length: {word_count} words. '
f'{format_instruction} '
'Active voice. No competitor mentions.'
)
# Minimal call — uses all defaults
print(build_prompt('Notion', 'students'))
# Full call — overrides defaults
print(build_prompt('Notion', 'students', tone='casual', word_count=100, format_style='bullets'))Maler med flere blokker
Komplekse prompter kan ha flere variabelblokker – en systempromptblokk og en brukermeldingsblokk, hver med sine egne plassholdere:
SYSTEM_TEMPLATE = 'You are a {role} writing for {company}. Your audience is {audience}. Style: {style}.'
USER_TEMPLATE = 'Write a {content_type} about {topic}. Length: {word_count} words. Deadline tone: {urgency}.'
import openai
client = openai.OpenAI(api_key='sk-...')
def generate(role, company, audience, style, content_type, topic, word_count, urgency):
system_msg = SYSTEM_TEMPLATE.format(
role=role, company=company, audience=audience, style=style
)
user_msg = USER_TEMPLATE.format(
content_type=content_type, topic=topic,
word_count=word_count, urgency=urgency
)
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': system_msg},
{'role': 'user', 'content': user_msg}
]
)
return response.choices[0].message.contentValidering av plassholdere før gjengivelse
Valider alltid at alle obligatoriske plassholdere er fylt ut før prompten sendes. En manglende plassholder betyr at modellen mottar bokstavelig tekst som {{product}} og kan produsere merkelige resultater:
import re
def validate_template(template_str, provided_vars):
required = set(re.findall(r'\{\{(\w+)\}\}', template_str))
missing = required - set(provided_vars.keys())
if missing:
raise ValueError(f'Missing required template variables: {missing}')
return True
template = 'Write a {{word_count}}-word {{tone}} description of {{product}} for {{audience}}.'
vars_provided = {'word_count': 150, 'tone': 'friendly', 'product': 'TaskFlow'}
try:
validate_template(template, vars_provided)
except ValueError as e:
print(f'Template error: {e}')
# Output: Template error: Missing required template variables: {{'audience'}}Betingede malblokker
Noen ganger skal en maldel bare vises hvis en variabel er oppgitt. Dette kan implementeres i Python ved å bygge strengen betinget:
def build_report_prompt(topic, audience, word_count, include_recommendations=False, cta=None):
prompt = f'Write a report on {topic} for {audience}. Length: {word_count} words. Active voice.'
if include_recommendations:
prompt += ' End with a numbered list of 3 specific recommendations.'
if cta:
prompt += f' Close with this call to action: {cta}'
return prompt
# Without optional sections
print(build_report_prompt('cloud cost optimization', 'engineering managers', 400))
# With optional sections
print(build_report_prompt(
topic='cloud cost optimization',
audience='engineering managers',
word_count=600,
include_recommendations=True,
cta='Book a cost audit with our team at cloudcost.io'
))Valgvariabler med faste alternativer
Noen malvariabler bør begrenses til et fast sett med gyldige alternativer. Håndhev dette med validering basert på en enum:
VALID_TONES = ['professional', 'casual', 'urgent', 'empathetic', 'enthusiastic']
VALID_FORMATS = ['prose', 'bullets', 'numbered', 'table']
def generate_content(topic, tone, format_style, word_count):
if tone not in VALID_TONES:
raise ValueError(f'Invalid tone: {tone}. Choose from: {VALID_TONES}')
if format_style not in VALID_FORMATS:
raise ValueError(f'Invalid format: {format_style}. Choose from: {VALID_FORMATS}')
format_map = {
'prose': 'continuous paragraphs, no lists',
'bullets': 'bullet points',
'numbered': 'numbered list',
'table': 'a markdown table'
}
prompt = (f'Write about {topic} in {tone} tone. '
f'Format: {format_map[format_style]}. '
f'Length: {word_count} words. Active voice.')
return promptKunnskapssjekk: Mønstre for utfylling av tomrom
Du har denne malen: 'Write a {tone} email to {recipient} about {topic}. Length: {word_count} words.'
Du kaller den med: tone='formal', recipient='the team', word_count=100 — men glemmer parameteren topic.
Hva skjer?
Oppsummering: Opprette mønstre for utfylling av tomrom
Mønstre for utfylling av tomrom bruker plassholdere ({{variable}}, {variable} eller tilsvarende) for å markere de variable delene av en gjenbrukbar mal. Pythons .format() og f-strenger er de vanligste mekanismene for substitusjon.
Beste praksis er å validere alle obligatoriske plassholdere før gjengivelse, bruke standardverdier for valgfrie variabler, begrense variabler med faste alternativer og håndtere inndata fra kanttilfeller (tomme strenger, spesialtegn) på en robust måte.
I neste leksjon skal du utforske Jinja2 og Pythons string.Template for mer avanserte behov for variabelsubstitusjon.
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 «Opprette utfyllingsmønstre» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien AI-prompt engineering, inkludert «Opprette utfyllingsmønstre», 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 «Opprette utfyllingsmønstre»?
Bruk plassholdere som {{variable}} og strengsubstitusjon i Python. 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 2 av 4.
Hvor lang tid tar leksjonen «Opprette utfyllingsmønstre»?
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
- Hva er en ledetekstmal?
- Opprette utfyllingsmønstre
- Teknikker for variabelsubstitusjon
- Gjenbruke maler på tvers av oppgaver