Texto

Crear mensaje

Crea un mensaje usando el formato de la API de Anthropic Messages

POST
/v1/messages

Resumen

Este endpoint proporciona compatibilidad nativa con la API de Anthropic Messages. Use esto para los modelos Claude con funciones como extended thinking.

Este endpoint conserva el contrato nativo de Anthropic. messages debe ser un arreglo de mensajes user / assistant, system va en el campo superior system, y max_tokens es obligatorio. Si tu payload usa roles de OpenAI como system, developer o tool dentro de messages, envíalo a /v1/chat/completions.

URL base para el SDK de Anthropic: https://api.tokenlab.sh (sin el sufijo /v1)

Encabezados de la solicitud

x-api-keystringheader

Su clave API de TokenLab. Envíe x-api-key o Authorization: Bearer <API_KEY>.

anthropic-versionstringheaderobligatorio

Versión de la API de Anthropic. Use 2023-06-01.

Cuerpo de la solicitud

Los parámetros opcionales compatibles, sus valores permitidos y sus valores predeterminados dependen del modelo seleccionado. Consulte los detalles del modelo antes de configurar opciones de muestreo, razonamiento o herramientas.

modelstringobligatorio

ID de un modelo compatible con el formato anthropic_messages. Consulte sus capacidades actuales en los detalles del modelo.

messagesarrayobligatorio

Array de objetos de mensaje con role y content.

max_tokensintegerobligatorio

Número máximo de tokens a generar.

systemstring | array

Prompt del sistema como cadena o array de bloques de contenido, separado del array messages.

temperaturenumber

Temperatura de muestreo. La compatibilidad, los valores permitidos y el valor predeterminado dependen del modelo seleccionado. Omita este campo para usar su valor predeterminado.

streambooleanpredeterminado: false

Habilita respuestas en streaming.

thinkingobject

Configuración nativa de thinking. Los modos, presupuestos y combinaciones con otros parámetros compatibles dependen del modelo seleccionado.

toolsarray

Herramientas disponibles para el modelo.

tool_choiceobject

Objeto nativo de selección de herramientas, por ejemplo {"type":"auto"}. Los tipos compatibles dependen del modelo seleccionado.

top_pnumber

Parámetro de nucleus sampling. Use temperatura o top_p, no ambos.

top_kinteger

Muestrea solo entre las K opciones principales para cada token.

stop_sequencesarray

Secuencias de parada personalizadas que harán que el modelo deje de generar.

metadataobject

Metadatos para adjuntar a la solicitud con fines de seguimiento.

Respuesta

idstring

Identificador único del mensaje.

typestring

Siempre message.

rolestring

Siempre assistant.

contentarray

Array de bloques de contenido, como text, thinking o tool_use.

modelstring

Modelo utilizado.

stop_reasonstring

Motivo por el que se detuvo la generación, como end_turn, max_tokens, stop_sequence o tool_use.

usageobject

Uso de tokens con input_tokens y output_tokens.

Solicitud

curl -X POST "https://api.tokenlab.sh/v1/messages" \
  -H "x-api-key: sk-your-api-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "system": "You are a helpful assistant.",
    "messages": [
      {"role": "user", "content": "Hello, Claude!"}
    ]
  }'

Respuesta

Response
{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello! How can I help you today?"
    }
  ],
  "model": "claude-sonnet-5",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 15,
    "output_tokens": 10
  }
}

Ejemplo de entrada de visión

Para los modelos Claude con soporte de visión, coloque las imágenes dentro de messages[].content como bloques de imagen estructurados.

{
  "model": "claude-sonnet-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Please describe this image."
        },
        {
          "type": "image",
          "source": {
            "type": "url",
            "url": "https://example.com/demo.jpg"
          }
        }
      ]
    }
  ]
}
{
  "model": "claude-sonnet-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Please describe this image."
        },
        {
          "type": "image",
          "source": {
            "type": "base64",
            "media_type": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

Ejemplo de Extended Thinking

Establezca TOKENLAB_THINKING_MODEL en un modelo que admita thinking manual con type: "enabled" y budget_tokens. Ajuste ambos presupuestos de tokens a los límites de ese modelo. Otros modelos pueden requerir una configuración de thinking distinta.

import os
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-your-api-key",
    base_url="https://api.tokenlab.sh"
)

message = client.messages.create(
    model=os.environ["TOKENLAB_THINKING_MODEL"],
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{"role": "user", "content": "Solve this math problem..."}]
)

for block in message.content:
    if block.type == "thinking":
        print(f"Thinking: {block.thinking}")
    elif block.type == "text":
        print(f"Response: {block.text}")

Lotes de mensajes de Anthropic

TokenLab ahora expone el flujo nativo de Anthropic Message Batches junto con /v1/messages.

Rutas disponibles:

  • POST /v1/messages/batches
  • GET /v1/messages/batches
  • GET /v1/messages/batches/:message_batch_id
  • GET /v1/messages/batches/:message_batch_id/results
  • POST /v1/messages/batches/:message_batch_id/cancel
  • DELETE /v1/messages/batches/:message_batch_id

Notas operativas:

  • Usa la misma API key de TokenLab junto con los encabezados nativos de Anthropic.
  • Si los elementos del batch hacen referencia a file_id, añade también anthropic-beta: files-api-2025-04-14.
  • Los batch jobs conservan la forma nativa de solicitud/respuesta de Anthropic mientras TokenLab sigue internamente su ciclo de liquidación.

Autorización

BearerAuth
AuthorizationBearer <token>

Autenticación con API Key. Cree o gestione API keys en Dashboard > API > API Keys.

Ubicación: header

Encabezados

X-TokenLab-Delivery-Policy?string

Política de entrega por solicitud. Sustituye los valores predeterminados de la API key y del Workspace. Auto intenta primero con TokenLab Verified y puede cambiar una vez a Official solo antes de la salida, la aceptación de la solicitud o la creación de recursos persistentes.

Valores permitidos

  • "auto"
  • "verified"
  • "official"

Cuerpo de la solicitud

application/json

Respuesta

application/json

application/json

application/json

application/json

application/json

application/json