Cost Optimization
Spar penge på dine LLM API calls uden at gå på kompromis med kvalitet. Lær strategier der kan reducere dine AI omkostninger med 50-90%.
Forstå Hvordan Du Betaler
De fleste LLM providers fakturerer baseret på tokens - både input tokens (din prompt) og output tokens (modellens svar).
1 token ≈ 4 karakterer på engelsk, eller cirka ¾ af et ord. Danske tekster bruger typisk lidt flere tokens.
Eksempel:
"Hej, hvordan har du det?" = cirka 7 tokens
En typisk chatbesked = 50-200 tokens
En side tekst = cirka 500 tokens
Input Tokens
Din prompt + system prompt + conversation history. Typisk billigere end output.
Output Tokens
Modellens svar. Ofte 2-3x prisen af input tokens. Optimer længden!
1. Vælg Den Rigtige Model
Den nemmeste måde at spare penge: Brug ikke en kanon til at skyde spurve! Mindre modeller er ofte tilstrækkelige og betydeligt billigere.
GPT-4o-mini
60x billigere end GPT-4$0.15 / 1M input tokens | $0.60 / 1M output tokens
Perfekt til: Chat, content generation, simple opgaver, high-volume anvendelser
GPT-4o
Balanceret$2.50 / 1M input tokens | $10.00 / 1M output tokens
Perfekt til: Kompleks reasoning, kodegenerering, multimodal opgaver
Claude Sonnet 4
Premium$3.00 / 1M input tokens | $15.00 / 1M output tokens
Perfekt til: Lange dokumenter, kompleks analyse, når kvalitet er kritisk
💡 Pro Tip: Model Routing
Brug en billig model til at klassificere opgaven først, og route kun komplekse spørgsmål til dyre modeller. Kan spare 70%+ på costs.
2. Brug Caching Strategier
Prompt Caching
Anthropic og andre providers tilbyder prompt caching - hvor gentagne dele af din prompt kun faktureres én gang.
Eksempel:
Uden caching:
Hver API call: 10.000 tokens system prompt + 100 tokens user input = 10.100 tokens
Med caching:
Første call: 10.000 tokens (fuld pris)
Næste calls: 100 tokens (90% discount på cached del)
Ideel til:
- Lange system prompts der ikke ændrer sig
- RAG hvor du bruger samme dokumenter gentagne gange
- Chatbots med standard instruktioner
- Few-shot examples i prompts
Response Caching
Gem svar på almindelige spørgsmål og genbruge dem i stedet for at kalde API'et igen.
Simpel implementation:
import redis from 'redis';
const cache = redis.createClient();
async function getCachedResponse(prompt) {
// Tjek cache først
const cached = await cache.get(prompt);
if (cached) return JSON.parse(cached);
// Hvis ikke cached, kald API
const response = await openai.chat.completions.create({
model: "gpt-4o-mini",
messages: [{role: "user", content: prompt}]
});
// Gem i cache (24 timer)
await cache.setEx(prompt, 86400, JSON.stringify(response));
return response;
}Semantic Caching
Mere avanceret: Cache baseret på mening frem for eksakt match. "Hvad er hovedstaden i Frankrig?" og "Fortæl mig Frankrigs capital" får samme cached svar.
Tools:
- • GPTCache: Open source semantic caching library
- • Redis + Embeddings: Byg din egen med vector similarity
- • LangChain: Built-in semantic caching support
3. Optimer Dine Prompts
Vær Kortfattet
Jo færre tokens i din prompt, jo mindre betaler du. Men vær ikke SÅ kort at kvaliteten lider!
❌ Inefficient (180 tokens)
"Jeg vil gerne have at du hjælper mig med at skrive en email til min kollega om det nye projekt vi arbejder på. Emailen skal være professionel men også venlig i tonen. Det er vigtigt at jeg får inkluderet alle de vigtige punkter om projektet, men jeg vil også gerne at det er kort og præcist..."
✅ Efficient (35 tokens)
"Skriv en kort, professionel men venlig email til kollega om nyt projekt. Inkluder: formål, deadline, næste steps."
Begræns Output Længde
Output tokens er dyrere! Specificér max længde i din prompt eller brug max_tokens parameter.
I prompt: "Svar i max 3 sætninger" eller "Under 100 ord"
I API: max_tokens: 150
Struktureret Output
Bed om JSON eller struktureret format i stedet for lang prose. Kortere og nemmere at parse!
❌ Verbose Output
"Produktet hedder 'Smart Watch Pro' og koster 299 kr. Det er i kategorien elektronik og har 4.5 stjerner i rating..."
✅ Struktureret
{
"name": "Smart Watch Pro",
"price": 299,
"category": "elektronik",
"rating": 4.5
}4. Batch Processing
OpenAI Batch API
OpenAI tilbyder en Batch API med 50% discount hvis du kan vente 24 timer på resultatet.
50% Besparelse!
Perfekt til non-urgent opgaver som:
- Bulk data processing
- Nightly jobs (embeddings, kategorisering)
- Dataset evaluering
- Content moderation backlog
Eksempel:
# Opret batch job batch = client.batches.create( input_file_id=file.id, endpoint="/v1/chat/completions", completion_window="24h" ) # Får resultater inden for 24 timer til halv pris!
Kombiner Multiple Spørgsmål
I stedet for 5 separate API calls, kombiner dem til én hvis det giver mening.
❌ 5 Separate Calls
Call 1: "Oversæt til engelsk: ..."
Call 2: "Oversæt til engelsk: ..."
Call 3: "Oversæt til engelsk: ..."
+ overhead for hver call
✅ 1 Combined Call
"Oversæt følgende til engelsk, returner som JSON array:
1. ...
2. ...
3. ..."
5. Andre Strategier
Streaming
Brug streaming til bedre UX uden ekstra cost. Brugere ser output hurtigere.
Trim Conversation History
Send ikke hele chat historikken hver gang. Behold kun relevant kontekst.
Summarize Long Context
Hvis samtalen bliver lang, summarize tidligere beskeder i stedet for at sende alt.
Rate Limiting
Implementér rate limits for at undgå misbrugfuldt forbrug af API calls.
Fallback til Billigere Model
Hvis dyr model fejler eller er slow, fallback til billigere alternativ.
Monitor og Alert
Sæt budgets og alerts så du opdager uventet forbrug før regningen eksploderer.
💰 Beregn Dit Potentielle Savings
Lad os sige du har en chatbot med 10.000 conversations/måned:
Før Optimering
GPT-4o | Avg 2000 tokens/conversation | Ingen caching
Cost: ~$300/måned
Efter Optimering
• Switch til GPT-4o-mini for 80% af queries (-70%)
• Implementér response caching (-40% på resten)
• Trim prompts og optimize output (-20%)
Ny cost: ~$50/måned
Savings: $250/måned = $3,000/år
Og det er kun en lille chatbot! Større applications kan spare $10k-100k+/år.