Skip to main content
Alle Endpunkte erfordern eine angemeldete Sitzung. Grundlagen siehe API-Überblick.

POST /api/chat

Haupt-Endpunkt für Chat-Antworten. Die Antwort wird als Stream zurückgegeben. Rate-Limit: 60 Nachrichten / Minute / Nutzer · max. 3 parallele Streams. Request-Body:
{
  "message": "Erkläre Quantencomputing",
  "threadId": "uuid",
  "accountSlug": "mein-team",
  "model": "GPT-4o",
  "useRag": false,
  "systemPrompt": "Du bist ein hilfreicher Assistent ...",
  "attachments": [
    {
      "id": "uuid",
      "name": "diagramm.png",
      "size": 102400,
      "type": "image/png"
    }
  ],
  "spaceId": "uuid",
  "agentId": "uuid",
  "agentName": "Physik-Experte",
  "generateGreeting": false
}
Parameter:
ParameterTypPflichtBeschreibung
messagestringNein*Nachricht (*Pflicht, wenn keine Dateien)
threadIdUUIDNeinThread-ID; Pflicht, wenn attachments gesendet werden
accountSlugstringJaTeam-Slug (fehlt er, antwortet der Endpunkt 400)
modelstringNeinAnzeigename des Modells
useRagbooleanNeinWissens-Kontext aktivieren (Standard: false)
systemPromptstringNeinEigener System-Prompt
attachmentsarrayNeinDatei-Anhänge (max. 5; je id, name, size, type)
spaceIdUUIDNeinSpace-Kontext
agentIdUUIDNeinAgent-Modus
agentNamestringNeinName des Agents
generateGreetingbooleanNeinBegrüßung erzeugen (Standard: false)
Antwort (text/plain; charset=utf-8): Die Antwort ist ein fortlaufender Text-Stream (keine SSE-data:-Frames). Der Client liest UTF-8-Text-Bruchstücke nacheinander und hängt sie aneinander. Wenn Tools im Stream sichtbar werden, erscheinen sie als Marker wie [TOOL:web_search].
Quanten
computing
ist ...
Begleitende Metadaten (z. B. Thread- und Modell-Infos) liefert der Endpunkt über Response-Header, nicht im Stream-Body:
HeaderBeschreibung
X-Thread-IDThread-ID des Chats
X-Message-IDpersistierte User-Message-ID des aktuellen Turns
X-Provider-IDverwendete Provider-Konfiguration
X-ModelModelRef im Wire-Format, z. B. managed:<deployment> oder byom:<uuid>
X-Model-Display-NameAnzeigename des Modells
X-Knowledge-SourcesJSON-Array der Quellen, z. B. [{ "id": "...", "filename": "...", "pageNumber": 1, "mimeType": "application/pdf" }]; Snippets werden nicht im Header übertragen
X-Knowledge-Degraded1, wenn die Knowledge-Abfrage in diesem Turn degradiert wurde
X-Activated-SkillName des automatisch aktivierten Skills
X-Agent-SkillsJSON-Array der Agent-Skill-Namen, z. B. ["Vertragsanalyse"]
X-Chat-Dropped-AttachmentsAnzahl aus Kontextgründen ausgelassener Anhänge
X-Chat-Dropped-MessagesAnzahl ausgelassener Verlaufseinträge
Hinweise:
  • Es werden bis zu 50 Nachrichten als Verlaufskontext berücksichtigt.
  • Sicherheits-Vorprüfungen können eine Nachricht blockieren; in dem Fall enthält die Antwort "blocked": true.
  • Bildanhänge funktionieren nur mit Modellen, die Bilder verstehen.

POST /api/chat/attachments

Dateien für die Nutzung im Chat hochladen. Rate-Limit: 20 Uploads / Minute / Nutzer · Content-Type: multipart/form-data. Formularfelder:
FeldTypPflichtBeschreibung
filesFile[]Ja*Dateien (max. 10)
accountSlugstringJaTeam-Slug (fehlt er, antwortet der Endpunkt 400)
threadIdUUIDNeinThread-ID (wird angelegt, falls nicht angegeben)
spaceIdUUIDNeinVerknüpfung mit einem Space
Grenzen:
GrenzeWert
Max. Dateigröße50 MB
Max. Dateien pro Upload10
Max. Gesamtgröße100 MB
Der Upload-Endpunkt akzeptiert Dateien bis 50 MB. Beim späteren Senden über POST /api/chat validiert die Chat-API die referenzierten Anhänge separat: maximal 5 Anhänge pro Nachricht, jeweils bis 10 MB. Antwort:
{
  "threadId": "uuid",
  "attachments": [
    {
      "id": "uuid",
      "name": "dokument.pdf",
      "type": "application/pdf",
      "size": 102400,
      "url": "/api/chat/attachments/uuid"
    }
  ],
  "errors": [
    {
      "fileName": "zu-gross.pdf",
      "error": "File exceeds maximum size"
    }
  ]
}
errors ist nur vorhanden, wenn einzelne Dateien fehlschlagen. Wenn alle Dateien fehlschlagen, antwortet der Endpoint mit 422.