SDKs nativos
SDK de Anthropic
Usa TokenLab con el SDK de Anthropic para compatibilidad nativa con la Messages API de Claude
Resumen general
TokenLab admite la ruta nativa de la Messages API de Anthropic, por lo que puedes usar directamente el SDK oficial de Anthropic para los modelos Claude.
Para el SDK de Anthropic, usa https://api.tokenlab.sh como URL base, sin agregar /v1 manualmente.
Entre las rutas SDK documentadas, esta es una de las rutas de TokenLab con mejor compatibilidad para las funciones nativas de Claude.
Instalación
pip install anthropicConfigurar el cliente
from anthropic import Anthropic
client = Anthropic(
api_key="sk-your-tokenlab-key",
base_url="https://api.tokenlab.sh",
)Uso básico
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[
{"role": "user", "content": "Reply with: Connected to TokenLab."}
]
)
print(message.content[0].text)Streaming
with client.messages.stream(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Write a short poem about coding."}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)Visión
import base64
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image",
"source": {
"type": "url",
"url": "https://example.com/image.jpg"
}
}
]
}]
)
with open("image.png", "rb") as f:
image_data = base64.b64encode(f.read()).decode()
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image"},
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data
}
}
]
}]
)Uso de herramientas
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
tools=[{
"name": "get_weather",
"description": "Get the weather for a location",
"input_schema": {
"type": "object",
"properties": {
"location": {"type": "string"}
},
"required": ["location"]
}
}],
messages=[{"role": "user", "content": "What's the weather in Tokyo?"}]
)
for block in message.content:
if block.type == "tool_use":
print(block.name)
print(block.input)Pensamiento extendido
message = client.messages.create(
model="claude-opus-5",
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000
},
messages=[{"role": "user", "content": "Solve this complex problem step by step."}]
)
for block in message.content:
if block.type == "thinking":
print(block.thinking)
elif block.type == "text":
print(block.text)Modelos Claude recomendados
| Modelo | Ideal para |
|---|---|
claude-opus-4-6 | Razonamiento profundo, análisis de formato largo |
claude-sonnet-4-6 | Programación, tareas generales de asistente |
claude-haiku-4-5 | Respuestas rápidas y ligeras |