Guide d’intégration des API Blibs

ACCÈS EN BÊTA : Les fonctionnalités, tarifs et paramètres peuvent évoluer à l’avenir.

Alimenté par une architecture optimisée basée sur Blibs, notre API compatible avec OpenAI offre des inférences de modèles de langage à grande échelle hautement performantes – sans nécessiter de ressources GPU dédiées de votre part. Hébergé exclusivement dans des centres de données en UE, il garantit une intégration fluide avec vos applications tout en respectant les exigences strictes du RGPD (règlement général sur la protection des données). En exploitant l’infrastructure évolutive de Trooper.AI, cette solution élimine les contraintes matérielles et permet un déploiement économique pour les startups comme pour les grandes entreprises. Que vous construisiez des chatbots, que vous affiniez des modèles ou que vous déployez des flux de travail d’IA générative, notre API fournit des réponses à faible latence avec une fiabilité niveau entreprise.

Conçu pour la flexibilité, le service s’intègre sans effort dans vos pipelines existants grâce à des points d’accès simples et directs, prenant en charge les traitements par lots ainsi que les requêtes en temps réel. Soutenu par un stockage persistant et des protocoles de sécurité avancés – incluant pare-feu et protection contre les attaques DDoS –, la plateforme garantit une disponibilité continue pour les tâches critiques liées à l’IA. Découvrez ci-dessous nos configurations personnalisées pour répondre aux exigences spécifiques de votre projet.

Commandez l'API Blib maintenant


Modèles et Tarifs

Nos tarifs de base sont les suivants. Des frais supplémentaires par pays peuvent s'appliquer lors d'une commande sur l'API Blib. Vous pouvez également profiter de nos promotions régulières Extra Credits !

Itinéraire Modèle Contexte Input/1M Output/1M +33 % de réduction promo Points forts
liv Google Gemma 4 – 2,3B (+0,15B vision) + 0,3B audio 20,380 €0.029 €0.049 0,029 € 0,022 € en entrée, 0,049 € 0,037 € en sortie Texte, Vision, Audio, Raisonnement, Outils, JSON
clara Mistral Ministral 3 – 13,5B (+0,4B vision) 9,248 €0.139 €0.249 €0,139 €0,105 en entrée, €0,249 €0,187 en sortie Modèle UE, Vision, Outils, Texte, JSON
nikola NVIDIA Nemotron 3 Nano 30B MoE (128 experts, 6 actifs sur ~3,5B) 20,480 €0.159 €0.319 €0.159 à partir de €0.120 en entrée, €0.319 à partir de €0.240 en sortie Texte, Raisonnement, Outils, Codage, JSON

* Offre en cours : obtenez +33 % de crédits supplémentaires sur un paiement à partir de €150 ce mois-ci. Payez €150 et recevez €200 sur votre compte !


Comment commander votre API Key

Avant d'utiliser notre API, vous devez commander votre API Blib sur notre site web : Commander l'API Blib

Vous pouvez choisir votre modèle et votre région, puis après déploiement de celui-ci, vous devriez voir quelque chose comme ceci dans votre tableau de bord d'administration :

API Blib in your Dashboard
API Blib dans votre tableau de bord


Invite système statique gratuit

Nous proposons un system prompt gratuit jusqu’à 1 024 caractères. Le system prompt gratuit n’est disponible que depuis le tableau de bord ! Les messages système dynamiques envoyés via l’API sont facturés comme d’habitude. Cliquez sur Actions et vous verrez la boîte de dialogue pour modifier le system prompt.

API Blib Static System Prompt
Invite système statique API Blib

Allez-y, commandez votre API Blib maintenant :

Commandez l'API Blib maintenant


Benchmark LLM 🧪

LLM Quality Benchmark Interface
Interface de benchmark qualité des modèles LLM

Si vous souhaitez comparer nos points d'accès LLM avec d'autres plateformes LLM, vous pouvez utiliser notre outil gratuit de Benchmark Qualité des LLMs. Voici à quoi il ressemble :

Testez n'importe quelle interface de modèle de langage compatible avec OpenAI grâce à 25 vérifications automatiques de qualité – raisonnement, codage, multilinguisme, sortie structurée, appel d'outils et bien plus encore.


URL de base

Code
https://eu.router.trooper.ai/v1

Points d'accès régionaux pour la résidence des données au niveau national :

Domaine Région
eu.router.trooper.ai UE (tous les centres de données UE)
de.router.trooper.ai Allemagne uniquement
nl.router.trooper.ai Pays-Bas uniquement

Authentification

Tous les appels nécessitent un jeton Bearer. Récupérez votre clé API depuis le tableau de bord

Code
Authorization: Bearer YOUR_TROOPER_KEY

Modèles disponibles

Activez les routes sur trooper.ai/order-apiblib. Chaque route vous donne un nom de modèle à utiliser dans vos appels API.

Itinéraire Modèle de base Points forts
liv Google Gemma 4 Le moins cher. Texte, images, audio et raisonnement. Adapté aux charges de travail à haut volume.
clara Ministral 3 Priorité à la vision. Débit rapide, fort soutien des langues de l'UE.
nikola NVIDIA Nemotron 3 Nano Moteur de raisonnement. Génération de code, appel de fonctions, flux de travail autonomes.

Points d'accès

POST /v1/chat/completions

Point de terminaison compatible avec les complétions de conversation standard d'OpenAI.

GET /v1/models

Liste les modèles activés. Nécessite une authentification. Retourne uniquement les modèles correspondant à la région du domaine depuis lequel vous appelez.

Chaque objet modèle inclut :

Champ Type Description
id chaîne Votre nom d’itinéraire (utilisé comme model (dans les requêtes).
object chaîne Toujours "model".
owned_by chaîne Identifiant du propriétaire.
created entier Horodatage Unix de création.
base_models tableau de chaînes Nom(s) du modèle sous-jacent.
context_length entier Fenêtre de contexte maximale (jetons).
max_tokens entier Nombre maximal de jetons en sortie.
capabilities objet Drapeaux fonctionnels pour ce modèle (voir ci-dessous).
supported_parameters tableau de chaînes Paramètres acceptés par ce modèle.

Objet « capabilités » :

Drapeau Type Description
thinking booléen Prend en charge reasoning_effort et le raisonnement pas à pas.
tools booléen Prise en charge des appels de fonction / outils.
vision booléen Prise en charge des entrées d'image et de fichiers PDF.
audio booléen Prise en charge des entrées audio.
json_mode booléen Prend en charge response_format (mode JSON / sorties structurées)
token_budget booléen Prise en charge du contrôle explicite du budget de jetons pour la réflexion.

Utiliser capabilities.thinking pour déterminer si un modèle accepte les paramètres de raisonnement avant de les envoyer.

Exemple de réponse :

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"
      ]
    }
  ]
}

GET /health

Retourne la disponibilité de l'endpoint et les informations sur la région.

Commandez l'API Blib maintenant


Paramètres de la requête

Tous les paramètres suivent le format de l'API Chat Completions d'OpenAI.

Requis

Paramètre Type Description
model chaîne Votre nom de route (ex. "clara", "nikola", "liv")
messages tableau Tableau d'objets de message (role + content)

Paramètre optionnel

Paramètre Type Par défaut Description
max_tokens entier auto (32–4 096) Nombre maximal de jetons en sortie. Automatiquement limité à la fenêtre de contexte du trajet.
max_completion_tokens entier Aliase pour max_tokens.
stream booléen false Activer le flux en continu (Server-Sent Events - SSE).
temperature nombre modèle par défaut Température d'échantillonnage (0–2).
top_p nombre modèle par défaut Échantillonnage par noyau.
response_format objet {"type": "json_object"} or {"type": "json_schema", "json_schema": {...}}
tools tableau Définitions des outils d'appel de fonction (format OpenAI)
tool_choice chaîne/objet Contrôle la sélection de l'outil (« "auto", "none", ou un outil spécifique).
reasoning objet `{"effort": "aucun"}
reasoning_effort chaîne Raccourci : "none", "medium", "high".
reasoning.exclude booléen false Exclure le contenu de raisonnement de la réponse.

Fonctionnalités

Flux en temps réel

Flux standard en temps réel (Server-Sent Events), entièrement compatible avec la bibliothèque SDK d'OpenAI.

json
{ "stream": true }

Format de la réponse : data: {...}\n\n lignes, terminées par data: [DONE]\n\n.

Mode JSON

Demandez une sortie structurée en format JSON. Assurez-vous non seulement de définir la requête JSON dans le texte du message, mais aussi d'indiquer au moins response_format à json_object !

Si le modèle ne produit pas un JSON valide, vous n’êtes pas facturé(e).

json
{ "response_format": { "type": "json_object" } }

Avec un schéma :

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

Vision (Images et PDF)

Envoyez des images par URL ou en base64. Les PDF sont automatiquement convertis en images de pages côté serveur.

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..." }
}
  • Les images sont redimensionnées automatiquement et leurs métadonnées supprimées (sans risque SSRF).
  • Le nombre maximal d'images et leur taille dépendent de votre configuration de route.
  • Disponible sur les itinéraires liv et clara.

Audio

Envoyer des fichiers audio dans les messages multimodaux. Pris en charge sur liv.

Raisonnement / Réflexion

Contrôlez si et dans quelle mesure le modèle raisonne (chaîne de réflexion) avant de répondre.

Valeur Effet
"none" Désactivé – réponses les plus rapides, utilisation minimale de jetons.
"low" Désactivé — identique à « aucun ».
"medium" Activé — le modèle raisonne étape par étape avant de répondre. Bon équilibre entre qualité et rapidité.
"high" Activé + approfondi — le modèle est invité à réfléchir très soigneusement et en grand détail. Idéal pour les calculs complexes, la logique et le code. Si max_tokens est défini, il doit être d’au moins 4 096, sinon la requête sera rejetée.

Activer la réflexion standard :

json
{ "reasoning_effort": "medium" }

Activer une réflexion approfondie pour une qualité maximale :

json
{ "reasoning_effort": "high" }

Ou via le reasoning objet :

json
{ "reasoning": { "effort": "high" } }

Désactiver explicitement la réflexion :

json
{ "reasoning_effort": "none" }

Pour exclure le raisonnement de la réponse (le traitement a toujours lieu, mais les jetons du raisonnement ne sont pas retournés) :

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

Comportement de réflexion peut également être configuré par itinéraire dans le tableau de bord de gestion. Le paramètre du tableau de bord contrôle le comportement par défaut et la manière dont les raisonnements sont retournés :

Thinking Modes under Actions on supported Models
Modes de réflexion sous Actions pour les modèles pris en charge

  • Désactivé — Le raisonnement est désactivé par défaut. Peut toujours être activé par requête via "reasoning_effort": "moyen" ou "élevé".
  • Suppression — Le raisonnement est activé, mais les jetons de raisonnement sont retirés de la réponse.
  • Contenu de raisonnement — Réflexion activée, le raisonnement est retourné dans un champ séparé contenu_de_raisonnement.
  • Balise de réflexion — Réflexion activée, le raisonnement est retourné sous forme de balises <think> dans le contenu.

Récupération de la réflexion : si le modèle entre dans une boucle de raisonnement, le routeur se rétablit automatiquement et renvoie une réponse exploitable.

Appel de fonction / Outils

Format standard des outils OpenAI. Fonctionne avec toutes les routes.

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"
}

Compression automatique du contexte

Si votre entrée dépasse la fenêtre de contexte, le routeur compresse automatiquement la partie centrale de la conversation pour qu'elle tienne — aucune troncature manuelle nécessaire. Vous recevez toujours une réponse.

Invitation système

Un système de message (system prompt) gratuit peut être configuré par itinéraire dans le tableau de bord de gestion. Il est automatiquement préfixé à chaque demande et non facturé.


Format de réponse

Enveloppe de réponse standard 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
  }
}

Avec le raisonnement activé, la réponse peut inclure reasoning_content aux côtés de content.

Identifiant de transaction

Chaque réponse inclut un(e) x-transaction-id en-tête pour référence de facturation et débogage.


Gestion des erreurs

Les erreurs suivent le format d'enveloppe d'erreur OpenAI :

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

Codes d'erreur

Code statut HTTP Code Description
400 invalid_value Modèle manquant, clé API absente, entrée trop courte ou valeur non valide max_tokens.
403 invalid_api_key Clé API invalide ou budget insuffisant.
404 model_not_found Modèle introuvable ou non activé.
404 region_mismatch Le modèle n'est pas disponible dans la région demandée.
500 Erreur interne du routeur.
503 Aucun point de terminaison disponible dans la région demandée.

Facturation

  • Tarification par jeton — les jetons d’entrée et de sortie sont facturés séparément par million de jetons.
  • Aucuns frais à l’inactivité — vous ne payez que lors des appels à l’API.
  • Crédits prépayés — rechargez votre solde et consommez-les selon l'usage.
  • Les jetons d'invite système sont gratuits (non facturés).
  • Requêtes JSON échouées ne sont pas facturées en mode JSON.
  • Les entrées en vision sont facturées à l'unité (images traitées).

Commandez l'API Blib maintenant


Exemples d’intégration

Consultez des exemples de code populaires pour utiliser une API compatible avec OpenAI pour l'inférence de modèles de langage (LLM). Le domaine router.trooper.ai doit être remplacé par l'URL d'extrémité indiquée dans votre commande API Blib !

Python (SDK OpenAI)

python
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 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 avec flux en continu

python
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)

Mode JSON

python
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)

Analyse d'image

python
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)

Appel de fonction

python
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)

LangChain

python
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

python
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
  }'

Migration depuis OpenAI

Modification en une ligne — mettez à jour l’URL de base et la clé API :

python
# Before (OpenAI)
client = OpenAI(api_key="sk-...")

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

Tout le reste reste identique : format de la requête, schéma de réponse, flux en continu (streaming), outils et mode JSON.


Résidence des données et conformité

  • Tous les traitements effectués dans des centres de données certifiés ISO/IEC 27001, situés en Allemagne et dans l’UE.
  • Zéro rétention des données — les invites et réponses traitées uniquement en mémoire vive (RAM), jamais stockées.
  • Conforme au RGPD — pas de transferts transfrontaliers de données, aucune formation du modèle avec vos données.
  • Routing au niveau national disponible (DE, NL ou UE élargie).

Commandez l'API Blib maintenant