pro Model HubDocs
API-Referenz

Chat Completions

POST /v1/chat/completions – Parameter, Nachrichtenformat und Antwort.

POST https://api.promodelhub.de/v1/chat/completions

Erzeugt die Antwort des Modells auf einen Gesprächsverlauf. Derselbe Endpunkt deckt Streaming, Reasoning, Tool-Calling, strukturierte Ausgaben und Bildeingabe ab.

Beispiel

curl https://api.promodelhub.de/v1/chat/completions \
  -H "Authorization: Bearer $PRO_MODEL_HUB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma-4-31b",
    "messages": [
      {"role": "system", "content": "Antworte kurz und auf Deutsch."},
      {"role": "user", "content": "Was ist der Unterschied zwischen RAM und Festplatte?"}
    ],
    "temperature": 0.3,
    "max_tokens": 300
  }'

Parameter

ParameterTypBeschreibung
modelstring, PflichtAPI-ID des Modells, siehe Modelle
messagesarray, PflichtGesprächsverlauf, siehe unten
max_tokensintegermaximale Länge der Antwort in Token (inklusive Reasoning). max_completion_tokens wird ebenfalls akzeptiert
temperaturenumberZufälligkeit, 0 bis 2. Niedrig (0–0,3) für Fakten und Extraktion, höher für kreative Texte
top_pnumberNucleus Sampling, Alternative zu temperature
stopstring oder arrayDie Ausgabe endet vor dieser Zeichenfolge
nintegerAnzahl alternativer Antworten (jede wird als Output berechnet)
seedintegerStartwert für den Zufall, macht Antworten besser reproduzierbar (nicht garantiert)
presence_penalty, frequency_penaltynumberverringern Wiederholungen, -2 bis 2
logprobs, top_logprobsboolean, integerWahrscheinlichkeiten der erzeugten Token zurückgeben
streambooleanAntwort als Server-Sent Events, siehe Streaming
stream_optionsobject{"include_usage": true} liefert beim Streaming die Token-Zahlen mit
tools, tool_choicearray, string/objectTool-Calling
response_formatobjectJSON-Ausgabe, optional nach Schema, siehe Strukturierte Ausgaben
reasoning_effortstringDenkmodus steuern, siehe Reasoning
chat_template_kwargsobjectmodellspezifische Optionen, z. B. {"enable_thinking": true} (Reasoning)

Nachrichten

Jede Nachricht hat eine role und einen content:

RolleZweck
systemAnweisungen an das Modell (Rolle, Stil, Regeln). Steht am Anfang
userEingaben des Nutzers
assistantfrühere Antworten des Modells, inklusive tool_calls
toolErgebnis eines Tool-Aufrufs, mit tool_call_id

Die API speichert keinen Gesprächszustand. Für einen Chat schickst du bei jedem Request den kompletten bisherigen Verlauf mit – und er zählt jedes Mal als Input (Abrechnung).

content ist ein String oder – für Bilder – ein Array aus Teilen:

{
  "role": "user",
  "content": [
    {"type": "text", "text": "Was steht auf dem Schild?"},
    {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,/9j/4AAQ..."}}
  ]
}

Antwort

{
  "id": "chatcmpl-a76caf6b4319df57",
  "object": "chat.completion",
  "created": 1790777031,
  "model": "gemma-4-31b",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "RAM ist der schnelle Arbeitsspeicher ...",
        "reasoning_content": null,
        "tool_calls": null
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 41,
    "completion_tokens": 120,
    "total_tokens": 161,
    "completion_tokens_details": { "reasoning_tokens": 0 }
  }
}
FeldBedeutung
choices[].message.contentdie Antwort. Kann null sein, wenn das Modell nur Tools aufruft oder max_tokens schon beim Reasoning erreicht war
choices[].message.reasoning_contentGedankengang bei eingeschaltetem Reasoning, sonst nicht vorhanden
choices[].message.tool_callsangeforderte Tool-Aufrufe
choices[].finish_reasonstop (fertig), length (max_tokens oder Kontextfenster erreicht), tool_calls (Modell wartet auf Tool-Ergebnisse)
usageabgerechnete Token, siehe Abrechnung

Die Antwort kann weitere Felder enthalten (z. B. provider_specific_fields). Ignoriere unbekannte Felder – wir ergänzen gelegentlich neue.

Auf dieser Seite