Eine AI-Anwendung lokal zum Laufen zu bringen ist der einfache Teil. Sie zuverlässig, kosteneffizient und skalierbar in Produktion zu betreiben, erfordert spezifische Strategien für Vercel und das AI SDK.
AI-Anwendungen auf Vercel erfordern besondere Aufmerksamkeit:
// next.config.ts
export default {
experimental: {
serverActions: {
bodySizeLimit: '4mb', // Für Bild-Uploads
},
},
}
| Variable | Beschreibung | Pflicht |
|---|---|---|
OPENAI_API_KEY | OpenAI API Key | Ja (bei OpenAI) |
ANTHROPIC_API_KEY | Anthropic API Key | Ja (bei Anthropic) |
AI_PROVIDER | Default Provider | Optional |
AI_MAX_TOKENS | Token-Limit pro Request | Empfohlen |
AI_RATE_LIMIT | Requests pro Minute | Empfohlen |
Vercel bietet einen AI Gateway als Proxy zwischen Ihrer Anwendung und AI-Providern:
Vercel Edge Runtime führt Code an global verteilten Edge-Locations aus — minimale Latenz:
export const runtime = 'edge'
export async function POST(req: Request) {
const { messages } = await req.json()
const result = streamText({
model: openai('gpt-4.1'),
messages,
})
return result.toDataStreamResponse()
}
Edge Runtime eignet sich für:
Node.js Runtime bevorzugen bei:
import { Ratelimit } from '@upstash/ratelimit'
import { Redis } from '@upstash/redis'
const ratelimit = new Ratelimit({
redis: Redis.fromEnv(),
limiter: Ratelimit.slidingWindow(10, '1 m'), // 10 Requests/Minute
})
export async function POST(req: Request) {
const userId = getUserId(req)
const { success } = await ratelimit.limit(userId)
if (!success) {
return new Response('Rate limit exceeded', { status: 429 })
}
// ... AI SDK Logic
}
| Level | Limit | Zweck |
|---|---|---|
| Free Tier | 20 Requests/Tag | Testen und Onboarding |
| Pro Tier | 100 Requests/Stunde | Normale Nutzung |
| Enterprise | Custom | Nach Vereinbarung |
| Per-Model | Variabel | Teure Modelle stärker limitieren |
Jeder AI-Call verbraucht Tokens — und Tokens kosten Geld:
const result = await generateText({
model: openai('gpt-4.1'),
prompt: '...',
})
// Token-Verbrauch loggen
console.log({
inputTokens: result.usage.promptTokens,
outputTokens: result.usage.completionTokens,
totalTokens: result.usage.totalTokens,
estimatedCost: calculateCost(result.usage),
})
| Modell | Input | Output |
|---|---|---|
| GPT-4.1 | $2.00 | $8.00 |
| GPT-4.1 mini | $0.40 | $1.60 |
| Claude Sonnet 4 | $3.00 | $15.00 |
| Gemini 2.5 Flash | $0.15 | $0.60 |
maxTokens setzen, um Endlos-Responses zu vermeidenconst model = abTest('ai-model-test', userId) === 'variant_a'
? openai('gpt-4.1-mini')
: anthropic('claude-sonnet-4-20250514')
const result = streamText({ model, messages })
Was A/B testen:
Tracken Sie diese Metriken in Produktion:
Production-Regel: Deployen Sie AI-Features hinter Feature Flags. Starten Sie mit 5 % der Nutzer, messen Sie Kosten und Qualität, und skalieren Sie schrittweise auf 100 %. Ein unkontrolliertes Rollout kann Ihre API-Rechnung in Stunden explodieren lassen.
Wann sollte man Edge Runtime statt Node.js Runtime für AI-Endpoints verwenden?