Zum Inhalt springen
Deutsch

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.

Python
pip install anthropic
Python
import os
import 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)

base_url mit der Basisadresse eintragen, ohne /v1 anzuhängen.

Python
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)

Lange, unveränderliche Inhalte in system legen und cache_control hinzufügen:

Python
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.

Die offiziellen SDKs lesen ANTHROPIC_BASE_URL und ANTHROPIC_API_KEY; beim Erstellen des Clients müssen keine Parameter übergeben werden:

bash
export ANTHROPIC_BASE_URL="https://1zheai.com"
export ANTHROPIC_API_KEY="sk-你的Key"

Anschließend den Client ohne Parameter erstellen:

python
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.

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.

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.