Nachricht senden
Mit dieser API können Sie Nachrichten an eine bestimmte conversation_id senden und Antworten erhalten, die von dem/der Agent:in generiert wurden. Die API unterstützt verschiedene Nachrichtentypen wie Text, Bilder, Audio und Dokumente.
Anfragemethode
POST
Endpunkt
https://api-${endpoint}.gptbots.ai/v2/conversation/message
Authentifizierung
Siehe API-Übersicht für Authentifizierungsanweisungen.
Anfrage
Beispielanfrage
curl -X POST 'https://api-${endpoint}.gptbots.ai/v2/conversation/message' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
"conversation_id": "686e2646cb8ee942d9a62d79",
"response_mode": "blocking",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Ich habe 2 Bilddateien hochgeladen, bitte OCR durchführen und 2 JSON-Datensätze zurückgeben."
},
{
"type": "image",
"image": [
{
"base64_content": "<complete_base64_string>",
"format": "jpeg",
"name": "TAXI1"
},
{
"url": "https://gptbots.ai/example.png",
"format": "png",
"name": "TAXI2"
}
]
},
{
"type": "audio",
"audio": [
{
"url": "https://gptbots.ai/example.mp3",
"format": "mp3",
"name": "example1 audio"
}
]
},
{
"type": "document",
"document": [
{
"base64_content": "<complete_base64_string>",
"format": "pdf",
"name": "example pdf"
}
]
}
]
}
],
"conversation_config": {
"long_term_memory": false,
"short_term_memory": false,
"knowledge": {
"data_ids": [
"58c70da0403cc812641b9356",
"59c70da0403cc812641df35a"
],
"group_ids": [
"67c70da0403cc812641b93je",
"69c70da0403cc812641df35f"
]
},
"custom_variables": {
"var_current_url": "https://gptbots.ai/example",
"var_session_id": "abcdef"
}
}
}'
Wichtige Hinweise:
- Für die Inhaltstypen
image,audiounddocumentkönnen Sie entweder Base64-kodierte Daten oder URL-Links verwenden – beide Formate werden unterstützt. - Entwickler:innen müssen nur die jeweils letzte Nutzernachricht senden, da GPTBots Kurzzeit- und Langzeitgedächtnis standardmäßig verwaltet. Falls Sie den Kurzzeit-Kontext individuell anpassen möchten, siehe folgendes Beispiel:"messages": [ { "role": "user", "content": "Hallo" //Eigener Kurzzeit-Kontext }, { "role": "assistant", "content": "Hallo! Wie kann ich Ihnen helfen?" //Eigener Kurzzeit-Kontext }, { "role": "user", "content": "Hallo" //Neueste Nutzernachricht }]
"messages": [ { "role": "user", "content": "Hallo" //Eigener Kurzzeit-Kontext }, { "role": "assistant", "content": "Hallo! Wie kann ich Ihnen helfen?" //Eigener Kurzzeit-Kontext }, { "role": "user", "content": "Hallo" //Neueste Nutzernachricht }]Dieser Codeblock im schwebenden Fenster
Anfrage-Header
| Feld | Typ | Beschreibung |
|---|---|---|
| Authorization | Bearer ${API Key} | Verwenden Sie Authorization: Bearer ${API Key} zur Authentifizierung. Den API Key erhalten Sie auf der API-Key-Seite. |
| Content-Type | application/json | Datentyp, muss application/json sein. |
Anfrageparameter
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| conversation_id | string | Ja | Eindeutige Kennung der Konversation. Muss angegeben werden, um die Konversation fortzusetzen. |
| response_mode | string | Ja | Antwortmodus des/der Agent:in: |
| messages | JSON Array | Ja | Nachrichteninhalt, unterstützt die Rollen user und assistant zur Kontextbildung. |
| conversation_config | object | Nein | Ermöglicht es Entwickler:innen, den Funktionsumfang des/der Agent:in für diese Konversation temporär anzupassen. |
| short_term_memory | boolean | Nein | Kurzzeitgedächtnis-Schalter. Aktiviert oder deaktiviert das Kurzzeitgedächtnis nur für diese Konversation. |
| long_term_memory | boolean | Nein | Langzeitgedächtnis-Schalter. Aktiviert oder deaktiviert das Langzeitgedächtnis nur für diese Konversation. |
| knowledge | object | Nein | Wissensabrufbereich. Ermöglicht die individuelle Anpassung des Wissensabrufs für diese Konversation. Wenn sowohl group_ids als auch data_ids angegeben sind, erfolgt der Abruf innerhalb der Vereinigungsmenge der Wissensdatenbanken. Sind beide Arrays leer, wird kein Wissen abgerufen. Wird der Parameter knowledge weggelassen, gilt die Standardkonfiguration des/der Agent:in.group_ids: Wissensdatenbank-IDs, die mehrere Wissensdokumente enthalten können.data_ids: Wissensdokument-IDs innerhalb der Wissensdatenbank. |
| custom_variables | object | Nein | Benutzerdefinierte Variablen. Ermöglicht es Entwickler:innen, die Werte benutzerdefinierter Variablen im/bei Agent:in für diese Konversation temporär anzupassen. |
Hinweis:
Die Eingabe- und Ausgabekonfigurationsseiten für Agent:innen unterstützen unterschiedliche Erkennungsschemata für verschiedene Nachrichtentypen. Unterstützte Dateitypen und -größen variieren. Passen Sie die API-Daten entsprechend an. Maximal unterstützte Nachrichtenformate:
- Textnachricht: string
- Audionachricht: .mp3, .wav, .acc
- Bildnachricht: .jpg, .jpeg, .png, .gif, .webp
- Dokumentnachricht: .pdf, .txt, .docx, .csv, .xlsx, .html, .json, .md, .tex, .ts, .xml usw.
Antwort
Beispielantwort
{
"create_time": 1679587005,
"conversation_id": "657303a8a764d47094874bbe",
"message_id": "65a4ccfC7ce58e728d5897e0",
"output": [
{
"from_component_branch": "1",
"from_component_name": "Komponentenname",
"content": {
"text": "Hallo, kann ich Ihnen irgendwie weiterhelfen?",
"audio": [
{
"audio": "http://gptbots.ai/example.mp3",
"transcript": "Transkribierter Audioinhalt"
}
]
}
}
],
"usage": {
"tokens": {
"total_tokens": 29,
"prompt_tokens": 19,
"prompt_tokens_details": {
"audio_tokens": 0,
"text_tokens": 0
},
"completion_tokens": 10,
"completion_tokens_details": {
"reasoning_tokens": 0,
"audio_tokens": 0,
"text_tokens": 0
}
},
"credits": {
"total_credits": 0.0,
"text_input_credits": 0.0,
"text_output_credits": 0.0,
"audio_input_credits": 0.0,
"audio_output_credits": 0.0
}
}
}
Erfolgreiche Antwort (Blocking)
⚠️ Der menschliche Übergabeservice ist im blocking-Antwortmodus nicht verfügbar.
| Feld | Typ | Beschreibung |
|---|---|---|
| conversation_id | string | Ja |
| message_id | string | Eindeutige Kennung einer Nachricht innerhalb der Konversation. |
| create_time | long | Zeitstempel, zu dem diese Antwortnachricht generiert wurde. |
| output | JSON Array | Antwortinhalt des/der Agent:in. |
| from_component_branch | string | FlowAgent-Branch. |
| from_component_name | string | Name der vorgelagerten Komponente im FlowAgent. |
| content | object | Vom/von der KI-Agent:in beantworteter Nachrichteninhalt, derzeit text und audio. |
| usage | object | Details zum Ressourcenverbrauch. |
| tokens | JSON Array | Gesamtanzahl der in dieser Konversation verbrauchten Tokens. |
| total_tokens | integer | Gesamtzahl der für Ein- und Ausgabe verbrauchten Tokens in dieser Konversation. |
| prompt_tokens | integer | Für die Eingabe verbrauchte Tokens. |
| completion_tokens | integer | Für die Ausgabe verbrauchte Tokens. |
| prompt_tokens_details | object | Detaillierte Aufschlüsselung der für die Eingabe verbrauchten Tokens. |
| completion_tokens_details | object | Detaillierte Aufschlüsselung der für die Ausgabe verbrauchten Tokens. |
| credits | object | Gesamtverbrauchte Credits in dieser Konversation. |
| text_input_credits | double | Für Texteingaben verbrauchte Credits. |
| text_output_credits | double | Für Textausgaben verbrauchte Credits. |
| audio_input_credits | double | Für Audioeingaben verbrauchte Credits. |
| audio_output_credits | double | Für Audioausgaben verbrauchte Credits. |
Erfolgreiche Antwort (Streaming)
⚠️ Der menschliche Übergabeservice ist im streaming-Antwortmodus nicht verfügbar.
| Feld | Typ | Beschreibung |
|---|---|---|
| code | int | Nachrichtentyp-Code: 3-Text, 10-FlowAgent-Ausgabe, 0-Ende, 4-Nutzungsdaten, 39-Audionachricht. |
| message | string | Nachrichtentyp: Text, FlowOutput, End. |
| data | object | Antwortinhalt. |
- Beispiel für Textnachrichten-Streaming:
{"code":11,"message":"MessageInfo","data":{"message_id":"6785dba0f06d872bff9ee347"}}
{"code":3,"message":"Text","data":"Wie "}
{"code":3,"message":"Text","data":"kann "}
{"code":3,"message":"Text","data":"ich "}
{"code":3,"message":"Text","data":"helfen "}
{"code":3,"message":"Text","data":"Ihnen?"}
{"code":0,"message":"End","data":null}
- Beispiel für Audionachrichten-Streaming:
{"code":11,"message":"MessageInfo","data":{"message_id":"67b857b6be1f2906861a5e75"}}
{"code":39,"message":"Audio","data":{"audioAnswer":"","transcript":"Hallo"}}
{"code":39,"message":"Audio","data":{"audioAnswer":"EQAUAA0...IA3bi","transcript":""}}
{"code":0,"message":"End","data":null}
Erfolgreiche Antwort (Webhook)
⚠️ Der menschliche Übergabeservice ist im webhook-Antwortmodus verfügbar.
Wenn der menschliche Kundenservice für einen Agent:in aktiviert ist, sollten Sie den Antwortmoduswebhookverwenden, um Nachrichten von menschlichen Kundenberater:innen zu empfangen. Nach Konfiguration der Webhook-URL im Bereich „Integration-API“ sendet das GPTBots-System sowohl die Antworten des/der Agent:in als auch des menschlichen Supports an Ihre Webhook-URL.
Für detaillierte Informationen zu Webhook-Nachrichten siehe Webhook-Modus und menschlicher Übergabeservice.
Fehlerantwort
| Feld | Typ | Beschreibung |
|---|---|---|
| code | int | Fehlercode. |
| message | string | Fehlerdetails. |
Fehlercodes
| Code | Nachricht |
|---|---|
| 40000 | Ungültige Parameter |
| 40127 | Entwickler:innen-Authentifizierung fehlgeschlagen |
| 40356 | Konversation existiert nicht |
| 40358 | conversation_id stimmt nicht überein |
| 40364 | Agent:in unterstützt keinen Bildmodus |
| 50000 | Interner Systemfehler |
| 20040 | Frage-Längenlimit überschritten |
| 20022 | Unzureichende Credits |
| 20055 | API-Nutzung verboten, bitte prüfen Sie, ob der API-Schalter aktiviert ist |

