KI-Inferenz
Schnellstart
Holen Sie sich Ihre erste Antwort mit wenigen Zeilen. Die Inferenz-API ist OpenAI-kompatibel: Sie können jedes OpenAI-SDK auf die Basis-URL unten zeigen lassen und sich mit Ihrem API-Schlüssel authentifizieren.
https://api.nebux.cloud/v1Installation
npm install openaiimport OpenAI from "openai";
const client = new OpenAI({
apiKey: "your-api-key",
baseURL: "https://api.nebux.cloud/v1",
});
const completion = await client.chat.completions.create({
model: "qwen3-14b",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Recommend me a book" },
{ role: "assistant", content: "Try The Shadow of the Wind" },
{ role: "user", content: "And a similar one?" },
],
});
console.log(completion.choices[0].message.content);{
"id": "chatcmpl-8f3a2b1c9d",
"object": "chat.completion",
"created": 1719763200,
"model": "qwen3-14b",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "If you liked it, try Nada, by Carmen Laforet."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 47,
"completion_tokens": 13,
"total_tokens": 60
}
}Authentifizierung
Jede Anfrage muss Ihren API-Schlüssel als Bearer-Token im Authorization-Header enthalten.
Erstellen und verwalten Sie Ihre API-Schlüssel im Dashboard. API-Schlüssel verwalten
Halten Sie Ihren API-Schlüssel geheim. Verwenden Sie ihn nie in clientseitigem Code und checken Sie ihn nie in die Versionsverwaltung ein.
Authorization: Bearer your-api-keyChat completions
Erzeugt eine Modellantwort für eine Unterhaltung. Senden Sie eine Liste von Nachrichten und erhalten Sie die Antwort des Assistenten.
Parameter
modelstringerforderlichID des Modells, das verwendet werden soll.
messagesarrayerforderlichDie bisherige Unterhaltung als Liste von Nachrichten.
rolestringDie Rolle, von der die Nachricht stammt.
systemLegt Verhalten und Kontext des Assistenten fest.userEine Nachricht des Endnutzers.assistantEine frühere Antwort des Modells.toolDas Ergebnis eines Tool-Aufrufs, das an das Modell zurückgeht.contentstringDer Textinhalt der Nachricht.
namestringEin optionaler Name, um Beteiligte mit derselben Rolle zu unterscheiden.
temperaturenumberoptionalSampling-Temperatur zwischen 0 und 2. Höhere Werte machen die Ausgabe zufälliger, niedrigere fokussierter und deterministischer.
top_pnumberoptionalNucleus-Sampling: berücksichtigt nur die Tokens, die die Wahrscheinlichkeitsmasse top_p ausmachen. Verwenden Sie diesen Parameter oder temperature, nicht beide.
max_tokensnumberoptionalDie maximale Anzahl an Tokens, die in der Antwort erzeugt werden.
stopstring | arrayoptionalBis zu vier Sequenzen, bei denen die Generierung stoppt. Die Stoppsequenz ist nicht in der Ausgabe enthalten.
frequency_penaltynumberoptionalZwischen -2 und 2. Positive Werte bestrafen Tokens danach, wie oft sie schon vorgekommen sind, und verringern so Wiederholungen.
presence_penaltynumberoptionalZwischen -2 und 2. Positive Werte bestrafen Tokens, die schon vorgekommen sind, und regen das Modell an, neue Themen einzuführen.
seednumberoptionalWenn gesetzt, sampelt das Modell so deterministisch wie möglich, damit wiederholte Anfragen mit denselben Parametern ähnliche Ergebnisse zurückgeben.
nnumberoptionalWie viele Antworten pro Anfrage erzeugt werden.
streambooleanoptionalStreamt die Antwort als Server-Sent Events. Siehe Streaming.
response_formatobjectoptionalSchränkt das Ausgabeformat ein, z. B. auf JSON. Siehe JSON-Modus.
toolsarrayoptionalEine Liste von Funktionen, die das Modell aufrufen kann. Siehe Tools.
chat_template_kwargsobjectoptionalAktiviert das Reasoning für diese Anfrage. Siehe Reasoning.
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "your-api-key",
baseURL: "https://api.nebux.cloud/v1",
});
const completion = await client.chat.completions.create({
model: "qwen3-14b",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Recommend me a book" },
{ role: "assistant", content: "Try The Shadow of the Wind" },
{ role: "user", content: "And a similar one?" },
],
});
console.log(completion.choices[0].message.content);{
"id": "chatcmpl-8f3a2b1c9d",
"object": "chat.completion",
"created": 1719763200,
"model": "qwen3-14b",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "If you liked it, try Nada, by Carmen Laforet."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 47,
"completion_tokens": 13,
"total_tokens": 60
}
}Streaming
Setzen Sie stream auf true, um die Antwort als Server-Sent Events zu erhalten: Die Tokens kommen nach und nach an, während sie erzeugt werden. Der Stream endet mit einer Zeile data: [DONE].
Parameter
streambooleanerforderlichSetzen Sie den Wert auf true, um die Antwort als Server-Sent Events zu streamen.
stream_optionsobjectoptionalOptionen, die nur beim Streaming gelten.
include_usagebooleanSendet einen zusätzlichen letzten Chunk mit der Token-Nutzung der gesamten Anfrage.
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "your-api-key",
baseURL: "https://api.nebux.cloud/v1",
});
const stream = await client.chat.completions.create({
model: "qwen3-14b",
messages: [{ role: "user", content: "Which running shoes do you recommend?" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}data: {
"id": "chatcmpl-8f3a2b1c9d",
"object": "chat.completion.chunk",
"created": 1719763200,
"model": "qwen3-14b",
"choices": [{ "index": 0, "delta": { "role": "assistant" }, "finish_reason": null }]
}
data: {
"id": "chatcmpl-8f3a2b1c9d",
"object": "chat.completion.chunk",
"created": 1719763200,
"model": "qwen3-14b",
"choices": [{ "index": 0, "delta": { "content": "For asphalt," }, "finish_reason": null }]
}
data: {
"id": "chatcmpl-8f3a2b1c9d",
"object": "chat.completion.chunk",
"created": 1719763200,
"model": "qwen3-14b",
"choices": [{ "index": 0, "delta": { "content": " a neutral shoe with good cushioning" }, "finish_reason": null }]
}
data: {
"id": "chatcmpl-8f3a2b1c9d",
"object": "chat.completion.chunk",
"created": 1719763200,
"model": "qwen3-14b",
"choices": [{ "index": 0, "delta": {}, "finish_reason": "stop" }]
}
data: [DONE]Reasoning
Lassen Sie das Modell nachdenken, bevor es antwortet. Standardmäßig ist das deaktiviert: Senden Sie chat_template_kwargs mit enable_thinking auf true, um es für eine Anfrage zu aktivieren. Das Reasoning kommt in reasoning zurück, neben content und nicht darin. Sie können es also anzeigen, protokollieren oder ignorieren. Es wird wie der Rest der Antwort als Ausgabe-Tokens abgerechnet, und eine Antwort mit Reasoning kann ein Mehrfaches an Tokens verbrauchen.
Parameter
chat_template_kwargsobjecterforderlichZusätzliche Argumente für das Prompt-Template des Modells. Unterstützt wird nur enable_thinking.
enable_thinkingbooleantrue weist das Modell an, vor der Antwort nachzudenken. Standardmäßig false.
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "your-api-key",
baseURL: "https://api.nebux.cloud/v1",
});
const res = await client.chat.completions.create({
model: "qwen3-14b",
messages: [
{ role: "user", content: "A coffee is 1.20. What are 7 with 15% off?" },
],
// chat_template_kwargs is outside the OpenAI library's types,
// so it travels as an extra request parameter.
// The other option is calling POST https://api.nebux.cloud/v1/chat/completions
// directly.
// @ts-expect-error
chat_template_kwargs: {"enable_thinking": true},
});
console.log(res.choices[0].message.content);{
"id": "chatcmpl-6b1d05e37a",
"object": "chat.completion",
"created": 1719763200,
"model": "qwen3-14b",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"reasoning": "7 x 1.20 = 8.40. A 15% discount leaves 85%, so 8.40 x 0.85 = 7.14.",
"content": "7.14 EUR"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 22,
"completion_tokens": 61,
"total_tokens": 83
}
}JSON-Modus
Setzen Sie response_format auf json_object, um zu erzwingen, dass das Modell syntaktisch gültiges JSON ausgibt. Weisen Sie das Modell zusätzlich in einer System- oder Nutzernachricht an, JSON auszugeben.
Parameter
response_formatobjecterforderlichEin Objekt, das das Format festlegt, in dem das Modell ausgeben muss.
typestringSetzen Sie den Wert auf json_object, um den JSON-Modus zu aktivieren.
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "your-api-key",
baseURL: "https://api.nebux.cloud/v1",
});
const completion = await client.chat.completions.create({
model: "qwen3-14b",
messages: [
{ role: "system", content: "Classify each comment as good or bad, keeping its id. Reply as JSON." },
{ role: "user", content: "1: Great! 2: Awful 3: Good 4: Slow" },
],
response_format: { type: "json_object" },
});
console.log(JSON.parse(completion.choices[0].message.content));{
"id": "chatcmpl-2a7c4e9f10",
"object": "chat.completion",
"created": 1719763200,
"model": "qwen3-14b",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "{\"good\": [{\"id\": 1, \"comment\": \"Great!\"}, {\"id\": 3, \"comment\": \"Good\"}], \"bad\": [{\"id\": 2, \"comment\": \"Awful\"}, {\"id\": 4, \"comment\": \"Slow\"}]}"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 58,
"completion_tokens": 51,
"total_tokens": 109
}
}Tools
Geben Sie eine Liste von Funktionen an, die das Modell aufrufen kann. Entscheidet sich das Modell für eine davon, gibt es den Aufruf in tool_calls statt einer Textantwort zurück. Sie führen die Funktion aus und senden das Ergebnis als tool-Nachricht zurück.
Parameter
toolsarrayerforderlichEine Liste von Funktionen, die das Modell aufrufen kann.
typestringDer Typ des Tools. Derzeit wird nur function unterstützt.
functionobjectDie Definition der Funktion.
namestringDer Name der Funktion, die aufgerufen wird.
descriptionstringEine Beschreibung dessen, was die Funktion tut. Das Modell entscheidet damit, wann es sie aufruft.
parametersobjectDie Parameter der Funktion, beschrieben als JSON-Schema-Objekt.
tool_choicestring | objectoptionalSteuert die Tool-Nutzung: auto, none, required oder eine bestimmte Funktion, die erzwungen wird.
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "your-api-key",
baseURL: "https://api.nebux.cloud/v1",
});
const completion = await client.chat.completions.create({
model: "qwen3-14b",
messages: [{ role: "user", content: "What's the weather in València?" }],
tools: [
{
type: "function",
function: {
name: "get_weather",
description: "Get the current weather for a location",
parameters: {
type: "object",
properties: { location: { type: "string" } },
required: ["location"],
},
},
},
],
});
console.log(completion.choices[0].message.tool_calls);{
"id": "chatcmpl-5b1d8e2a34",
"object": "chat.completion",
"created": 1719763200,
"model": "qwen3-14b",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"tool_calls": [
{
"id": "call_a1b2c3",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"location\": \"València\"}"
}
}
]
},
"finish_reason": "tool_calls"
}
],
"usage": {
"prompt_tokens": 82,
"completion_tokens": 19,
"total_tokens": 101
}
}Fehler
Fehlgeschlagene Anfragen geben einen HTTP-Standardstatuscode und einen JSON-Body mit einem error-Objekt zurück, das beschreibt, was schiefgelaufen ist.
Statuscodes
400invalid_request_errorDie Anfrage war fehlerhaft aufgebaut oder ein Parameter war ungültig.401invalid_api_keyDer API-Schlüssel fehlt oder ist ungültig.404model_not_foundDas angefragte Modell existiert nicht oder ist für Ihre Organisation nicht verfügbar.429rate_limit_exceededSie haben Ihr Rate-Limit überschritten. Versuchen Sie es nach einer kurzen Wartezeit erneut.500server_errorBeim Verarbeiten der Anfrage ist ein unerwarteter Fehler aufgetreten.503engine_overloadedDer Dienst ist vorübergehend überlastet. Versuchen Sie es nach einer kurzen Wartezeit erneut.{
"error": {
"message": "Incorrect API key provided.",
"type": "invalid_request_error",
"param": null,
"code": "invalid_api_key"
}
}Nicht unterstützte Funktionen
Diese API ist mit der Chat-Completions-Schnittstelle von OpenAI kompatibel. Die folgenden OpenAI-Funktionen sind nicht verfügbar.
- Die Embeddings-API.
- Die Assistants-API (assistants, threads und runs).
- Fine-Tuning.
- Die Batch-API.
- Die Files-API und Uploads sowie vector stores.
- Audio-Endpoints (Sprachsynthese und Transkription).
- Bildgenerierung.
- Die Moderations-API.
- Die Realtime-API.