Saltar al contenido
Español

Integración con el SDK de Anthropic (Python / TypeScript)

Llama a 1折AI con el SDK oficial de Anthropic: base_url es https://1zheai.com, con soporte nativo para caché, streaming, llamadas a herramientas y thinking.

El SDK oficial de Anthropic usa el endpoint nativo /v1/messages, y todos los parámetros de Claude se pueden usar directamente. Lo único que hay que cambiar es base_url y 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)

En base_url se indica la dirección raíz; no añadas /v1.

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)

Coloca el contenido largo y fijo en system y añade cache_control:

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)

En la segunda llamada, si cache_read_input_tokens es mayor que 0, fue un acierto. Para más detalles, consulta Prompt Caching.

El SDK oficial lee ANTHROPIC_BASE_URL y ANTHROPIC_API_KEY; también puedes no pasar parámetros al construir el cliente:

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

Luego, al construir el cliente, no pases parámetros:

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

Si en esta máquina Claude Code también lee estas dos variables, ambas cambiarán a 1折AI, que normalmente es justo lo que quieres.

404?

Se escribió de más /v1 en base_url. El SDK de Anthropic ensambla /v1/messages por sí mismo.

401?

Comprueba la clave de API (API key); además, si en el entorno también existe ANTHROPIC_AUTH_TOKEN (por ejemplo, un valor antiguo configurado antes para Claude Code), el SDK también lo leerá; elimina el valor antiguo y vuelve a intentarlo.

Cuando necesites consultar system, los bloques de contenido y la razón de detención, consulta Detalles de la interfaz Messages. Un programa completo debe leer el texto según el tipo de bloque de contenido, sin asumir que el primer bloque siempre es text.