Opret udfyldningsmønstre
Brug {{variable}}-pladsholdere og strengsubstitution i Python.
Opret udfyldningsmønstre er en gratis Promptteknik til AI-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Promptteknik til AI, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Promptteknik til AI-kurset indeholder 4 lektioner i alt.
Konventionen for pladsholdere
Et promptmønster med udfyldningsfelter bruger pladsholdere til at markere de dele af en prompt, der erstattes med rigtige værdier, før prompten sendes til modellen.
Den mest almindelige konvention for pladsholdere er dobbelte krøllede parenteser: {{variable_name}}. Denne konvention er let at læse, optræder sjældent tilfældigt i normal tekst og understøttes bredt af skabelonbiblioteker.
Andre konventioner, du vil møde, er enkelte krøllede parenteser {variable}, vinkelparenteser <variable> og variabler med KUN_STORE_BOGSTAVER. Vælg én, og vær konsekvent.
Grundlæggende udskiftning af pladsholdere
Det enkleste mønster med udfyldningsfelter er direkte strengudskiftning:
Skabelon: "Skriv en beskrivelse på {{word_count}} ord af {{product}} til {{audience}}."
Udskiftningen sker, før strengen sendes til modellen – modellen ser en ren, komplet prompt uden pladsholdermarkører. Pladsholdere er et forbehandlingstrin, ikke noget modellen selv håndterer.
Almindelige pladsholderkategorier
Byg dine skabeloner ved hjælp af standardkategorier for pladsholdere, der dækker de fleste anvendelser:
{{customer_name}}— modtagerens eller emnets navn{{product}}— det produkt, den tjeneste eller det emne, der skrives om{{tone}}— f.eks. professionel, uformel, hastende eller begejstret{{audience}}— hvem indholdet er beregnet til{{word_count}}— mållængde{{format}}— punktopstilling, afsnit eller nummereret liste{{context}}— baggrundsoplysninger, der er specifikke for denne forekomst
Ensartet navngivning på tværs af skabeloner gør dit bibliotek nemmere at navigere i og reducerer antallet af fejl.
Strengudskiftning med Python
Pythons indbyggede strengmetode .format() er en enkel måde at udfylde pladsholdere ved hjælp af 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)Pythons f-string-metode
Pythons f-strings giver en syntaks til direkte udskiftning, som nogle udviklere foretrækker på grund af læsbarheden:
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 af specialtegn i pladsholdere
En almindelig fejl opstår, når brugervaliderede værdier indeholder krøllede parenteser, anførselstegn eller linjeskift, som kan ødelægge strengudskiftningen.
Beskyttende metoder:
- Rens inddata før udskiftningen – fjern eller undvig specialtegn efter behov
- Brug strenge med tredobbelte anførselstegn til skabeloner med flere linjer, så linjeskift håndteres sikkert
- Når selve variabelværdien indeholder krøllede parenteser (f.eks. kode), skal du bruge en metode, der behandler variabelværdien som bogstavelig tekst (Jinja2 håndterer dette godt)
Test altid din skabelon med inddata i grænsetilfælde: tomme strenge, strenge med anførselstegn, strenge med linjeskift og meget lange strenge.
Standardværdier i skabeloner
Ikke alle variabler behøver at være obligatoriske. Skabeloner bliver mere fleksible med standardværdier for valgfrie parametre:
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'))Skabeloner med flere blokke
Komplekse prompts kan have flere variabelblokke – en systempromptblok og en brugerbeskedblok, hver med deres egne pladsholdere:
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 af pladsholdere før gengivelse
Validér altid, at alle obligatoriske pladsholdere er udfyldt, før prompten sendes. En manglende pladsholder betyder, at modellen modtager bogstavelig tekst som {{product}} og kan generere et mærkeligt resultat:
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 skabelonblokke
Nogle gange skal en skabelonsektion kun vises, hvis der er angivet en variabel. Det kan du implementere i Python med betinget opbygning af strenge:
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'
))Variabler med faste valgmuligheder
Nogle skabelonvariabler bør begrænses til et fast sæt gyldige valgmuligheder. Håndhæv det med validering i enum-stil:
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 promptVidenstjek: Mønstre med udfyldningsfelter
Du har denne skabelon: 'Write a {tone} email to {recipient} about {topic}. Length: {word_count} words.'
Du kalder den med: tone='formal', recipient='the team', word_count=100 – men glemmer parameteren topic.
Hvad sker der?
Opsummering: Oprettelse af mønstre med udfyldningsfelter
Mønstre til prompts med udfyldningsfelter bruger pladsholdere ({{variable}}, {variable} eller lignende) til at markere de variable dele af en genanvendelig skabelon. Pythons .format() og f-strings er de mest almindelige mekanismer til udskiftning.
Bedste praksis: Validér alle obligatoriske pladsholdere før gengivelse, brug standardværdier til valgfrie variabler, begræns variabler med faste valgmuligheder, og håndtér inddata i grænsetilfælde (tomme strenge, specialtegn) på en beskyttende måde.
I næste lektion undersøger du Jinja2 og Pythons string.Template til mere avancerede behov for variabeludskiftning.
Lær Promptteknik til AI med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 53
- Lektioner
- 199
Ofte stillede spørgsmål
Er lektionen “Opret udfyldningsmønstre” gratis?
Ja — alle 3 lektioner i læringssporet Promptteknik til AI, inklusive “Opret udfyldningsmønstre”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Promptteknik til AI-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Opret udfyldningsmønstre”?
Brug {{variable}}-pladsholdere og strengsubstitution i Python. Du øver dig i Promptteknik til AI med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Promptteknik til AI?
Der kræves ingen tidligere erfaring. Promptteknik til AI på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Opret udfyldningsmønstre”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Promptteknik til AI-lektion?
Ja. Alle Promptteknik til AI-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Hvad er en promptskabelon?
- Opret udfyldningsmønstre
- Teknikker til variabelsubstitution
- Genbrug skabeloner på tværs af opgaver