#
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
Erzeugt eine Chatbot-Antwort auf eine Nutzer*innen-Nachricht.
#
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.
#
Bedeutung der Werte von answerType
Das Feld meta.answerType weist aus, wie eine Antwort entstanden ist. Es ist die maschinenlesbare Kennzeichnung
KI-generierter Inhalte im Sinne von Art. 50 Abs. 2 KI-VO.
Zuordnung zu Art. 50 Abs. 2 KI-VO
GENERATED kennzeichnet eine vom Sprachmodell erzeugte Ausgabe und erfüllt damit die maschinenlesbare Kennzeichnung
nach Art. 50 Abs. 2 KI-VO. PREDEFINED und SYSTEM kennzeichnen keine vom Sprachmodell erzeugten Inhalte.
Auch Antworten aus Ihrer Wissensbasis sind erzeugte Inhalte. Wenn der Chatbot Fakten aus dem Themenkatalog oder aus
angebundenen Quellen verwendet, den Antworttext aber selbst formuliert, trägt die Antwort GENERATED. Die Herkunft der
Fakten ändert nichts daran, dass der Text vom Modell stammt.
#
Beispiele
GENERATED. Auf die Frage „Wie lange dauert der Versand nach Österreich?" findet der Chatbot die Lieferzeiten in einem Korpus aus dem
Datenupload und formuliert daraus einen Antwortsatz. Der Text stammt vom Sprachmodell, die Antwort trägt deshalb
GENERATED, obwohl die Fakten aus Ihren Inhalten kommen.
PREDEFINED. Dieselbe Frage trifft auf eine redaktionell gepflegte Antwort im Themenkatalog, die unverändert
ausgespielt wird. Ebenso verhält es sich mit den Basisantworten: Die erste Begrüßung, die Antwort bei fehlenden
Informationen und der Hinweis bei einem technischen Problem stammen aus dem Themenkatalog und tragen PREDEFINED.
Siehe
Erste Begrüßung und Basisantworten
.
SYSTEM. Ist für eine solche Situation keine Basisantwort gepflegt, antwortet die Plattform mit einem eigenen
festen Text, etwa „Dazu kann ich leider nichts sagen." oder „Es tut mir leid, es ist ein Fehler aufgetreten. Bitte
versuchen Sie es später noch einmal.". Diese Texte kommen weder aus Ihren Inhalten noch vom Sprachmodell, sondern vom
System selbst. SYSTEM trägt auch der Hinweis, dass die maximale Prompt-Länge überschritten wurde.
#
Feldname je Schnittstelle
Dasselbe Merkmal trägt je nach Oberfläche einen anderen Namen:
Maßgeblich für Nachweise gegenüber Dritten ist die hier dokumentierte Partner-API. Die übrigen Oberflächen führen dasselbe Merkmal, sind aber nicht als Referenz für externe Prüfungen vorgesehen.