#
Antworten generieren
Über /answer-generations erzeugen Sie eine Chatbot-Antwort auf eine Nutzer*innen-Nachricht. Um eine neue
Konversation zu beginnen, lassen Sie den Parameter conversationId leer bzw. ungesetzt. Um eine bestehende
Konversation weiterzuführen, senden Sie die conversationId aus der letzten Antwort des Chatbots mit.
Die Antwort wird standardmäßig als Server-Sent-Event-Stream ausgeliefert, siehe
Voraussetzungen für alle Anfragen (Basis-URL, Authorization- und kauz-chatbot-Header) finden Sie im
Überblick
.
#
POST /partner/v1/answer-generations
#
Anfrage
#
Antwort
{
"message": "string",
"inputType": "freeText",
"meta": {
"conversationLanguage": "string",
"referrer": "string",
"userCategory": "string"
},
"senderId": "string",
"clickOptionReactionId": "string",
"conversationId": "string",
"stream": true
}
{
"id": "string",
"chatbot": "string",
"inputEventId": "string",
"date": "string",
"conversationId": "string",
"content": {
"text": "string",
"plainText": "string",
"actions": [
{
"command": "string",
"parameters": [
{
"name": "string",
"value": "string"
}
]
}
],
"card": {
"payload": "string",
"data": {}
}
},
"links": {
"relation": "RESPONSE",
"target": "string"
},
"meta": {
"answerType": "GENERATED",
"conversationLanguage": "string",
"referrer": "string"
},
"sender": {
"id": "string",
"type": "BOT"
},
"tokenDelta": "string",
"step": "string",
"final": false
}
curl --location --request POST "https://example.kauz.ai/partner/v1/answer-generations" \
--header "Authorization: Bearer eyJhbGciOiJSUzI1NiIs..." \
--header "kauz-chatbot: helpdesk" \
--header "Content-Type: application/json" \
--data-raw "{
\"message\":\"Hallo, wie kannst du mir helfen?\",
\"inputType\":\"freeText\",
\"stream\":false,
\"meta\":{
\"conversationLanguage\":\"DE\",
\"referrer\":\"https://example.com/hilfe\"
}
}"
{
"id": "51a156da-9393-4a0a-af1e-e76d4d5dbfc7",
"chatbot": "helpdesk",
"inputEventId": "a0f2c1de-5f0b-4c1e-9d33-1b8a1f0c4e77",
"date": "2026-07-24T16:21:22.720Z",
"conversationId": "a311a62f-8e01-445a-89e2-186ebf016d55",
"content": {
"text": "Guten Tag! Sie können mich alles über unsere Produkte und Dienstleistungen fragen.",
"plainText": "Guten Tag! Sie können mich alles über unsere Produkte und Dienstleistungen fragen.",
"actions": []
},
"meta": {
"answerType": "PREDEFINED",
"conversationLanguage": "DE",
"referrer": "https://example.com/hilfe"
},
"sender": {
"id": "73acad72-7827-4fde-b398-c59607a42826",
"type": "BOT"
}
}
#
Konversation fortführen
Die Antwort enthält eine conversationId. Übergeben Sie diese in der nächsten Anfrage, damit der Chatbot den bisherigen
Gesprächsverlauf berücksichtigt:
curl --location --request POST "https://example.kauz.ai/partner/v1/answer-generations" \
--header "Authorization: Bearer eyJhbGciOiJSUzI1NiIs..." \
--header "kauz-chatbot: helpdesk" \
--header "Content-Type: application/json" \
--data-raw "{
\"message\":\"Und was kostet das?\",
\"inputType\":\"freeText\",
\"conversationId\":\"a311a62f-8e01-445a-89e2-186ebf016d55\",
\"stream\":false,
\"meta\":{
\"conversationLanguage\":\"DE\",
\"referrer\":\"https://example.com/hilfe\"
}
}"
#
Streaming
Der Parameter stream steuert die Auslieferung der Antwort:
stream: false– die vollständige Antwort wird als einzelner JSON-Körper zurückgegeben.stream: true(Standard) – die Antwort wird alstext/event-streamausgeliefert.
Beim Streaming ist jedes data:-Payload ein JSON-serialisierter Antwort-Chunk mit derselben Struktur wie der
nicht-gestreamte Körper. tokenDelta enthält dabei das Textinkrement, step den Namen des Verarbeitungsschritts. Der
abschließende Chunk trägt final: true und die vollständige Antwort.
data: {"conversationId":"a311a62f-...","step":"answer","tokenDelta":"Guten "}
data: {"conversationId":"a311a62f-...","step":"answer","tokenDelta":"Tag!"}
data: {"id":"51a156da-...","conversationId":"a311a62f-...","content":{"text":"Guten Tag!","plainText":"Guten Tag!"},"final":true}
Tritt nach Beginn des Streamings ein Fehler auf, wird ein abschließendes Event app-error gesendet und der Stream
geschlossen – siehe
Fehler während eines Streams
.
#
Darstellung der Antwortinhalte
Das Feld content.text enthält überwiegend Markdown, wie es für LLMs typisch ist, sowie einzelne Kauz-spezifische
Markup-Elemente. Wie Sie diese Inhalte verarbeiten und rendern, beschreibt die Dokumentation zum Kauz-Markup.