API Blibs – Integrationsguide til udviklere

TILGÅNG FOR TIDLIG ADGANG: Funktioner, priser og parametre kan ændres i fremtiden.

Blibs-baseret arkitektur med optimalisering leverer vores OpenAI-kompatibel API højtydende inferens af store sprogmodeller – uden at kræve dedikerede GPU-resourcer hos dig. Værktøjet er udelukkende hostet i EU-datakentre, hvilket sikrer problemfri integration med dine applikationer samt overholdelse af strenge krav til overholdelse af GDPR. Ved hjælp af Trooper.AIs skalerbare infrastruktur fjerner denne løsning hardware-begrænsninger og muliggør omkostningseffektiv implementering for både startups og virksomheder. Uanset om du bygger chatbots, finjusterer modeller eller implementerer generativ AI-workflows, giver vores API lav-latens respons med pålidelighed på entreprise-niveau.

Udviklet til fleksibilitet integrerer tjenesten problemfrit med eksisterende pipeline-virksomheder via enkle endpoints og understøtter både batchbehandling og reelle tidsspørgsmål. Med vedvarende lagring og avancerede sikkerhedsprotokoller – herunder brandvægge og beskyttelse mod DDoS-angreb – garanterer platformen uafbrudt drift for kritiske AI-opgaver af højeste prioritet. Udforsk vores skræddersyede konfigurationer nedenfor for at imødekomme dit projekts behov.

Bestil API Blib nu


Modeller og Priser

Vores basispåstand er som følger. Der kan gælde yderligere priser pr. land ved bestilling af API Blib. Desuden kan du drage fordel af vores regelmæssige Extra Credits-tilbud!

Rute Model Kontekst Input/1M Output/1M +33 % Rabat** Styrker
liv Google Gemma 4 – 2,3B + 0,15B (vision) + 0,3B (lyd) 20,380 €0.029 €0.049 kr. 0,029 kr. 0,022 ind, kr. 0,049 kr. 0,037 ud Tekst, vision, lyd, resonnement, værktøjer, JSON
clara Mistral Ministral 3 – 13,5B + 0,4B (vision) 9,248 €0.139 €0.249 kr. 0,139 kr. 0,105 ind, kr. 0,249 kr. 0,187 ud EU-model, Visuel, Værktøjer, Tekst, JSON
nikola NVIDIA Nemotron 3 Nano 30B MoE (128 eksperter, 6 aktive ved 3,5B) 20,480 €0.159 €0.319 €0.159 kr. 0,120 ind, €0.319 kr. 0,240 ud Tekst, resonnement, værktøjer, kodning, JSON

* Aktuel tilbud giver dig +33% ekstra kreditter på din betaling fra €150 denne måned. Betal €150 og få €200 på dit konto!


Sådan bestiller du din API-Blib

Bestil din API Blib her på vores hjemmeside: Bestil API Blib

Du kan vælge din Model og dit Region, og efter at du har deployet den ønskede model bør du se noget sådan her i din Management Dashboard:

API Blib in your Dashboard
Din API Blib i oversigten


Fri statisk systemsprog

Vi tilbyder gratis systemsprog op til 1.024 tegn. Det gratis systemsprog er kun tilgængeligt via dashbordet! Dynamiske systembeskeder sendt via API faktureres som normalt. Klik på Handlinger og du ser dialogboksen til redigering af systemsproget:

API Blib Static System Prompt
Statisk systemsprompt i API Blib

Kom i gang, bestil din API Blib nu:

Bestil API Blib nu


LLM-Benchmark 🧪

LLM Quality Benchmark Interface
LLM-kvalitetsbenchmarkgrænseflade

Hvis du vil benytte vores LLM-endepunkter til at sammenligne med andre LLM-platforme, kan du bruge vores gratis LLM-kvalitetsbenchmarkværktøj her: Sådan ser det ud:

Test enhver OpenAI-kompatibel LLM-endepunkt med 25 automatiserede kvalitetstests – logisk tænkning, kodning, flersproget kommunikation, struktureret output og værktøjsanvendelse m.m.


Base URL

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

Regionale endpoints til landespecifik dataresidens

Domæne Region
eu.router.trooper.ai EU (alle EU-datacentre)
de.router.trooper.ai Tyskland alene
nl.router.trooper.ai Nederland alene

Godkendelse

Alle anmodninger kræver en Bearer-token. Hent din API-nøgle fra

Kode
Authorization: Bearer YOUR_TROOPER_KEY

Tilgængelige modeller

Aktiver ruter på trooper.ai/order-apiblib. Hver rute giver dig et modelnavn, som du bruger i dine API-forespørgsler.

Rute Grundmodel Styrker
liv Google Gemma 4 Billigst. Tekst, billeder, lyd og resonering. Høj kapacitet til store arbejdsløb.
clara Mistral Ministral 3 Billedbaseret. Hurtig bearbejdningstid, stærk støtte til EU-sprog.
nikola NVIDIA Nemotron 3 Nano Stærk logikmotor. Kodegenerering, funktioneringsopkald og agile arbejdsgange.

API-endepunkter

POST /v1/chat/completions

Standard OpenAI-kompatibel endpoint til generering af chat-svar.

GET /v1/models

Lister dine aktiverede modeller. Kræver autentificering. Returnerer kun modeller, der matcher regionen af det domæne du kalder på.

Hver modelobjekt indeholder:

Felt Type Beskrivelse
id strengent Din rute-navn (bruges som model (i anmodninger).
object strengent Altid "model".
owned_by strengent Ejeridentifikator.
created heltal Oprettelsestidspunkt (Unix-timestamp)
base_models strenge[] Baggrundsmodeller.
context_length heltal Maksimal kontekstvindue (tokens)
max_tokens heltal Maksimale udgangstokens.
capabilities objekt Funktioner/flag for denne model (se nedenfor).
supported_parameters strenge[] Parametre accepteret af denne model.

Egenskaber objekt:

Funktion Type Beskrivelse
thinking boolsk Understøtter reasoning_effort og kædetenkning.
tools boolsk Understøtter funktioner/redskaber.
vision boolsk Understøtter billede- og PDF-indlæsning.
audio boolsk Understøtter lydindgange.
json_mode boolsk Understøtter response_format (JSON-mode / strukturerede udgaver)
token_budget boolsk Understøtter eksplplicit kontrol over tænketokens-budget.

Brug capabilities.thinking for at afgøre, om en model accepterer resonneringsparametre før de sendes.

Eksempel på respons:

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

Returnerer tilgængelighed af endpunkt og regionsoplysninger.

Bestil API Blib nu


Anmodningsparametre

Alle parametre følger OpenAI Chat Completions API-formatet.

Påkrævet

Parameter Type Beskrivelse
model strengent Din rutenavn (f.eks. "clara", "nikola", "liv")
messages array En array af meddelelseobjekter (role + content)

Valgfri

Parameter Type Standard Beskrivelse
max_tokens heltal automatisk (32–4096) Maksimale udgangstokener. Automatisk begrænset til rutes kontekstvindue.
max_completion_tokens heltal Alias for max_tokens.
stream boolsk false Aktiver SSE-streaming.
temperature tal model standard Prøvetemperatur (0–2)
top_p tal model standard Kernesampling.
response_format objekt {"type": "json_object"} or {"type": "json_schema", "json_schema": {...}}
tools array Funktionsopkaldsværktøjsdefinitioner (i OpenAI-format)
tool_choice streng/objekt Styrer værktøjsvalg ("auto", "none", eller et specifikt værktøj).
reasoning objekt `{"indsats": "ingen"
reasoning_effort strengent Forkortelse: "none", "medium", "high".
reasoning.exclude boolsk false Fjern begrundelsesindhold fra responsen.

Funktioner

Strømning

Standard SSE-streaming, fuldt kompatibelt med OpenAI SDK.

json
{ "stream": true }

Responsformat: data: {...}\n\n linjer, afsluttet med data: [DONE]\n\n.

JSON-format

Kræv struktureret JSON-output. Sørg ikke blot for at angive en JSON-forespørgsel i tekstmeddelelsen – du skal også indstille mindst respons_format til json_object!

Hvis modellen ikke producerer gyldig JSON, bliver du ikke debiteret.

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

Med et skema:

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

Billeder og PDF'er

Send billeder via URL eller base64. PDF'er konverteres automatisk til sidebilleder på serversiden.

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..." }
}
  • Billeder bliver automatisk justeret i størrelse og fri for metadatainformationer (SSRF-sikret).
  • Antal og størrelse på billeder afhænger af din rute-konfiguration.
  • Understøttet på liv- og clara-ruter.

Lyd

Liv-ruter understøtter sendelse af lydfiler i multimodale beskeder.

Tænkning / Logik

Styr om og hvor dybt modellen overvejer (trin-for-trin-tænkning) før den svarer.

Værdi Effekt
"none" tænkning afslået – hurtigste svar, laveste token-forbrug.
"low" Tænkning afslået — samme som "ingen"
"medium" tænkning aktiveret — modellen overvejer trin-for-trin før svar. God afvejring mellem kvalitet og hastighed.
"high" tænkning tændt + dyb – modellen instrueres til at tænke meget omhyggeligt og i stor detalje. Bedst egnet til komplekse matematikopgaver, logik og kode. Hvis max_tokens er sat, skal det være mindst 4.096, ellers afvises anmodningen.

Aktivér standardtænkning:

json
{ "reasoning_effort": "medium" }

Aktiver dybt tænkning for maksimal kvalitet:

json
{ "reasoning_effort": "high" }

Eller via reasoning objekt:

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

Deaktiver tænkning eksplcit:

json
{ "reasoning_effort": "none" }

For at fjerne resonnementet fra svaret (tænkningen sker stadig, men resonnementstokenene returneres ikke):

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

Tænkeadfærd kan også konfigureres pr. rute i styrelsesdashboardet. Indstillingen på dashboardet styrer standardadfærden og hvordan resonnementet returneres:

Thinking Modes under Actions on supported Models
Tænkemåder under Handlinger på støttede modeller

  • Deaktiveret — Tænkning er slået fra som standard. Kan stadig aktiveres pr. anmodning via "reasoning_effort": "medium" eller "high"
  • Strippet — Tænkning er tændt, men begrundelsestokener fjernes fra responsen.
  • Resonnementindhold — Tænkning er aktiveret, og resonnementet returneres i et separat felt kaldt resoning_content.
  • Tænketag — Tænkning aktiveret, resonnement returneres som <tænk>-tags inde i indholdet.

Genopretning af tænkning: Hvis modellen falder i en resoneringsløkke, genstarter routeren automatisk og returnerer et brugbart svar.

Funktionsopkald / Værktøjer

Standard OpenAI-værktøjsformat. Virker på alle ruter.

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

Automatisk kontekstkomprimering

Hvis din indput overstiger kontekstvinduet, komprimerer routeren automatisk midten af samtalen for at få det til at passe – ingen manuel forkortning nødvendig. Du får altid et svar.

Systemprompt

En gratis systemprompt kan konfigureres pr. rute i styrelsesdashboardet. Den tilføjes automatisk til hver anmodning og koster ikke noget.


Svarformat

Standard OpenAI-svarformat:

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

Når resonnement er aktiveret, kan svaret indeholde reasoning_content sammen med content.

Transaktions-ID

Hvert svar indeholder en x-transaction-id hovedlinje til faktureringshenvisning og fejlsøgning.


Fejlbehandling

Fejl følger det OpenAI-fejlkapslingsformat:

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

Fejlkoder

HTTP-statuskode Kode Beskrivelse
400 invalid_value Mangler model, API-nøgle, inddata er for korte eller ugyldig max_tokens.
403 invalid_api_key Ugyldig API-nøgle eller utilstrækkelig budget.
404 model_not_found Modellen findes ikke eller er ikke aktiveret.
404 region_mismatch Modellen er ikke tilgængelig i den anførte region.
500 Intern ruterfejl.
503 Ingen endpoints tilgængelige i den anmodede region.

Abregningsdetaljer

  • Pris pr. token — indgangs- og udgangstokener faktureres separat pr. million tokens.
  • Ingen driftsomkostninger – du betaler kun når du udfører API-forespørgsler.
  • Forhåndsbetalte kreditter — oplad din saldo og brug dem efter behov.
  • Systemsøgningstokener er gratis (ikke faktureret)
  • Fejlede JSON-forespørgsler debiteres ikke, når du bruger JSON-tilstand.
  • Billedindlæg betales pr. enhed (behandlede billeder).

Bestil API Blib nu


Integrationseksempler

Se populære kodeeksempler på, hvordan man bruger en OpenAI-compatibel API til LLM-inference. Endpunktet router.trooper.ai skal erstattes med den endelige URL vist i din API-blok ordre!

Python (OpenAI’s SDK)

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 (OpenAI SDK)

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 med strømming

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)

JSON-format

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)

Billedanalyse

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)

Funktionsopkald

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

Overgang fra OpenAI

Ændr én linje – opdater basis-URL og API-nøgle:

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

Alt andet forbliver uændret: anmodningsformat, respons-skema, strømmende svar, værktøjer og JSON-tilstand.


Dataresidens og Overholdelse af Regler

  • ISO/IEC 27001-certificerede datacentre i Tyskland og EU.
  • Ingen datalagring — prompt og svar behandles kun i RAM, aldrig gemt.
  • Overholder GDPR — ingen grænseoverskridende datatransmissioner, ingen træning af modeller på dine data.
  • Landbaseret routning tilgængelig (DE, NL eller bredere EU).

Bestil API Blib nu