Intégration du SDK Anthropic (Python / TypeScript)
Appeler 1折AI avec le SDK officiel Anthropic : base_url sur https://1zheai.com, prise en charge native du cache, du streaming, des appels d'outils et du thinking.
Le SDK officiel Anthropic utilise le protocole natif /v1/messages ; tous les paramètres de Claude peuvent être utilisés directement. Les seuls éléments à modifier sont base_url et api_key.
Installation
Section intitulée « 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);Renseignez l’adresse de base dans base_url, sans ajouter /v1.
Sortie en streaming
Section intitulée « Sortie en streaming »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();Appel avec cache
Section intitulée « Appel avec cache »Placez le contenu long et fixe dans system et ajoutez cache_control :
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)Lors du deuxième appel, si cache_read_input_tokens est supérieur à 0, c’est un cache hit. Pour les détails, voir Prompt Caching.
Utiliser les variables d’environnement
Section intitulée « Utiliser les variables d’environnement »Le SDK officiel lit ANTHROPIC_BASE_URL et ANTHROPIC_API_KEY ; vous pouvez omettre les paramètres lors de la construction du client :
export ANTHROPIC_BASE_URL="https://1zheai.com"export ANTHROPIC_API_KEY="sk-你的Key"Puis construire le client sans passer de paramètres :
client = anthropic.Anthropic() # 自动读取上面两个变量Si Claude Code lit également ces deux variables sur cette machine, elles basculeront toutes deux vers 1折AI, ce qui est généralement ce que vous souhaitez.
Questions fréquentes
Section intitulée « Questions fréquentes »404?
Vous avez ajouté /v1 dans base_url. Le SDK Anthropic assemble lui-même /v1/messages.
401?
Vérifiez la clé API (API key) ; de plus, si l’environnement contient également ANTHROPIC_AUTH_TOKEN (par exemple une ancienne valeur définie pour Claude Code), le SDK la lira aussi — supprimez l’ancienne valeur et réessayez.
Structure des requêtes et des réponses
Section intitulée « Structure des requêtes et des réponses »Pour consulter system, les blocs de contenu et la raison d’arrêt, voir Détail de l’interface Messages. Un programme complet doit lire le texte en fonction du type de bloc de contenu, sans supposer que le premier bloc est toujours text.
