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. 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

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 et assistant 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.
  • 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", "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 } } }
                          
                          {
        "create_time": 1679587005,
        "conversation_id": "657303a8a764d47094874bbe",
        "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
            }
        }
    }
    
                        
    Ce bloc de code dans la fenêtre flottante

    Réponse réussie (Blocking)

    ⚠️ Le service de transfert humain n'est pas disponible en mode de réponse blocking.

    Champ Type Description
    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.
    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)

    ⚠️ Le service de transfert humain n'est pas disponible en mode de réponse streaming.

    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.
    message string Type de message : Texte, SortieFlux, Fin.
    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

    Réponse réussie (Webhook)

    ⚠️ Le service de transfert humain est disponible en mode de réponse webhook.
    Lorsque le service client humain est activé pour un agent, vous devez utiliser le mode de réponse webhook pour recevoir les messages des représentants du service client humain. Après avoir configuré l'URL webhook dans la section "Intégration-API", le système GPTBots enverra les messages de réponse à la fois de l'"agent" et du "service client humain" à votre URL webhook.
    webhook config
    Pour plus d'informations sur les messages webhook, veuillez consulter Mode Webhook et service de transfert humain.

    Réponse d'erreur

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

    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é