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.

Basis-URL
https://api.nebux.cloud/v1

Installation

index.ts
npm install openai
index.ts
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);
ANTWORT
{
  "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.

Header
Authorization: Bearer your-api-key

Chat completions

Erzeugt eine Modellantwort für eine Unterhaltung. Senden Sie eine Liste von Nachrichten und erhalten Sie die Antwort des Assistenten.

Parameter

modelstringerforderlich

ID des Modells, das verwendet werden soll.

messagesarrayerforderlich

Die bisherige Unterhaltung als Liste von Nachrichten.

rolestring

Die 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.
contentstring

Der Textinhalt der Nachricht.

namestring

Ein optionaler Name, um Beteiligte mit derselben Rolle zu unterscheiden.

temperaturenumberoptional

Sampling-Temperatur zwischen 0 und 2. Höhere Werte machen die Ausgabe zufälliger, niedrigere fokussierter und deterministischer.

top_pnumberoptional

Nucleus-Sampling: berücksichtigt nur die Tokens, die die Wahrscheinlichkeitsmasse top_p ausmachen. Verwenden Sie diesen Parameter oder temperature, nicht beide.

max_tokensnumberoptional

Die maximale Anzahl an Tokens, die in der Antwort erzeugt werden.

stopstring | arrayoptional

Bis zu vier Sequenzen, bei denen die Generierung stoppt. Die Stoppsequenz ist nicht in der Ausgabe enthalten.

frequency_penaltynumberoptional

Zwischen -2 und 2. Positive Werte bestrafen Tokens danach, wie oft sie schon vorgekommen sind, und verringern so Wiederholungen.

presence_penaltynumberoptional

Zwischen -2 und 2. Positive Werte bestrafen Tokens, die schon vorgekommen sind, und regen das Modell an, neue Themen einzuführen.

seednumberoptional

Wenn gesetzt, sampelt das Modell so deterministisch wie möglich, damit wiederholte Anfragen mit denselben Parametern ähnliche Ergebnisse zurückgeben.

nnumberoptional

Wie viele Antworten pro Anfrage erzeugt werden.

streambooleanoptional

Streamt die Antwort als Server-Sent Events. Siehe Streaming.

response_formatobjectoptional

Schränkt das Ausgabeformat ein, z. B. auf JSON. Siehe JSON-Modus.

toolsarrayoptional

Eine Liste von Funktionen, die das Modell aufrufen kann. Siehe Tools.

chat_template_kwargsobjectoptional

Aktiviert das Reasoning für diese Anfrage. Siehe Reasoning.

index.ts
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);
ANTWORT
{
  "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

streambooleanerforderlich

Setzen Sie den Wert auf true, um die Antwort als Server-Sent Events zu streamen.

stream_optionsobjectoptional

Optionen, die nur beim Streaming gelten.

include_usageboolean

Sendet einen zusätzlichen letzten Chunk mit der Token-Nutzung der gesamten Anfrage.

index.ts
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 ?? "");
}
ANTWORT
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_kwargsobjecterforderlich

Zusätzliche Argumente für das Prompt-Template des Modells. Unterstützt wird nur enable_thinking.

enable_thinkingboolean

true weist das Modell an, vor der Antwort nachzudenken. Standardmäßig false.

index.ts
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);
ANTWORT
{
  "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_formatobjecterforderlich

Ein Objekt, das das Format festlegt, in dem das Modell ausgeben muss.

typestring

Setzen Sie den Wert auf json_object, um den JSON-Modus zu aktivieren.

index.ts
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));
ANTWORT
{
  "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

toolsarrayerforderlich

Eine Liste von Funktionen, die das Modell aufrufen kann.

typestring

Der Typ des Tools. Derzeit wird nur function unterstützt.

functionobject

Die Definition der Funktion.

namestring

Der Name der Funktion, die aufgerufen wird.

descriptionstring

Eine Beschreibung dessen, was die Funktion tut. Das Modell entscheidet damit, wann es sie aufruft.

parametersobject

Die Parameter der Funktion, beschrieben als JSON-Schema-Objekt.

tool_choicestring | objectoptional

Steuert die Tool-Nutzung: auto, none, required oder eine bestimmte Funktion, die erzwungen wird.

index.ts
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);
ANTWORT
{
  "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.
ANTWORT
{
  "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.