Integração com o SDK da Anthropic (Python / TypeScript)
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.
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
Seção intitulada "Instalação"pip install anthropicnpm install @anthropic-ai/sdkChamada
Seção intitulada "Chamada"import 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);Preencha base_url com a URL raiz; não adicione /v1.
Saída em streaming
Seção intitulada "Saída em 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();Chamada com cache
Seção intitulada "Chamada com cache"Coloque o conteúdo longo e fixo em system e adicione 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)Na segunda chamada, se cache_read_input_tokens for maior que 0, houve acerto (cache hit). Para detalhes, consulte Prompt Caching.
Usar variáveis de ambiente
Seção intitulada "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:
export ANTHROPIC_BASE_URL="https://1zheai.com"export ANTHROPIC_API_KEY="sk-你的Key"Em seguida, construa o cliente sem passar parâmetros:
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
Seção intitulada "Perguntas frequentes"404?
Você escreveu /v1 a mais em base_url. O SDK da Anthropic monta /v1/messages automaticamente.
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.
Estrutura de requisição e resposta
Seção intitulada "Estrutura de requisição e resposta"Quando precisar consultar system, blocos de conteúdo e motivos de parada, consulte Detalhes da interface 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.
