Guía de integración para desarrolladores de API Blibs

ACCESO TEMPRANADO: Las características, precios y parámetros pueden cambiar en el futuro.

Impulsado por una arquitectura optimizada basada en Blibs, nuestra API compatible con OpenAI ofrece inferencia de alto rendimiento para modelos de lenguaje grandes sin requerir recursos dedicados de GPU en tu infraestructura. Albergada exclusivamente en centros de datos de la UE, garantiza integración fluida con tus aplicaciones mientras cumple estrictos estándares de cumplimiento del GDPR. Aprovechando la infraestructura escalable de Trooper.AI, esta solución elimina las limitaciones de hardware y permite despliegues rentables tanto para startups como para empresas. Ya sea que construyas chatbots, ajuste modelos o implementes flujos de trabajo basados en IA generativa, nuestra API brinda respuestas con baja latencia y confiabilidad a nivel empresarial.

Diseñado para flexibilidad, el servicio se integra sin complicaciones en tuberías existentes mediante puntos finales directos, admitiendo procesamiento por lotes y consultas en tiempo real. Respaldado por almacenamiento persistente y protocolos avanzados de seguridad —incluyendo cortafuegos y protección contra ataques DDoS—, la plataforma garantiza disponibilidad continua para tareas críticas de IA. Explora nuestras configuraciones personalizadas a continuación para ajustarse a las necesidades de tu proyecto.

Ordenar API Blib ahora


Modelos y Precios

Nuestros precios base son los siguientes. Puede aplicarse un precio adicional por país en el pedido de API Blib. Además, puedes aprovechar nuestras promociones regulares de Créditos Extra.

Ruta Modelo Tokens máximos totales Tokenes Máximos de Salida Input/1M Output/1M +25% Oferta Fortalezas
vivo Google Gemma 4 2.3B + 0.15B (visión) + 0.3B (audio) 131,072 4,000 €0.029 €0.049 €0.029 €0.023 entrada, €0.049 €0.039 salida Texto, Chat, Visión, Audio, Razonamiento, Herramientas, JSON
clara Mistral Ministral 3 13.5B + 0.4B (visión) 32,768 2,000 €0.139 €0.249 €0.139 €0.111 entrada, €0.249 €0.199 salida Modelo UE, Visión, Herramientas, Texto, JSON
nikola NVIDIA Nemotron 3 Nano 30B MoE (128 expertos, 6 activos @ 3.5B) 98,304 9,000 €0.159 €0.319 €0.159 €0.127 entrada, €0.319 €0.255 salida Texto, Razonamiento, Herramientas, Codificación, JSON

* Oferta actual: obtén un +25% de Créditos Extra por cada pago desde €160 este mes. ¡Paga €160 y recibe €200 en tu cuenta!


¿Cómo solicitar tu API Blib

Antes de usar nuestra API debe solicitar su API Blib en nuestro sitio web: Ordenar API Blib

Puede elegir su Modelo y su Región, y tras desplegar el modelo deseado debería ver algo así en tu Panel de Gestión:

API Blib in your Dashboard
API Blib en tu Panel de Control


Indicador de sistema estático gratuito

Ofrecemos un system prompt gratuito de hasta 1,024 caracteres. El system prompt gratuito solo está disponible desde el panel de control. Los mensajes dinámicos del sistema enviados mediante la API se cobran según lo habitual. Haz clic en Acciones y verás el diálogo para editar el system prompt.

API Blib Static System Prompt
Prompt estático del sistema de API Blib

¡Vamos, ordena tu API Blib ahora:

Ordenar API Blib ahora


Benchmark de MLL 🧪

LLM Quality Benchmark Interface
Interfaz de Evaluación de Calidad del Modelo de Lenguaje

Si deseas comparar nuestros puntos finales de modelos de lenguaje (LLM) con otras plataformas de LLM, puedes usar nuestra herramienta gratuita para evaluar la calidad del modelo aquí: Free LLM Quality Benchmark. Así es como se ve:

Prueba cualquier punto de extremo compatible con OpenAI de modelos de lenguaje (LLM) con 25 verificaciones automáticas de calidad — razonamiento, programación, multilingüe, salida estructurada, llamadas a herramientas y más.


URL base

Código
https://eu.router.trooper.ai/v1

Puntos finales regionales para residencia de datos por país:

Dominio Región
eu.router.trooper.ai UE (todos los centros de datos de la UE)
de.router.trooper.ai Alemania solo
nl.router.trooper.ai Países Bajos solo

Autenticación

Todas las solicitudes requieren un token Bearer. Obtenga su clave de API desde el panel de gestión .

Código
Authorization: Bearer YOUR_TROOPER_KEY

Modelos disponibles

Activa rutas en trooper.ai/order-apiblib . Cada ruta te proporciona un nombre de modelo que usas en las llamadas a la API.

Ruta Modelo base Fortalezas
vivo Google Gemma 4 El más económico. Texto, imágenes, audio y razonamiento. Cargas de trabajo de alto volumen.
clara Ministral 3 Enfoque en visión. Alto rendimiento y fuerte soporte para idiomas de la UE.
nikola NVIDIA Nemotron 3 Nano Potencia en razonamiento. Generación de código, llamadas a funciones y flujos de trabajo autónomos.

Puntos de extremo

POST /v1/chat/completions

Punto de extremo compatible con OpenAI para completiones de chat estándar.

Obtener /v1/models

Lista tus modelos activados. Requiere autenticación. Devuelve solo los modelos que coincidan con la región del dominio desde el cual realizas la llamada.

Cada objeto de modelo incluye:

Campo Tipo Descripción
id cadena El nombre de tu ruta (usado como model (en las solicitudes).
object cadena Siempre "model".
owned_by cadena Identificador del propietario.
created entero Marca de tiempo Unix de creación.
base_models cadena[] Nombre(s) del modelo subyacente.
context_length entero Ventana de contexto máxima (tokens)
max_tokens entero Tokens de salida máximos.
capabilities objeto Bandera de características para este modelo (ver abajo).
supported_parameters cadena[] Parámetros aceptados por este modelo.

Objeto de capacidades:

Indicador Tipo Descripción
thinking booleano Soporta reasoning_effort y razonamiento paso a paso.
tools booleano Soporta llamadas a funciones / herramientas.
vision booleano Admite entradas de imagen y archivos PDF.
audio booleano Admite entradas de audio.
json_mode booleano Soporta response_format (modo JSON / salidas estructuradas).
token_budget booleano Soporta control explícito del presupuesto de tokens.

Usa capabilities.thinking para determinar si un modelo acepta parámetros de razonamiento antes de enviarlos.

Ejemplo de respuesta:

JSON
{
  "object": "list",
  "data": [
    {
      "id": "clara",
      "object": "model",
      "owned_by": "trooper_42",
      "created": 1700000000,
      "base_models": ["Ministral-3"],
      "context_length": 131072,
      "max_tokens": 131072,
      "capabilities": {
        "tools": true,
        "vision": true,
        "audio": false,
        "thinking": false,
        "json_mode": true,
        "token_budget": false
      },
      "supported_parameters": [
        "temperature", "top_p", "max_tokens", "stream",
        "response_format", "tools", "tool_choice"
      ]
    }
  ]
}

Obtener /health

Devuelve la disponibilidad del punto de extremo y la información regional.

Ordenar API Blib ahora


Parámetros de solicitud

Todos los parámetros siguen el formato de la API OpenAI Chat Completions.

Obligatorio

Parámetro Tipo Descripción
model cadena El nombre de tu ruta (por ejemplo "clara", "nikola", "liv")
messages arreglo Arreglo de objetos de mensaje (role + content)

Parámetros opcionales

Parámetro Tipo Disponibilidad del endpoint y región. GET /health Ordenar API Blib ahora Parámetros de solicitud: Todos los parámetros siguen el formato de la API Completiones de chat de OpenAI. Obligatorios Tipo Descripción model Cadena: Nombre de ruta (ejemplo: «clara», «nikola», «liv»). messages Matriz de objetos mensaje (rol + contenido). Opcionales Tipo Valor por defecto Descripción max_tokens entero (auto; rango 32–4096) Tokens máximo en respuesta. Ajustado automáticamente al contexto de la ruta. maxcompletiontokens - Alias para max_tokens. stream booleano (falso) Activa transmisión en tiempo real vía SSE (Eventos enviados por servidor). temperature numérico (valor predeterminado del modelo) Temperatura de muestreo (escala 0–2). top_p numérico (valor predeterminado del modelo) Muestra nucleada (núcleo sampling). responseformat objeto — {"type": "jsonobject"} o {"type": "jsonschema", "schemajson": {...}} herramientas matriz... Descripción
max_tokens entero automático (32–4096) Tokens de salida máximos. Automáticamente ajustados al límite del contexto de la ruta.
max_completion_tokens entero Aliás de max_tokens.
stream booleano false Habilitar transmisión por eventos en tiempo real (SSE).
temperature número valor por defecto del modelo Temperatura de muestreo (0–2)
top_p número valor por defecto del modelo Muestreo por núcleo.
response_format objeto {"type": "json_object"} or {"type": "json_schema", "json_schema": {...}}
tools arreglo Definiciones de herramientas para llamadas a funciones (formato OpenAI).
tool_choice cadena/objeto Controla la selección de herramientas («"auto", "none", o una herramienta específica).
reasoning objeto {«esfuerzo»: «ninguno»}
reasoning_effort cadena Abreviatura: "none", "medium", "high".
reasoning.exclude booleano false Excluir el contenido de razonamiento en la respuesta.

Características

Transmisión en tiempo real

Transmisión por eventos en tiempo real estándar SSE, completamente compatible con la SDK de OpenAI.

JSON
{ "stream": true }

Formato de respuesta: data: {...}\n\n líneas, terminadas por data: [DONE]\n\n.

Modo JSON

Solicita una salida estructurada en formato JSON. Asegúrate de no solo configurar la solicitud de JSON en el mensaje de texto; también debes establecer al menos response_format como json_object.

Si el modelo no logra producir un JSON válido, no se le cobrará.

JSON
{ "response_format": { "type": "json_object" } }

Con un esquema:

JSON
{
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "my_schema",
      "schema": {
        "type": "object",
        "properties": {
          "name": { "type": "string" },
          "age": { "type": "integer" }
        },
        "required": ["name", "age"]
      }
    }
  }
}

Visión (Imágenes y PDF)

Envía imágenes mediante URL o base64. Los PDF se convierten automáticamente en imágenes de páginas del lado del servidor.

JSON
{
  "messages": [{
    "role": "user",
    "content": [
      { "type": "image_url", "image_url": { "url": "https://example.com/photo.jpg" } },
      { "type": "text", "text": "Describe this image." }
    ]
  }]
}

Base64:

JSON
{
  "type": "image_url",
  "image_url": { "url": "data:image/png;base64,iVBOR..." }
}
  • Las imágenes se redimensionan automáticamente y se les elimina la metadatos (SSRF-safe).
  • El número máximo de imágenes y su tamaño dependen de la configuración de tu ruta.
  • Soportado en rutas liv y clara.

Audio

Envía archivos de audio en mensajes multimodales. Soportado en liv. Longitud máxima es de 30 segundos debido a las limitaciones de Gemma 4. Si necesitas más tiempo, divide tu audio en segmentos solapados y envíalos uno por uno junto con los resultados de las partes ya transcritas.

Pensamiento / Razonamiento

Controla si y en qué medida el modelo razona (chain-of-thought) antes de responder.

Valor Efecto
"none" Pensamiento desactivado — respuestas más rápidas, menor uso de tokens.
"low" Pensamiento desactivado — igual que "ninguno".
"medium" Razonamiento activado — el modelo razona paso a paso antes de responder. Equilibrio óptimo entre calidad y velocidad.
"high" Razonamiento activado + profundo — el modelo está instruido para pensar con gran cuidado y en detalle exhaustivo. Ideal para matemáticas complejas, lógica y código. Si se establece max_tokens, debe ser al menos 4 096 o la solicitud será rechazada.

Activar pensamiento estándar:

JSON
{ "reasoning_effort": "medium" }

Activar pensamiento profundo para máxima calidad:

JSON
{ "reasoning_effort": "high" }

O bien mediante el reasoning objeto:

JSON
{ "reasoning": { "effort": "high" } }

Deshabilitar el pensamiento explícitamente:

JSON
{ "reasoning_effort": "none" }

Para eliminar el razonamiento de la respuesta (el pensamiento sigue ocurriendo, pero los tokens del razonamiento no se devuelven):

JSON
{ "reasoning": { "effort": "high", "exclude": true } }

Comportamiento de Pensamiento también puede configurarse por ruta en el panel de gestión. La configuración del panel controla el comportamiento predeterminado y cómo se devuelve la razonamientorazonamiento:

Thinking Modes under Actions on supported Models
Modos de Pensamiento bajo Acciones en Modelos compatibles

  • Deshabilitado — Pensamiento desactivado por defecto. Puede seguir habilitándose por solicitud mediante "reasoning_effort": "medio" o "alto"
  • Eliminar — El pensamiento está activado, pero se eliminan los tokens de razonamiento en la respuesta.
  • Contenido de Razonamiento — Pensando activado, el razonamiento se devuelve en un campo separado razonamiento_contenido.
  • Etiqueta de Pensamiento — El pensamiento está activado y el razonamiento se devuelve como etiquetas <think> dentro del contenido.

Recuperación por razonamiento: si el modelo entra en un bucle de razonamiento, la ruta se recupera automáticamente y devuelve una respuesta utilizable.

Llamada a Funciones / Herramientas

Formato estándar de herramientas de OpenAI. Funciona con todas las rutas.

JSON
{
  "tools": [{
    "type": "function",
    "function": {
      "name": "get_weather",
      "description": "Get current weather for a location",
      "parameters": {
        "type": "object",
        "properties": {
          "location": { "type": "string" }
        },
        "required": ["location"]
      }
    }
  }],
  "tool_choice": "auto"
}

Compresión Automática de Contexto

Si su entrada supera la ventana de contexto, el enrutador comprime automáticamente la parte central de la conversación para ajustarla sin necesidad de truncación manual. Siempre recibirá una respuesta.

Indicador del sistema

Un system prompt gratuito puede configurarse por ruta en el panel de administración. Se añade automáticamente al inicio de cada solicitud y no tiene costo.


Formato de respuesta

Estructura de respuesta estándar de OpenAI:

JSON
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1700000000,
  "model": "clara",
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "Hello! How can I help you?"
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 8,
    "total_tokens": 20
  }
}

Con el razonamiento habilitado, la respuesta puede incluir reasoning_content junto content.

ID de transacción

Cada respuesta incluye un x-transaction-id encabezado para referencia de facturación y depuración.


Manejo de errores

Los errores siguen el formato de sobre de error de OpenAI:

JSON
{
  "error": {
    "message": "The model 'nonexistent' does not exist.",
    "type": "invalid_request_error",
    "param": "model",
    "code": "model_not_found"
  }
}

Códigos de error

Estado HTTP Código Descripción
400 invalid_value Modelo faltante, clave de API ausente, entrada demasiado corta o inválida max_tokens.
403 invalid_api_key Clave de API inválida o presupuesto insuficiente.
404 model_not_found El modelo no existe o no está activado.
404 region_mismatch El modelo no está disponible en la región solicitada.
500 Error interno del enrutador.
503 No hay puntos de extremo disponibles en la región solicitada.

Facturación

  • Precio por token — se facturan los tokens de entrada y salida por separado cada millón de tokens.
  • Sin costos por inactividad — solo pagas cuando realizas llamadas a la API.
  • Créditos prepagos — recarga tu saldo y consume según el uso.
  • Tokens del sistema de prompt son gratuitos (no se cobran).
  • Peticiones JSON fallidas no se cobran al usar el modo JSON.
  • Las entradas de visión se facturan por unidad (imágenes procesadas).

Ordenar API Blib ahora


Ejemplos de integración

Consulta ejemplos populares de código para usar una API compatible con OpenAI para inferencia en modelos de lenguaje. ¡Debe reemplazarse router.trooper.ai por la URL del punto final mostrada en tu orden de API Blib!

Python (SDK de OpenAI)

pythón
from openai import OpenAI

client = OpenAI(
    base_url="https://router.trooper.ai/v1",
    api_key="YOUR_TROOPER_KEY"
)

response = client.chat.completions.create(
    model="clara",
    messages=[{"role": "user", "content": "Summarize this document."}],
    max_tokens=1024
)

print(response.choices[0].message.content)

Node.js (SDK de OpenAI)

JavaScript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://router.trooper.ai/v1",
  apiKey: "YOUR_TROOPER_KEY",
});

const response = await client.chat.completions.create({
  model: "nikola",
  messages: [{ role: "user", content: "Write a unit test for this function." }],
  max_tokens: 2048,
});

console.log(response.choices[0].message.content);

Python con transmisión en tiempo real

pythón
from openai import OpenAI

client = OpenAI(
    base_url="https://router.trooper.ai/v1",
    api_key="YOUR_TROOPER_KEY"
)

stream = client.chat.completions.create(
    model="liv",
    messages=[{"role": "user", "content": "Explain quantum computing."}],
    max_tokens=2048,
    stream=True
)

for chunk in stream:
    content = chunk.choices[0].delta.content
    if content:
        print(content, end="", flush=True)

Modo JSON

pythón
import json
from openai import OpenAI

client = OpenAI(
    base_url="https://router.trooper.ai/v1",
    api_key="YOUR_TROOPER_KEY"
)

response = client.chat.completions.create(
    model="clara",
    messages=[{"role": "user", "content": "List the 3 largest EU countries as JSON with name and population."}],
    max_tokens=512,
    response_format={"type": "json_object"}
)

data = json.loads(response.choices[0].message.content)
print(data)

Visión (Análisis de Imágenes)

pythón
from openai import OpenAI

client = OpenAI(
    base_url="https://router.trooper.ai/v1",
    api_key="YOUR_TROOPER_KEY"
)

response = client.chat.completions.create(
    model="clara",
    messages=[{
        "role": "user",
        "content": [
            {"type": "image_url", "image_url": {"url": "https://example.com/invoice.png"}},
            {"type": "text", "text": "Extract all line items from this invoice as JSON."}
        ]
    }],
    max_tokens=2048,
    response_format={"type": "json_object"}
)

print(response.choices[0].message.content)

Llamada a función

pythón
from openai import OpenAI

client = OpenAI(
    base_url="https://router.trooper.ai/v1",
    api_key="YOUR_TROOPER_KEY"
)

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get weather for a location",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {"type": "string", "description": "City name"}
            },
            "required": ["location"]
        }
    }
}]

response = client.chat.completions.create(
    model="nikola",
    messages=[{"role": "user", "content": "What's the weather in Berlin?"}],
    tools=tools,
    tool_choice="auto",
    max_tokens=512
)

tool_calls = response.choices[0].message.tool_calls
if tool_calls:
    print(tool_calls[0].function.name, tool_calls[0].function.arguments)

Cadena de Lenguaje

pythón
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url="https://router.trooper.ai/v1",
    api_key="YOUR_TROOPER_KEY",
    model="clara",
    max_tokens=1024
)

response = llm.invoke("Extract all dates from the following text: ...")
print(response.content)

LlamaIndex

pythón
from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://router.trooper.ai/v1",
    api_key="YOUR_TROOPER_KEY",
    model="nikola",
    max_tokens=2048
)

response = llm.complete("Explain the EU AI Act in simple terms.")
print(response.text)

curl

bash
curl https://router.trooper.ai/v1/chat/completions \
  -H "Authorization: Bearer YOUR_TROOPER_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "clara",
    "messages": [{"role": "user", "content": "Hello!"}],
    "max_tokens": 512
  }'

Migración desde OpenAI

Cambio de una línea — actualizar la URL base y la clave API:

pythón
# Before (OpenAI)
client = OpenAI(api_key="sk-...")

# After (Trooper.AI)
client = OpenAI(
    base_url="https://router.trooper.ai/v1",
    api_key="YOUR_TROOPER_KEY"
)

Todo lo demás sigue igual: formato de solicitud, esquema de respuesta, transmisión en tiempo real (streaming), herramientas y modo JSON.


Residencia de Datos y Cumplimiento Normativo

  • Todo el procesamiento en centros de datos certificados con ISO/IEC 27001 en Alemania y la UE.
  • Retención cero de datos — los prompts y respuestas se procesan solo en RAM, nunca almacenados.
  • Cumplimiento con el GDPR — sin transferencias transfronterizas de datos, sin entrenamiento del modelo con sus datos.
  • Enrutamiento por país disponible (Alemania (DE), Países Bajos (NL) o la UE en general).

Ordenar API Blib ahora