
Claude mit dem Vercel AI SDK: createAnthropic baseURL, Streaming und Fehlerbehebung
Der Anthropic-Anbieter des AI SDK, @ai-sdk/anthropic, kommuniziert mit der Messages API. Seine baseURL ist standardmäßig https://api.anthropic.com/v1, daher ersetzen Sie für ein Gateway dieses gesamte Präfix, einschließlich /v1. OpenCode, Kilo Code und viele Agenten-Frameworks verwenden intern denselben Anbieter, weshalb dieselbe Regel auch in ihren Konfigurationen gilt.
Installation
npm i ai @ai-sdk/anthropicAnbieter erstellen
import { createAnthropic } from '@ai-sdk/anthropic';
export const anthropic = createAnthropic({
baseURL: 'https://aiprimetech.io/v1', // replaces https://api.anthropic.com/v1
apiKey: process.env.AIPRIME_API_KEY, // sent as x-api-key; defaults to ANTHROPIC_API_KEY
});@ai-sdk/anthropic: Übergeben Sie baseURL im Code. Der einfache anthropic -Import verwendet immer den eigenen Endpunkt von Anthropic.generateText und streamText
import { generateText } from 'ai';
import { anthropic } from './lib/anthropic';
const { text, usage } = await generateText({
model: anthropic('claude-sonnet-5'),
prompt: 'Explain idempotency keys in two sentences.',
});
console.log(text, usage);import { streamText } from 'ai';
import { anthropic } from './lib/anthropic';
const result = streamText({
model: anthropic('claude-sonnet-5'),
prompt: 'Write a haiku about load balancers.',
});
for await (const chunk of result.textStream) process.stdout.write(chunk);Beide Aufrufe akzeptieren maxRetries (standardmäßig 2) für vorübergehende Fehler wie 429 und 5xx.
Thinking und Prompt-Caching
Anthropic-spezifische Optionen werden in providerOptions.anthropicangegeben. Aktuelle Modelle verwenden adaptives Thinking:
const { text } = await generateText({
model: anthropic('claude-sonnet-5'),
providerOptions: { anthropic: { thinking: { type: 'adaptive' } } },
prompt: 'Plan a zero-downtime database migration in five steps.',
});Speichern Sie einen langen, stabilen Systemprompt im Cache mit cacheControl; Cache-Lesezugriffe erscheinen dann in usage.inputTokenDetails.cacheReadTokens. Prompts unterhalb der Mindestlänge des Modells werden nicht im Cache gespeichert.
const result = await generateText({
model: anthropic('claude-sonnet-5'),
messages: [
{
role: 'system',
content: longStableInstructions,
providerOptions: { anthropic: { cacheControl: { type: 'ephemeral' } } },
},
{ role: 'user', content: question },
],
});Die OpenAI-kompatible Alternative
Das Gateway unterstützt auch das Format von OpenAI Chat Completions, sodass @ai-sdk/openai-compatible mit derselben /v1 -Basis-URL funktioniert. Dies ist der Zugangsweg für GPT-Modelle mit demselben Schlüssel; bei Claude erhält der oben beschriebene native Anbieter Thinking und die Cache-Steuerung.
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
const gateway = createOpenAICompatible({
name: 'aiprime',
baseURL: 'https://aiprimetech.io/v1',
apiKey: process.env.AIPRIME_API_KEY,
});
// gateway('claude-sonnet-5') or a GPT model IDFehlerbehebung
| Was Sie sehen | Ursache | Lösung |
|---|---|---|
Ein JSON-Parsing-Fehler, die Antwort beginnt mit < | baseURL ohne /v1: Die Anfrage erreichte die Website | baseURL: 'https://aiprimetech.io/v1' |
404 page not found | /v1 zweimal | Genau ein /v1 |
Invalid API key | process.env -Wert ist in dieser Laufzeitumgebung nicht definiert (Serverless- und Edge-Funktionen haben eigene Umgebungsvariablen), daher griff das SDK zurück auf ANTHROPIC_API_KEY | Setzen Sie die Variable in der Umgebung des Deployments |
| Modell nicht unterstützt | Veraltete oder falsch geschriebene Modell-ID | Verwenden Sie eine ID aus der folgenden Tabelle |
Concurrency limit exceeded for user | Promise.all über ein großes Array | Begrenzen Sie parallele Aufrufe, z. B. mit p-limit |
No available accounts / 503 | Vorübergehend begrenzte Kapazität beim vorgelagerten Anbieter | Wird automatisch erneut versucht; erhöhen Sie maxRetries |
| Modell-ID | Einsatzbereich |
|---|---|
claude-sonnet-5 | Standard für Programmier- und Agentenaufgaben: schnell, leistungsstark, mittleres Preisniveau. |
claude-opus-5-5 | Anspruchsvollere Denkaufgaben, umfangreiche Refactorings, lange Agentenläufe. |
claude-fable-5-1 | Am leistungsfähigsten und am teuersten; für die schwierigsten Aufgaben reservieren. |
claude-haiku-4-5 | Günstig und schnell: Titel, Zusammenfassungen, Klassifizierung, kleine Schritte. |
Häufig gestellte Fragen
Was ist die standardmäßige baseURL von @ai-sdk/anthropic?
Gibt es eine Umgebungsvariable für die Anthropic-Basis-URL des AI SDK?
Warum schlägt das AI SDK beim Aufruf von Claude mit einem Parsing-Fehler fehl?
Sollte ich @ai-sdk/anthropic oder @ai-sdk/openai-compatible für Claude verwenden?
Holen Sie sich einen API-Schlüssel – ohne Anthropic-Konto oder Warteliste.
API-Schlüssel erhaltenAI Prime Tech ist ein unabhängiges API-Gateway. Es ist weder mit Anthropic verbunden noch von Anthropic empfohlen und auch kein Wiederverkäufer von Anthropic. Claude und zugehörige Modellnamen sind Marken ihrer jeweiligen Inhaber.