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.
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 | Tekst, vision, lyd, resonnement, værktøjer, JSON | |
| clara | Mistral Ministral 3 – 13,5B + 0,4B (vision) | 9,248 | €0.139 | €0.249 | 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 | 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!
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:
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:
Kom i gang, bestil din API Blib nu:
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.
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 |
Alle anmodninger kræver en Bearer-token. Hent din API-nøgle fra
Authorization: Bearer YOUR_TROOPER_KEY
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. |
/v1/chat/completionsStandard OpenAI-kompatibel endpoint til generering af chat-svar.
/v1/modelsLister 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:
{
"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"
]
}
]
}
/healthReturnerer tilgængelighed af endpunkt og regionsoplysninger.
Alle parametre følger OpenAI Chat Completions API-formatet.
| Parameter | Type | Beskrivelse |
|---|---|---|
model |
strengent | Din rutenavn (f.eks. "clara", "nikola", "liv") |
messages |
array | En array af meddelelseobjekter (role + content) |
| 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. |
Standard SSE-streaming, fuldt kompatibelt med OpenAI SDK.
{ "stream": true }
Responsformat: data: {...}\n\n linjer, afsluttet med data: [DONE]\n\n.
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.
{ "response_format": { "type": "json_object" } }
Med et skema:
{
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "my_schema",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "integer" }
},
"required": ["name", "age"]
}
}
}
}
Send billeder via URL eller base64. PDF'er konverteres automatisk til sidebilleder på serversiden.
{
"messages": [{
"role": "user",
"content": [
{ "type": "image_url", "image_url": { "url": "https://example.com/photo.jpg" } },
{ "type": "text", "text": "Describe this image." }
]
}]
}
Base64:
{
"type": "image_url",
"image_url": { "url": "data:image/png;base64,iVBOR..." }
}
Liv-ruter understøtter sendelse af lydfiler i multimodale beskeder.
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:
{ "reasoning_effort": "medium" }
Aktiver dybt tænkning for maksimal kvalitet:
{ "reasoning_effort": "high" }
Eller via reasoning objekt:
{ "reasoning": { "effort": "high" } }
Deaktiver tænkning eksplcit:
{ "reasoning_effort": "none" }
For at fjerne resonnementet fra svaret (tænkningen sker stadig, men resonnementstokenene returneres ikke):
{ "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:
"reasoning_effort": "medium" eller "high"resoning_content. <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.
Standard OpenAI-værktøjsformat. Virker på alle ruter.
{
"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"
}
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.
En gratis systemprompt kan konfigureres pr. rute i styrelsesdashboardet. Den tilføjes automatisk til hver anmodning og koster ikke noget.
Standard OpenAI-svarformat:
{
"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.
Hvert svar indeholder en x-transaction-id hovedlinje til faktureringshenvisning og fejlsøgning.
Fejl følger det OpenAI-fejlkapslingsformat:
{
"error": {
"message": "The model 'nonexistent' does not exist.",
"type": "invalid_request_error",
"param": "model",
"code": "model_not_found"
}
}
| 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. |
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!
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)
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);
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)
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)
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)
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)
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)
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 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
}'
Ændr én linje – opdater basis-URL og API-nøgle:
# 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.