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 anthropic

Configurar 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

ModeloIdeal para
claude-opus-4-6Razonamiento profundo, análisis de formato largo
claude-sonnet-4-6Programación, tareas generales de asistente
claude-haiku-4-5Respuestas rápidas y ligeras

Solución de problemas

En esta página