---
title: "Integração com o SDK da Anthropic (Python / TypeScript)"
description: "Use o SDK oficial da Anthropic para chamar a 1折AI: preencha base_url com https://1zheai.com; suporte nativo a cache, streaming, chamadas de ferramentas e thinking."
headingIds: {"Instalação":"section-1","Chamada":"section-2","Saída em streaming":"section-3","Chamada com cache":"section-4","Usar variáveis de ambiente":"section-5","Perguntas frequentes":"section-6","Estrutura de requisição e resposta":"section-7"}
---

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

Documentação mantida por [1ZheAI](https://1zheai.com/en/editorial/#publisher). [Fontes e correções](https://1zheai.com/en/editorial/).

Encontrou um erro? [Contate o suporte](mailto:support@1zheai.com) com o endereço da página e uma descrição. Não envie chaves de API ou credenciais de conta.

</aside>
O SDK oficial da Anthropic usa o caminho nativo `/v1/messages`, e todos os parâmetros do Claude podem ser usados diretamente. As únicas alterações são em `base_url` e `api_key`.

## Instalação

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

## Chamada

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

Preencha `base_url` com a URL raiz; não adicione `/v1`.

## Saída em 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>

## Chamada com cache

Coloque o conteúdo longo e fixo em `system` e adicione `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)
```

Na segunda chamada, se `cache_read_input_tokens` for maior que 0, houve acerto (cache hit). Para detalhes, consulte [Prompt Caching](/pt/docs/prompt-caching/).

## Usar variáveis de ambiente

O SDK oficial lê `ANTHROPIC_BASE_URL` e `ANTHROPIC_API_KEY`; também é possível não passar parâmetros ao construir o cliente:

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

Em seguida, construa o cliente sem passar parâmetros:

```python
client = anthropic.Anthropic()  # 自动读取上面两个变量
```

Se o Claude Code nesta máquina também ler essas duas variáveis, elas passarão juntas a apontar para a 1折AI — geralmente é exatamente o que você deseja.

## Perguntas frequentes

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

Você escreveu `/v1` a mais em `base_url`. O SDK da Anthropic monta `/v1/messages` automaticamente.

</Accordion>
<Accordion title="401？">

Verifique a chave da API (API key); além disso, se o ambiente também contiver `ANTHROPIC_AUTH_TOKEN` (por exemplo, um valor antigo configurado anteriormente para o Claude Code), o SDK também o lerá — remova o valor antigo e tente novamente.

</Accordion>
</AccordionGroup>

## Estrutura de requisição e resposta

Quando precisar consultar system, blocos de conteúdo e motivos de parada, consulte [Detalhes da interface Messages](/pt/docs/api-messages/). Programas completos devem ler o texto de acordo com o tipo de bloco de conteúdo, sem assumir que o primeiro bloco é sempre text.
