Anthropic SDK-Integration (Python / TypeScript)
1折AI über die offiziellen Anthropic-SDKs aufrufen: base_url auf https://1zheai.com setzen; nativer Support für Caching, Streaming, Tool-Aufrufe und Thinking.
Die offiziellen Anthropic-SDKs nutzen das native /v1/messages; alle Parameter von Claude können direkt verwendet werden. Zu ändern sind nur base_url und api_key.
Installation
Abschnitt mit dem Titel „Installation“pip install anthropicnpm install @anthropic-ai/sdkimport osimport anthropic
client = anthropic.Anthropic( base_url="https://1zheai.com", api_key=os.environ["ONEZHE_API_KEY"],)
message = client.messages.create( model="claude-sonnet-5-5", max_tokens=1024, messages=[{"role": "user", "content": "用一句话介绍你自己"}],)print(message.model)print(message.content[0].text)print(message.usage)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ baseURL: "https://1zheai.com", apiKey: process.env.ONEZHE_API_KEY,});
const message = await client.messages.create({ model: "claude-sonnet-5-5", max_tokens: 1024, messages: [{ role: "user", content: "用一句话介绍你自己" }],});console.log(message.model);console.log(message.content);console.log(message.usage);base_url mit der Basisadresse eintragen, ohne /v1 anzuhängen.
Streaming-Ausgabe
Abschnitt mit dem Titel „Streaming-Ausgabe“with client.messages.stream( model="claude-sonnet-5-5", max_tokens=1024, messages=[{"role": "user", "content": "写一首四行的诗"}],) as stream: for text in stream.text_stream: print(text, end="", flush=True)const stream = client.messages.stream({ model: "claude-sonnet-5-5", max_tokens: 1024, messages: [{ role: "user", content: "写一首四行的诗" }],});stream.on("text", (text) => process.stdout.write(text));await stream.finalMessage();Aufruf mit Caching
Abschnitt mit dem Titel „Aufruf mit Caching“Lange, unveränderliche Inhalte in system legen und cache_control hinzufügen:
message = client.messages.create( model="claude-sonnet-5-5", max_tokens=1024, system=[ { "type": "text", "text": LONG_PROJECT_CONTEXT, # 每次都一样的长文本 "cache_control": {"type": "ephemeral"}, } ], messages=[{"role": "user", "content": "根据上面的说明回答:..."}],)print(message.usage.cache_creation_input_tokens, message.usage.cache_read_input_tokens)Beim zweiten Aufruf bedeutet cache_read_input_tokens größer als 0 einen Cache-Treffer. Details siehe Prompt Caching.
Verwendung von Umgebungsvariablen
Abschnitt mit dem Titel „Verwendung von Umgebungsvariablen“Die offiziellen SDKs lesen ANTHROPIC_BASE_URL und ANTHROPIC_API_KEY; beim Erstellen des Clients müssen keine Parameter übergeben werden:
export ANTHROPIC_BASE_URL="https://1zheai.com"export ANTHROPIC_API_KEY="sk-你的Key"Anschließend den Client ohne Parameter erstellen:
client = anthropic.Anthropic() # 自动读取上面两个变量Falls auf diesem Rechner auch Claude Code diese beiden Variablen liest, werden beide auf 1折AI umgestellt – in der Regel genau das Gewünschte.
Häufige Fragen
Abschnitt mit dem Titel „Häufige Fragen“404?
In base_url wurde zu viel /v1 eingetragen. Das Anthropic SDK fügt /v1/messages selbst zusammen.
401?
API-Schlüssel (API key) prüfen; zusätzlich liest das SDK auch ANTHROPIC_AUTH_TOKEN, falls diese in der Umgebung vorhanden ist (z. B. ein alter, früher für Claude Code gesetzter Wert) – alten Wert löschen und erneut versuchen.
Anfrage- und Antwortstruktur
Abschnitt mit dem Titel „Anfrage- und Antwortstruktur“Für system, Inhaltsblöcke und Stopp-Gründe die Details der Messages-Schnittstelle einsehen. Ein vollständiges Programm sollte Text anhand des Blocktyps lesen und nicht annehmen, dass der erste Block immer text ist.
