logo
Développement
Rechercher
Envoyer un message

Envoyer un message

Utilisez cette API pour envoyer des messages à un conversation_id spécifié et recevoir les réponses générées par l'agent. L'API prend en charge divers types de contenu de message, y compris le texte, les images, l'audio et les documents.

Méthode de requête

POST

Endpoint

https://api-${endpoint}.gptbots.ai/v2/conversation/message

Authentification

Consultez la section Présentation de l'API pour les instructions d'authentification.

Requête

Exemple de requête

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": "J'ai téléchargé 2 fichiers image, veuillez effectuer l'OCR et retourner 2 enregistrements json." }, { "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": "exemple1 audio" } ] }, { "type": "document", "document": [ { "base64_content": "<complete_base64_string>", "format": "pdf", "name": "exemple 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" } } }'
                      
                      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": "J'ai téléchargé 2 fichiers image, veuillez effectuer l'OCR et retourner 2 enregistrements json."
                },
                {
                    "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": "exemple1 audio"
                        }
                    ]
                },
                {
                    "type": "document",
                    "document": [
                        {
                            "base64_content": "<complete_base64_string>",
                            "format": "pdf",
                            "name": "exemple 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"
        }
    }
}'

                    
Ce bloc de code dans la fenêtre flottante

Remarques importantes :

  1. Pour les types de contenu image, audio et document, vous pouvez utiliser soit l'encodage base64, soit des liens URL - les deux formats sont pris en charge.
  2. En mode système de service client interne (Custom Helpdesk), les messages de l'agent et les messages utilisateur reçus pendant le transfert humain sont soumis avec ai_response=false ou role=human_agent ; ils sont uniquement archivés et ne déclenchent PAS l'IA. Exemple :
    { "conversation_id": "686e2646cb8ee942d9a62d79", "response_mode": "blocking", "ai_response": false, "human_agent_info": { "name": "Alice", "email": "alice@example.com", "image_url": "https://gptbots.ai/avatar.png" }, "messages": [ { "role": "human_agent", "content": "Bonjour, ici le service client humain. Comment puis-je vous aider ?" } ] }
                          
                              {
            "conversation_id": "686e2646cb8ee942d9a62d79",
            "response_mode": "blocking",
            "ai_response": false,
            "human_agent_info": {
                "name": "Alice",
                "email": "alice@example.com",
                "image_url": "https://gptbots.ai/avatar.png"
            },
            "messages": [
                { "role": "human_agent", "content": "Bonjour, ici le service client humain. Comment puis-je vous aider ?" }
            ]
        }
    
                        
    Ce bloc de code dans la fenêtre flottante
  3. Les développeurs n'ont besoin d'envoyer que le dernier message utilisateur, car GPTBots gère par défaut la mémoire à court et long terme. Si vous souhaitez personnaliser le contexte de la mémoire à court terme, consultez l'exemple ci-dessous :
    "messages": [ { "role": "user", "content": "Bonjour" //Mémoire à court terme personnalisée }, { "role": "assistant", "content": "Bonjour ! Comment puis-je vous aider aujourd'hui ?" //Mémoire à court terme personnalisée }, { "role": "user", "content": "Bonjour" //Dernier message utilisateur }]
                          
                              "messages": [
            {
                "role": "user", 
                "content": "Bonjour"                                //Mémoire à court terme personnalisée
            },
            {
                "role": "assistant",
                "content": "Bonjour ! Comment puis-je vous aider aujourd'hui ?"   //Mémoire à court terme personnalisée
            },
            {
                "role": "user",
                "content": "Bonjour"                                //Dernier message utilisateur
            }]
    
                        
    Ce bloc de code dans la fenêtre flottante
  4. Lorsque les développeurs utilisent LoopAgent en mode streaming, s'ils ont besoin des messages de processus générés pendant l'exécution de l'agent, ils peuvent le déclarer via le champ de requête is_process_result.
    { "conversation_id": "686e2646cb8ee942d9a62d79", "response_mode": "streaming", "is_process_result": true, "messages": [ { "role": "human_agent", "content": "Bonjour, ici le service client humain. Comment puis-je vous aider ?" } ] }
                          
                              {
            "conversation_id": "686e2646cb8ee942d9a62d79",
            "response_mode": "streaming",
            "is_process_result": true,
            "messages": [
                { "role": "human_agent", "content": "Bonjour, ici le service client humain. Comment puis-je vous aider ?" }
            ]
        }
    
                        
    Ce bloc de code dans la fenêtre flottante

En-têtes de requête

Champ Type Description
Authorization Bearer ${API Key} Utilisez Authorization: Bearer ${API Key} pour l'authentification. Obtenez la clé API depuis la page Clé API.
Content-Type application/json Type de données, doit être application/json.

Paramètres de la requête

Champ Type Obligatoire Description
conversation_id string Oui Identifiant unique de la conversation. Vous devez fournir le conversation_id pour poursuivre la conversation.
response_mode string Oui Mode de réponse de l'agent :
  • blocking : Attend la fin de l'exécution et retourne les résultats (peut être interrompu si le processus est trop long).
  • streaming : Réponse en flux basée sur SSE (Server-Sent Events).
  • webhook : Les messages de l'agent et du service client humain seront envoyés à l'URL webhook configurée sur la page API.
  • messages JSON Array Oui Contenu du message, prend en charge les rôles user, assistant et human_agent pour construire le contexte de la conversation.
  • message utilisateur : Au moins un requis, le dernier message utilisateur doit être en dernier.
  • message assistant : Les développeurs peuvent construire des messages assistant comme contexte.
  • message human_agent : Message d'agent humain (mode système de service client interne (Custom Helpdesk)). Les messages de ce rôle ne déclenchent jamais de réponse de l'IA, ils sont uniquement archivés en base comme contexte ultérieur et ne sont pas affectés par ai_response.
  • is_process_result boolean Non Indique si LoopAgent renvoie les informations de processus. Peut être vide, la valeur par défaut est false.
  • false : seule la réponse finale est transmise en flux, sans messages de processus.
  • true : les messages de narration entre les tours et le processus de raisonnement sont transmis caractère par caractère, et la réponse finale reste également incrémentale caractère par caractère.
  • ai_response boolean Non Indique si l'IA répond à ce message. Par défaut true — l'omission de ce champ produit un comportement strictement identique aux appels existants.
  • false : le message est uniquement archivé en base, l'IA ne répond pas, aucun token ni crédit n'est consommé, et la réponse est un accusé de réception léger.
  • true : l'IA répond normalement ; en mode système de service client interne (Custom Helpdesk), passer explicitement true rend en outre la conversation à l'IA depuis l'état de transfert humain.
  • Omis : si la conversation est actuellement en transfert humain via le système de service client interne (Custom Helpdesk), équivaut à false ; sinon équivaut à true.
  • human_agent_info object Non Informations d'identité de l'agent, pertinentes uniquement lorsque messages contient role=human_agent (champ de premier niveau, un agent par requête).
    name string Non Nom de l'agent.
    email string Non E-mail de l'agent.
    image_url string Non URL de l'avatar de l'agent.
    conversation_config object Non Permet aux développeurs d'ajuster temporairement le périmètre fonctionnel de l'agent pour cette conversation afin de répondre à des besoins spécifiques.
    short_term_memory boolean Non Interrupteur de mémoire à court terme. Active ou désactive la mémoire à court terme uniquement pour cette conversation.
    long_term_memory boolean Non Interrupteur de mémoire à long terme. Active ou désactive la mémoire à long terme uniquement pour cette conversation.
    knowledge object Non Périmètre de récupération des connaissances. Personnalisez la portée de récupération des connaissances pour cette conversation uniquement. Lorsque group_ids et data_ids sont tous deux fournis, la récupération s'effectue dans l'union de leurs bases de connaissances. Si les deux sont des tableaux vides, aucune connaissance n'est récupérée. Si le paramètre knowledge est omis, la configuration de connaissances par défaut de l'agent est utilisée.
  • group_ids : Identifiants de bases de connaissances, pouvant contenir plusieurs documents de connaissances.
  • data_ids : Identifiants de documents de connaissances dans la base de connaissances.
  • custom_variables object Non Variables personnalisées. Permet aux développeurs d'ajuster temporairement les valeurs des variables personnalisées dans l'agent uniquement pour cette conversation.
    thinking boolean Non Contrôle le retour des informations de réflexion en streaming.
    tool_call boolean Non Contrôle le retour des informations d'appel d'outil en streaming.

    Note :

    Les pages de configuration d'entrée et de sortie de l'agent prennent en charge différents schémas de reconnaissance pour différents types de messages. Les types et tailles de fichiers pris en charge varient. Adaptez les données de soumission API en conséquence. Formats de message pris en charge au maximum :

    • Message texte : string
    • Message audio : .mp3, .wav, .acc
    • Message image : .jpg, .jpeg, .png, .gif, .webp
    • Message document : .pdf, .txt, .docx, .csv, .xlsx, .html, .json, .md, .tex, .ts, .xml, etc.

    Réponse

    Exemple de réponse

    { "create_time": 1679587005, "conversation_id": "657303a8a764d47094874bbe", "user_id": "65a4ccfc7ce58e728d5897e0", "anonymous_id": "device_abcdef123456", "message_id": "65a4ccfC7ce58e728d5897e0", "output": [ { "from_component_branch": "1", "from_component_name": "Nom du composant", "content": { "text": "Bonjour, puis-je vous aider ?", "audio": [ { "audio": "http://gptbots.ai/example.mp3", "transcript": "Contenu audio transcrit" } ] } } ], "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 } }, "human_trigger": true }
                          
                          {
        "create_time": 1679587005,
        "conversation_id": "657303a8a764d47094874bbe",
        "user_id": "65a4ccfc7ce58e728d5897e0",
        "anonymous_id": "device_abcdef123456",
        "message_id": "65a4ccfC7ce58e728d5897e0",
        "output": [
            {
                "from_component_branch": "1",
                "from_component_name": "Nom du composant",
                "content": {
                    "text": "Bonjour, puis-je vous aider ?",
                    "audio": [
                        {
                            "audio": "http://gptbots.ai/example.mp3",
                            "transcript": "Contenu audio transcrit"
                        }
                    ]
                }
            }
        ],
        "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
            }
        },
        "human_trigger": true
    }
    
                        
    Ce bloc de code dans la fenêtre flottante

    Exemple de réponse lorsque le transfert humain est déclenché

    En mode système de service client interne (Custom Helpdesk), lorsque cette réponse déclenche un transfert vers un agent humain, human_trigger vaut true ; si une note de transfert existe également, un objet handoff est renvoyé en plus (ce champ est absent lorsqu'il n'y a pas de note).

    { "create_time": 1679587005, "conversation_id": "657303a8a764d47094874bbe", "user_id": "65a4ccfc7ce58e728d5897e0", "anonymous_id": "device_abcdef123456", "message_id": "65a4ccfC7ce58e728d5897e0", "output": [ { "from_component_branch": null, "from_component_name": "AI Model-1", "content": { "text": "Transfert vers un agent humain en cours, veuillez patienter.", "audio": null } } ], "usage": { "tokens": { "total_tokens": 29, "prompt_tokens": 19, "prompt_tokens_details": { "audio_tokens": 0, "text_tokens": 19 }, "completion_tokens": 10, "completion_tokens_details": { "reasoning_tokens": 0, "audio_tokens": 0, "text_tokens": 10 } }, "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 } }, "human_trigger": true, "handoff": { "note": "Motif du transfert : l'utilisateur a exprimé à deux reprises son mécontentement à propos du processus de remboursement et a demandé une prise en charge par un agent humain.\nRésumé de la conversation : l'utilisateur a passé une commande le 2 mars, n'a pas reçu de notification de remboursement après avoir demandé un remboursement, et a confirmé le numéro de commande 20260302-8891." } }
                          
                          {
        "create_time": 1679587005,
        "conversation_id": "657303a8a764d47094874bbe",
        "user_id": "65a4ccfc7ce58e728d5897e0",
        "anonymous_id": "device_abcdef123456",
        "message_id": "65a4ccfC7ce58e728d5897e0",
        "output": [
            {
                "from_component_branch": null,
                "from_component_name": "AI Model-1",
                "content": {
                    "text": "Transfert vers un agent humain en cours, veuillez patienter.",
                    "audio": null
                }
            }
        ],
        "usage": {
            "tokens": {
                "total_tokens": 29,
                "prompt_tokens": 19,
                "prompt_tokens_details": {
                    "audio_tokens": 0,
                    "text_tokens": 19
                },
                "completion_tokens": 10,
                "completion_tokens_details": {
                    "reasoning_tokens": 0,
                    "audio_tokens": 0,
                    "text_tokens": 10
                }
            },
            "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
            }
        },
        "human_trigger": true,
        "handoff": {
            "note": "Motif du transfert : l'utilisateur a exprimé à deux reprises son mécontentement à propos du processus de remboursement et a demandé une prise en charge par un agent humain.\nRésumé de la conversation : l'utilisateur a passé une commande le 2 mars, n'a pas reçu de notification de remboursement après avoir demandé un remboursement, et a confirmé le numéro de commande 20260302-8891."
        }
    }
    
                        
    Ce bloc de code dans la fenêtre flottante

    Réponse réussie (Blocking)

    ⚠️ En mode de réponse blocking, le service de transfert humain n'est pas disponible lors de l'intégration de systèmes de service client humain tiers tels que LiveChat ou Intercom (les messages des agents sont envoyés de manière asynchrone et nécessitent le mode webhook pour être reçus).
    Cette restriction ne s'applique pas lors de l'utilisation du système de service client interne (Custom Helpdesk) : le signal de transfert humain est renvoyé via human_trigger / handoff dans le corps de la réponse, et les messages des agents sont écrits par le développeur via cette même API avec role=human_agent.

    Champ Type Description
    user_id string ID utilisateur lié par le développeur ; null lorsqu'aucun utilisateur n'est lié.
    anonymous_id string ID de l'utilisateur anonyme (appareil).
    conversation_id string Oui
    message_id string Identifiant unique d'un message dans une conversation.
    create_time long Horodatage de la génération de ce message de réponse.
    output JSON Array Contenu de la réponse de l'agent.
    from_component_branch string Branche de l'agent des flux.
    from_component_name string Nom du composant amont dans l'agent des flux.
    content object Contenu du message répondu par l'agent IA, inclut actuellement deux types de messages : text et audio.
    human_trigger boolean Indique si cette réponse a déclenché un transfert humain. false lorsqu'il n'est pas déclenché.
    handoff object Informations de transfert humain, présentes uniquement lorsque human_trigger vaut true et qu'une note de transfert existe.
    note string Note de transfert (motif du transfert + résumé de la conversation), 2000 caractères maximum.
    ai_response boolean Renvoyé dans l'accusé de réception des requêtes en archivage seul (ai_response=false ou contenant role=human_agent) pour confirmer que le message a été reconnu comme « archivage seul ».
    sender_role string Renvoyé dans l'accusé de réception des requêtes en archivage seul ; sa valeur est human_agent ou user, pour confirmer le rôle du message archivé.
    usage object Détails de la consommation de ressources.
    tokens JSON Array Total des tokens consommés par l'agent dans cette conversation.
    total_tokens integer Total des tokens consommés pour l'entrée et la sortie dans cette conversation.
    prompt_tokens integer Total des tokens consommés pour l'entrée dans cette conversation.
    completion_tokens integer Total des tokens consommés pour la sortie dans cette conversation.
    prompt_tokens_details object Détail de la consommation de tokens pour l'entrée.
    completion_tokens_details object Détail de la consommation de tokens pour la sortie.
    credits object Total des crédits consommés par l'agent dans cette conversation.
    text_input_credits double Crédits consommés pour les messages texte en entrée dans cette conversation.
    text_output_credits double Crédits consommés pour les messages texte en sortie dans cette conversation.
    audio_input_credits double Crédits consommés pour les messages audio en entrée dans cette conversation.
    audio_output_credits double Crédits consommés pour les messages audio en sortie dans cette conversation.

    Réponse réussie (Streaming)

    ⚠️ En mode de réponse streaming, le service de transfert humain n'est pas disponible lors de l'intégration de systèmes de service client humain tiers tels que LiveChat ou Intercom (les messages des agents sont envoyés de manière asynchrone et nécessitent le mode webhook pour être reçus).
    Cette restriction ne s'applique pas lors de l'utilisation du système de service client interne (Custom Helpdesk) : le déclenchement du transfert humain est envoyé sous forme de trame code:36 HumanTrigger, et la note de transfert suit immédiatement sous forme de trame code:107 HumanHandoffNote.

    Champ Type Description
    code int Code du type de message : 3-Texte, 10-Sortie agent des flux, 0-Fin, 4-Données d'utilisation, 39-Message audio, Requête d'appel d'outil-5, Réponse d'appel d'outil-6, Réflexion-41, 36-Déclenchement du transfert humain, 107-Note de transfert humain.
    message string Type de message : Texte, SortieFlux, Fin, HumanTrigger, HumanHandoffNote.
    data object Contenu de la réponse.
    • Exemple de streaming de message texte :
    {"code":11,"message":"MessageInfo","data":{"message_id":"6785dba0f06d872bff9ee347"}} {"code":3,"message":"Text","data":"Comment "} {"code":3,"message":"Text","data":"puis "} {"code":3,"message":"Text","data":"je "} {"code":3,"message":"Text","data":"vous "} {"code":3,"message":"Text","data":"aider ?"} {"code":0,"message":"End","data":null}
                          
                          {"code":11,"message":"MessageInfo","data":{"message_id":"6785dba0f06d872bff9ee347"}}
    {"code":3,"message":"Text","data":"Comment "}
    {"code":3,"message":"Text","data":"puis "}
    {"code":3,"message":"Text","data":"je "}
    {"code":3,"message":"Text","data":"vous "}
    {"code":3,"message":"Text","data":"aider ?"}
    {"code":0,"message":"End","data":null}
    
                        
    Ce bloc de code dans la fenêtre flottante
    • Exemple de streaming de message audio :
    {"code":11,"message":"MessageInfo","data":{"message_id":"67b857b6be1f2906861a5e75"}} {"code":39,"message":"Audio","data":{"audioAnswer":"","transcript":"Bonjour"}} {"code":39,"message":"Audio","data":{"audioAnswer":"EQAUAA0...IA3bi","transcript":""}} {"code":0,"message":"End","data":null}
                          
                          {"code":11,"message":"MessageInfo","data":{"message_id":"67b857b6be1f2906861a5e75"}}
    {"code":39,"message":"Audio","data":{"audioAnswer":"","transcript":"Bonjour"}}
    {"code":39,"message":"Audio","data":{"audioAnswer":"EQAUAA0...IA3bi","transcript":""}}
    {"code":0,"message":"End","data":null}
    
                        
    Ce bloc de code dans la fenêtre flottante
    • Lorsqu'un transfert humain est déclenché en mode système de service client interne (Custom Helpdesk), la trame de déclenchement du transfert humain et la trame de note de transfert sont envoyées dans l'ordre, avant la trame End :
    {"code":3,"message":"Text","data":"Transfert vers un agent humain en cours, veuillez patienter."} {"code":36,"message":"HumanTrigger","data":"HumanTrigger"} {"code":107,"message":"HumanHandoffNote","data":{"note":"Motif du transfert : l'utilisateur a exprimé à deux reprises son mécontentement à propos du processus de remboursement et a demandé une prise en charge par un agent humain.\nRésumé de la conversation : l'utilisateur a passé une commande le 2 mars, n'a pas reçu de notification de remboursement après avoir demandé un remboursement, et a confirmé le numéro de commande 20260302-8891."}} {"code":0,"message":"End","data":null}
                          
                          {"code":3,"message":"Text","data":"Transfert vers un agent humain en cours, veuillez patienter."}
    {"code":36,"message":"HumanTrigger","data":"HumanTrigger"}
    {"code":107,"message":"HumanHandoffNote","data":{"note":"Motif du transfert : l'utilisateur a exprimé à deux reprises son mécontentement à propos du processus de remboursement et a demandé une prise en charge par un agent humain.\nRésumé de la conversation : l'utilisateur a passé une commande le 2 mars, n'a pas reçu de notification de remboursement après avoir demandé un remboursement, et a confirmé le numéro de commande 20260302-8891."}}
    {"code":0,"message":"End","data":null}
    
                        
    Ce bloc de code dans la fenêtre flottante

    Remarque :

    • code: 36, message: "HumanTrigger" indique que cette réponse a déclenché un transfert humain ; data est une chaîne d'identifiant fixe.
    • code: 107, message: "HumanHandoffNote" correspond à la note de transfert ; sa structure data est identique au champ handoff de la réponse en mode blocking ({"note": "..."}).
    • La trame HumanHandoffNote n'est envoyée que lorsqu'une note de transfert existe ; en l'absence de note, seule la trame HumanTrigger est présente — il n'y a pas de trame 107 vide.
    • Les deux trames sont toujours envoyées avant la trame End (code: 0).

    Réponse réussie (Webhook)

    Une fois l'adresse du webhook configurée dans la section « Intégration-API », le système GPTBots enverra les messages « réponse de l'Agent » et « réponse du service client humain » à l'adresse du webhook.
    webhook config
    Pour plus d'informations sur les messages webhook, veuillez consulter Réception de messages via Webhook et service de transfert humain.

    ⚠️ En mode API, si le service de transfert humain est activé, vous devez utiliser le mode de réponse webhook pour recevoir les messages de réponse du service client humain.

    Réponse d'erreur

    Champ Type Description
    code int Code d'erreur.
    message string Détails de l'erreur.

    Exemple d'échec

    { "code": 40000, "message": "Paramètres invalides", "errors": [ { "error_code": 40000, "error_message": "Message user role type must have file or content." } ], "data": { "create_time": 1679587005, "conversation_id": "657303a8a764d47094874bbe", "user_id": "65a4ccfc7ce58e728d5897e0", "anonymous_id": "device_abcdef123456", "message_id": "65a4ccfC7ce58e728d5897e0", "output": [ { "from_component_branch": "1", "from_component_name": "Component Name", "content": { "text": "Réponse fournie en fonction du contenu reconnaissable……", "audio": null } } ], "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, "text_input_credits": 0, "text_output_credits": 0, "audio_input_credits": 0, "audio_output_credits": 0 } } } }
                          
                          {
      "code": 40000,
      "message": "Paramètres invalides",
      "errors": [
        {
          "error_code": 40000,
          "error_message": "Message user role type must have file or content."
        }
      ],
      "data": {
        "create_time": 1679587005,
        "conversation_id": "657303a8a764d47094874bbe",
        "user_id": "65a4ccfc7ce58e728d5897e0",
        "anonymous_id": "device_abcdef123456",
        "message_id": "65a4ccfC7ce58e728d5897e0",
        "output": [
          {
            "from_component_branch": "1",
            "from_component_name": "Component Name",
            "content": {
              "text": "Réponse fournie en fonction du contenu reconnaissable……",
              "audio": null
            }
          }
        ],
        "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,
            "text_input_credits": 0,
            "text_output_credits": 0,
            "audio_input_credits": 0,
            "audio_output_credits": 0
          }
        }
      }
    }
    
                        
    Ce bloc de code dans la fenêtre flottante

    Codes d'erreur

    Code Message
    40000 Paramètres invalides
    40127 Échec de l'authentification développeur
    40356 La conversation n'existe pas
    40358 Incohérence de l'identifiant de conversation
    40364 L'agent ne prend pas en charge le mode image
    50000 Erreur interne du système
    20040 Limite de longueur de question dépassée
    20022 Crédits insuffisants
    20055 Utilisation de l'API interdite, assurez-vous que l'interrupteur API est activé