---
title: "Intégration du SDK Anthropic (Python / TypeScript)"
description: "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."
headingIds: {"Installation":"section-1","Appel":"section-2","Sortie en streaming":"section-3","Appel avec cache":"section-4","Utiliser les variables d’environnement":"section-5","Questions fréquentes":"section-6","Structure des requêtes et des réponses":"section-7"}
---

<aside className="docs-publication" data-pagefind-ignore>

Documentation maintenue par [1ZheAI](https://1zheai.com/en/editorial/#publisher). [Sources et corrections](https://1zheai.com/en/editorial/).

Vous avez trouvé une erreur ? [Contactez l'assistance](mailto:support@1zheai.com) en indiquant l'adresse de la page et une description. N'envoyez pas de clés API ni d'identifiants de compte.

</aside>
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

<CodeGroup>
```bash title="Python"
pip install anthropic
```
```bash title="TypeScript / Node.js"
npm install @anthropic-ai/sdk
```
</CodeGroup>

## Appel

<CodeGroup>
```python title="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)
```
```typescript title="TypeScript"
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);
```
</CodeGroup>

Renseignez l'adresse de base dans `base_url`, sans ajouter `/v1`.

## Sortie en streaming

<CodeGroup>
```python title="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)
```
```typescript title="TypeScript"
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();
```
</CodeGroup>

## Appel avec cache

Placez le contenu long et fixe dans `system` et ajoutez `cache_control` :

```python title="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)
```

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](/fr/docs/prompt-caching/).

## 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 :

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

Puis construire le client sans passer de paramètres :

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

<AccordionGroup>
<Accordion title="404？">

Vous avez ajouté `/v1` dans `base_url`. Le SDK Anthropic assemble lui-même `/v1/messages`.

</Accordion>
<Accordion title="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.

</Accordion>
</AccordionGroup>

## 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](/fr/docs/api-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.
