Promptteknik til AI · Lektion

Vage og specifikke prompts sammenlignet

Eksempler side om side, der viser den markante forskel, specificitet gør.

Lektion 4 af 413 trin

Vage og specifikke prompts sammenlignet er en gratis Promptteknik til AI-lektion på CoddyKit. Dette er lektion 4 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.

Metoden med sammenligning side om side

Den hurtigste måde at forstå kvaliteten af prompts på er at studere konkrete omskrivninger side om side og analysere, hvorfor hver forbedring virker.

I denne lektion gennemgår vi fem upræcise prompts og deres konkrete omskrivninger. For hvert par identificerer vi de præcise ændringer og den mekanisme, hvormed hver forbedring leder modellen frem til et bedre resultat.

Par 1: Blogindlægget

Upræcist: 'Skriv et blogindlæg om fjernarbejde.'

Specifikt: 'Skriv et blogindlæg på 600 ord med titlen "De 3 vaner ved fjernarbejde, der ødelagde min produktivitet (og hvad jeg gør nu)" til en målgruppe af softwareudviklere på mellemniveau. Skriv i første person og i en samtalepræget tone. Struktur: 1 indledende afsnit, 3 sektioner med H2-overskrifter, 1 afsluttende opfordring til at downloade en gratis skabelon.'

Hvorfor det virker: Tilføjer ordantal, titel (og dermed vinkel), målgruppe, sproglig stemme, tone, struktur og et specifikt afsluttende element. Intet er overladt til tilfældighederne.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=800,
    messages=[{
        'role': 'user',
        'content': (
            'Write a 600-word blog post titled '
            '"The 3 Remote Work Habits That Killed My Productivity (And What I Do Now)" '
            'for an audience of mid-level software developers. '
            'First-person voice, conversational tone. '
            'Structure: 1-paragraph intro, 3 H2 sections (one per habit), '
            '1 closing paragraph with a CTA to download a free productivity template.'
        )
    }]
)
print(response.content[0].text[:400], '...')

Par 2: Kodegennemgangen

Upræcist: 'Gennemgå min kode.'

Specifikt: 'Gennemgå følgende Python-funktion. Fokuser kun på: 1) fejl, der giver ukorrekt funktion, 2) uhåndterede randtilfælde. Kommentér IKKE på stil, navngivning eller formatering. Resultatformat: nummereret liste over problemer, hvert med: problembeskrivelse (1 sætning), berørte linjer, foreslået rettelse (kodestykke).'

Hvorfor det virker: Definerer gennemgangens omfang (korrekthed og randtilfælde), udelukker udtrykkeligt andre dimensioner (stil og navngivning) og angiver en præcis resultatstruktur med tre felter for hvert fund.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

code = (
    'def get_user(users, user_id):\n'
    '    for user in users:\n'
    '        if user["id"] == user_id:\n'
    '            return user["name"]\n'
    '    return users[0]["name"]\n'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Review the following Python function.\n'
            'Focus ONLY on: 1) correctness bugs, 2) unhandled edge cases.\n'
            'Do NOT comment on style, naming conventions, or formatting.\n'
            'Output format: numbered list. Each item: issue (1 sentence), '
            'affected line, suggested fix as a code snippet.\n\n'
            + code
        )
    }]
)
print(response.choices[0].message.content)

Par 3: E-mailens emnelinje

Upræcist: 'Skriv emnelinjer til e-mails for mit nyhedsbrev.'

Specifikt: 'Skriv 10 emnelinjer til e-mails for et ugentligt nyhedsbrev om Python til data scientists. Hver emnelinje skal være på under 50 tegn, have et greb, der øger åbningsraten (nysgerrighed, nummereret liste eller overraskende påstand), og undgå ord, der udløser spamfiltre, som GRATIS eller HASTER. Vis resultatet som en nummereret liste med grebstypen angivet i kantede parenteser.'

Hvorfor det virker: Angiver antal, længdebegrænsning, krav til greb, udelukkelser og et resultatformat med etiketter — og forvandler dermed en upræcis kreativ opgave til en regelbaseret genereringsopgave.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=400,
    messages=[{
        'role': 'user',
        'content': (
            'Write 10 email subject lines for a weekly newsletter '
            'about Python tips for data scientists. '
            'Requirements:\n'
            '- Each under 50 characters\n'
            '- Must use one of these hooks: [CURIOSITY GAP], [NUMBER], or [SURPRISING CLAIM]\n'
            '- No spam words: FREE, URGENT, ACT NOW, LIMITED TIME\n'
            '- Output as numbered list with hook type in brackets at the end of each line'
        )
    }]
)
print(response.content[0].text)

Par 4: Mødereferatet

Upræcist: 'Opsummer dette mødereferat.'

Specifikt: 'Opsummer dette mødereferat ved hjælp af følgende format: 1) Mødets formål (1 sætning), 2) Vigtigste beslutninger (punktopstilling, højst 5), 3) Handlingselementer (tabel med kolonnerne: Opgave, Ansvarlig, Deadline), 4) Åbne spørgsmål (nummereret liste). Hvis der mangler oplysninger til et felt, skal du skrive IKKE OPLYST. Medtag ikke holdninger — kun fakta og forpligtelser.'

Hvorfor det virker: Giver en præcis skabelon, angiver begrænsninger for hver sektion, definerer tabellens struktur, angiver en reserveværdi for manglende data og tilføjer en begrænsning for tonen (kun fakta).

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

transcript = (
    'John: We need to decide on the launch date. '
    'Sarah: I think Q3 works. We need the API done first. '
    'John: Agreed. Sarah, can you own the API? '
    'Sarah: Yes, I can have it by July 15th. '
    'John: Great. Who handles marketing? '
    'Mike: I will, but I need the feature list first. '
    'John: We still need to confirm pricing — tabled for next week.'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Summarize this meeting transcript in this exact format:\n'
            '1. Meeting Purpose: (1 sentence)\n'
            '2. Key Decisions: (bullet list, max 5)\n'
            '3. Action Items: (markdown table: Task | Owner | Deadline)\n'
            '4. Open Questions: (numbered list)\n'
            'Missing info: write N/A. Facts only, no opinions.\n\n'
            'Transcript:\n' + transcript
        )
    }]
)
print(response.choices[0].message.content)

Par 5: Forklaringen

Upræcist: 'Forklar maskinlæring.'

Specifikt: 'Forklar maskinlæring i 3 afsnit til en produktchef i en sundhedsvirksomhed, som forstår statistik, men aldrig har skrevet kode. Afsnit 1: hvad det er, og hvordan det adskiller sig fra traditionel programmering. Afsnit 2: et virkeligt eksempel fra sundhedssektoren (diagnosticering eller lægemiddeludvikling). Afsnit 3: en almindelig misforståelse, der skal undgås. Højst 200 ord i alt.'

Hvorfor det virker: Definerer strukturen (3 afsnit med hvert sit emne), målgruppen (specifik rolle, fagområde og baggrund), indholdskravene for hvert afsnit og en samlet ordgrænse.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=350,
    messages=[{
        'role': 'user',
        'content': (
            'Explain machine learning in exactly 3 paragraphs. '
            'Audience: a product manager at a healthcare company who understands statistics '
            'but has never written code.\n'
            'Paragraph 1: what ML is and how it differs from traditional programming.\n'
            'Paragraph 2: a specific real-world healthcare example (diagnosis or drug discovery).\n'
            'Paragraph 3: one common misconception non-technical people have about ML.\n'
            'Max 200 words total. No bullet points — flowing prose only.'
        )
    }]
)
print(response.content[0].text)

En god omskrivnings anatomi

Når man ser på alle fem par, gør enhver effektiv omskrivning de samme ting:

  1. Erstatter et upræcist udsagnsord ('skriv', 'gennemgå', 'forklar') med en struktureret opgave
  2. Angiver resultatformatet (liste, tabel eller afsnit med angivet indhold)
  3. Tilføjer målbare begrænsninger (ordantal, antal elementer eller tegngrænser)
  4. Specificerer målgruppen (rolle, baggrund og kontekst)
  5. Tilføjer mindst én udelukkelsesregel (hvad der skal udelades)
# Pattern extractor: identify improvements between two prompts
def analyze_improvement(vague, specific):
    improvements = []
    words = specific.lower()
    if any(str(n) in words for n in range(10, 10000)):
        improvements.append('Quantitative constraint added')
    if 'do not' in words or 'exclude' in words or 'avoid' in words or 'no ' in words:
        improvements.append('Negative constraint added')
    if 'audience' in words or 'for a' in words or 'targeting' in words:
        improvements.append('Audience specified')
    if 'format:' in words or 'table' in words or 'list' in words or 'paragraph' in words:
        improvements.append('Output format defined')
    if 'example' in words or 'such as' in words or 'like:' in words:
        improvements.append('Example provided')
    print('Improvements detected:')
    for i in improvements:
        print(f'  + {i}')

vague = 'Write a blog post about remote work.'
specific = 'Write a 600-word blog post for mid-level developers with 3 H2 sections and a closing CTA. No bullet points. Avoid generic productivity advice.'
analyze_improvement(vague, specific)

Hvad sker der, når kun én dimension tilføjes

Det hjælper at tilføje bare én forbedring — men delvis specificering efterlader stadig store huller. Sammenlign:

  • 'Skriv et blogindlæg om fjernarbejde' — ingen begrænsninger
  • 'Skriv et blogindlæg på 600 ord om fjernarbejde' — kun længden er angivet; vinkel, målgruppe og struktur er stadig upræcise
  • 'Skriv et blogindlæg på 600 ord om fjernarbejde til udviklere i en samtalepræget tone' — længde, målgruppe og tone er angivet; struktur, opfordring til handling og overskriftsstil er stadig upræcise

Hver dimension, du lader være uspecificeret, er et lotteri. Tilføj så mange, som du har oplysninger til.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Progressively more specific prompts
prompts = [
    'Write about Python.',
    'Write a 200-word article about Python.',
    'Write a 200-word article about Python for beginners who know no programming.',
    (
        'Write a 200-word article about Python for beginners who know no programming. '
        'Start with a real-world analogy. Use 3 short paragraphs. '
        'End with one actionable first step they can take today.'
    )
]

for i, p in enumerate(prompts, 1):
    print(f'Prompt {i} ({len(p)} chars): {p[:80]}...' if len(p) > 80 else f'Prompt {i}: {p}')
    print()

Brug af sammenligningspar i praksis

Teknikken med sammenligningspar er et effektivt værktøj til fejlfinding. Når du får et dårligt resultat:

  1. Gem den upræcise prompt, der gav det dårlige resultat
  2. Identificér den ene dimension, der forårsagede problemet
  3. Skriv en specifik omskrivning, der kun retter sig mod denne dimension
  4. Kør begge prompts, og sammenlign resultaterne
  5. Identificér, hvad der stadig skal rettes — og tilføj derefter den næste begrænsning

Denne videnskabelige fremgangsmåde lærer dig hurtigt, hvilke begrænsninger der betyder mest i dit anvendelsesområde.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

def compare_prompts(prompt_a, prompt_b, label_a='A', label_b='B'):
    client_ref = anthropic.Anthropic(api_key='sk-ant-your-key-here')
    for label, prompt in [(label_a, prompt_a), (label_b, prompt_b)]:
        response = client_ref.messages.create(
            model='claude-opus-4-5',
            max_tokens=150,
            messages=[{'role': 'user', 'content': prompt}]
        )
        print(f'=== {label} ===')
        print(prompt)
        print('--- OUTPUT ---')
        print(response.content[0].text)
        print()

compare_prompts(
    prompt_a='Explain APIs.',
    prompt_b='Explain APIs in 3 sentences for a non-technical startup founder. Analogy required.',
    label_a='VAGUE',
    label_b='SPECIFIC'
)

Den to minutter lange promptrevision

Gennemfør denne revision på 2 minutter, før du sender en vigtig prompt. Hvis svaret på et spørgsmål er 'nej', skal du tilføje den manglende detalje:

  • Er formatet angivet? (liste / tabel / afsnit / JSON)
  • Er længden specificeret? (ordantal / antal elementer)
  • Er målgruppen beskrevet? (rolle og baggrund)
  • Er målet klart? (hvad resultatet skal bruges til)
  • Er der mindst én udelukkelse? (hvad der skal udelades)
  • Er der et eksempel eller en skabelon? (hvis stil er vigtig)
def two_minute_audit(prompt):
    score = 0
    checks = {
        'Format specified': any(w in prompt.lower() for w in
            ['list', 'table', 'paragraph', 'json', 'bullet', 'sentence', 'word']),
        'Length given': any(c.isdigit() for c in prompt),
        'Audience named': any(w in prompt.lower() for w in
            ['for a', 'audience', 'targeting', 'developer', 'manager', 'beginner']),
        'Exclusion added': any(w in prompt.lower() for w in
            ['do not', 'avoid', 'exclude', 'no ', 'without', 'never']),
        'Goal stated': any(w in prompt.lower() for w in
            ['goal', 'purpose', 'so that', 'in order to', 'will be used']),
    }
    print('Prompt Audit:')
    for check, passed in checks.items():
        icon = 'PASS' if passed else 'FAIL'
        print(f'  [{icon}] {check}')
        if passed: score += 1
    print(f'Score: {score}/{len(checks)}')

two_minute_audit(
    'Write 5 bullet-point suggestions for improving user onboarding '
    'for a B2B SaaS app targeting first-time non-technical users. '
    'Avoid suggestions that require engineering work. Each bullet: max 25 words.'
)

Opbygning af dit promptbibliotek

Hver gang du skriver en prompt, der giver et fremragende resultat, skal du gemme den. Opbyg et personligt promptbibliotek, der er organiseret efter opgavetype.

En god post i promptbiblioteket indeholder:

  • Promptskabelonen med pladsholdere som [AUDIENCE] og [WORD_COUNT]
  • Det anvendelsesområde, den er udviklet til
  • Den anvendte model og dens indstillinger
  • En note om, hvad der gør den effektiv

Med tiden bliver biblioteket dit mest værdifulde hjælpemiddel til AI-produktivitet.

# Example prompt library entry
prompt_library = {
    'meeting_summary': {
        'template': (
            'Summarize the following meeting transcript in this format:\n'
            '1. Purpose: (1 sentence)\n'
            '2. Decisions: (bullet list, max 5)\n'
            '3. Action Items: (table: Task | Owner | Deadline)\n'
            '4. Open Questions: (numbered list)\n'
            'Missing info: N/A. Facts only.\n\nTranscript:\n[TRANSCRIPT]'
        ),
        'use_case': 'Post-meeting automation for Slack or Notion',
        'model': 'claude-opus-4-5',
        'temperature': 0,
        'notes': 'Works best with verbatim transcripts, not paraphrased notes'
    }
}

# Use the template
def run_meeting_summary(transcript):
    template = prompt_library['meeting_summary']['template']
    return template.replace('[TRANSCRIPT]', transcript)

print(run_meeting_summary('Alice: We decided to ship v2 next Friday...')[:200])

Vidensquiz

Når du ser på de fem sammenligningspar i denne lektion, hvilken enkelt ændring forbedrede mest konsekvent promptkvaliteten i alle fem eksempler?

Upræcist vs. specifikt — opsummering

De fem sammenligningspar viser et ensartet mønster i det, der gør omskrivninger af prompts effektive:

  • Resultatstrukturen er den forbedring, der giver størst afkast — definér den altid
  • Ord- og elementantal fjerner enhver forhandling om længden
  • Beskrivelsen af målgruppen tilpasser automatisk terminologi og detaljeringsniveau
  • Udelukkelsesregler forhindrer forudsigeligt, generisk indhold
  • Delvis specificering efterlader stadig huller — hver uspecificeret dimension bliver et gæt
  • Promptbiblioteker gemmer velfungerende skabeloner, så de kan genbruges
Gratis at komme i gang

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 “Vage og specifikke prompts sammenlignet” gratis?

Ja — alle 3 lektioner i læringssporet Promptteknik til AI, inklusive “Vage og specifikke prompts sammenlignet”, 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 “Vage og specifikke prompts sammenlignet”?

Eksempler side om side, der viser den markante forskel, specificitet gør. 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 4 af 4.

Hvor lang tid tager lektionen “Vage og specifikke prompts sammenlignet”?

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

  1. Hvorfor specificitet er vigtig
  2. Fjern tvetydighed fra prompts
  3. Tilføj konkrete detaljer
  4. Vage og specifikke prompts sammenlignet
← Tilbage til Promptteknik til AI