logo
Desarrollo
Buscar
Enviar mensaje

Enviar mensaje

Se utiliza esta API para enviar mensajes a un conversation_id especificado y recibir respuestas generadas por el agente. La API admite varios tipos de contenido de mensaje, incluidos texto, imágenes, audio y documentos.

Método de solicitud

POST

Endpoint

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

Autenticación

Para obtener instrucciones de autenticación, consulte API Overview (Visión general).

Solicitud

Ejemplo de solicitud

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": "I have uploaded 2 image files, please OCR and return 2 json records." }, { "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" } } }'
                      
                      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": "I have uploaded 2 image files, please OCR and return 2 json records."
                },
                {
                    "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"
        }
    }
}'

                    
Este bloque de código en una ventana flotante

Notas importantes:

  1. Para los tipos de contenido image, audio y document, se puede utilizar codificación base64 o enlaces URL; ambos formatos son compatibles.
  2. En el modo sistema de atención al cliente propio (Custom Helpdesk), los mensajes del agente humano y los mensajes de usuario recibidos durante la transferencia a un agente humano se envían con ai_response=false o role=human_agent; solo se archivan y NO activan la IA. Ejemplo:
    { "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": "Hola, le atiende un agente humano. ¿En qué puedo ayudarle?" } ] }
                          
                              {
            "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": "Hola, le atiende un agente humano. ¿En qué puedo ayudarle?" }
            ]
        }
    
                        
    Este bloque de código en una ventana flotante
  3. Los desarrolladores solo deben enviar el mensaje de usuario más reciente, ya que GPTBots gestiona de forma predeterminada la memoria a corto y largo plazo. Si se necesita personalizar el contexto de memoria a corto plazo, consulte el siguiente ejemplo:
    "messages": [ { "role": "user", "content": "Hello" //Custom short-term memory }, { "role": "assistant", "content": "Hello! How can I assist you today?" //Custom short-term memory }, { "role": "user", "content": "Hello" //Latest user message }]
                          
                              "messages": [
            {
                "role": "user", 
                "content": "Hello"                                //Custom short-term memory
            },
            {
                "role": "assistant",
                "content": "Hello! How can I assist you today?"   //Custom short-term memory
            },
            {
                "role": "user",
                "content": "Hello"                                //Latest user message
            }]
    
                        
    Este bloque de código en una ventana flotante

Cabeceras de la solicitud

Campo Tipo Descripción
Authorization Bearer ${API Key} Se utiliza Authorization: Bearer ${API Key} para la autenticación. La clave de API se obtiene en la página «API Key».
Content-Type application/json Tipo de datos; debe ser application/json.

Parámetros de la solicitud

Campo Tipo Obligatorio Descripción
conversation_id string Identificador único de la conversación. Se debe proporcionar conversation_id para continuar la conversación.
response_mode string Modo de respuesta del agente:
  • blocking: Se espera a que finalice la ejecución y se devuelven los resultados (puede interrumpirse si el proceso es demasiado largo).
  • streaming: Se transmite la respuesta mediante SSE (Server-Sent Events).
  • webhook: Los mensajes del agente y del servicio de atención al cliente humano se enviarán a la URL del webhook configurada en la página de la API.
  • messages matriz JSON Contenido del mensaje; admite los roles user, assistant y human_agent para construir el contexto de la conversación.
  • mensaje de usuario: Se requiere al menos uno; el mensaje de usuario más reciente debe ser el último.
  • mensaje de asistente: Los desarrolladores pueden construir mensajes del asistente como contexto.
  • mensaje de human_agent: mensaje del agente humano (modo sistema de atención al cliente propio (Custom Helpdesk)); los mensajes de este rol nunca activan una respuesta de la IA, solo se archivan como contexto posterior y no se ven afectados por ai_response.
  • ai_response boolean No Indica si la IA responde a este mensaje. De forma predeterminada es true, es decir, si no se envía este campo el comportamiento es idéntico al de las llamadas existentes.
  • false: el mensaje solo se archiva; la IA no responde, tampoco consume tokens ni créditos, y la respuesta es un acuse de recibo ligero.
  • true: la IA responde con normalidad; en el modo sistema de atención al cliente propio (Custom Helpdesk), pasar true de forma explícita también devuelve la conversación a la IA desde el estado de transferencia a un agente humano.
  • Si se omite: si la conversación se encuentra actualmente en transferencia a un agente humano del sistema de atención al cliente propio, equivale a false; de lo contrario, equivale a true.
  • human_agent_info object No Información de identidad del agente humano; solo tiene sentido cuando messages contiene role=human_agent (campo de nivel superior, un agente humano por solicitud).
    name string No Nombre del agente humano.
    email string No Correo electrónico del agente humano.
    image_url string No URL del avatar del agente humano.
    conversation_config object No Permite a los desarrolladores ajustar temporalmente el ámbito funcional del agente para esta conversación a fin de cumplir requisitos especiales.
    short_term_memory boolean No Conmutador de memoria a corto plazo. Permite habilitar o deshabilitar la memoria a corto plazo solo para esta conversación.
    long_term_memory boolean No Conmutador de memoria a largo plazo. Permite habilitar o deshabilitar la memoria a largo plazo solo para esta conversación.
    knowledge object No Ámbito de recuperación de conocimiento. Permite personalizar el rango de recuperación de conocimiento solo para esta conversación. Cuando se proporcionan group_ids y data_ids, la recuperación se realiza dentro de la unión de sus bases de conocimiento. Si ambos son matrices vacías, no se recupera ningún conocimiento. Si se omite el parámetro knowledge, se utiliza la configuración de conocimiento predeterminada del agente.
  • group_ids: ID de base de conocimiento, que pueden contener varios documentos de conocimiento.
  • data_ids: ID de los documentos de conocimiento dentro de la base de conocimiento.
  • custom_variables object No Variables personalizadas. Permite a los desarrolladores ajustar temporalmente los valores de las variables personalizadas en el agente solo para esta conversación.
    thinking boolean No Controla si se devuelve información de Thinking en streaming.
    tool_call boolean No Controla si se devuelve información de llamada a herramientas en streaming.

    Nota:

    Las páginas de configuración de entrada y salida del agente admiten diferentes esquemas de reconocimiento para distintos tipos de mensajes. Los tipos y tamaños de archivo admitidos varían. Se deben ajustar los datos enviados a la API en consecuencia. Formatos de mensaje máximos admitidos:

    • Mensaje de texto: string
    • Mensaje de audio: .mp3, .wav, .acc
    • Mensaje de imagen: .jpg, .jpeg, .png, .gif, .webp
    • Mensaje de documento: .pdf, .txt, .docx, .csv, .xlsx, .html, .json, .md, .tex, .ts, .xml, etc.

    Respuesta

    Ejemplo de respuesta

    { "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": "Hi, is there anything I can help you?", "audio": [ { "audio": "http://gptbots.ai/example.mp3", "transcript": "Transcribed audio content" } ] } } ], "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": "Component Name",
                "content": {
                    "text": "Hi, is there anything I can help you?",
                    "audio": [
                        {
                            "audio": "http://gptbots.ai/example.mp3",
                            "transcript": "Transcribed audio content"
                        }
                    ]
                }
            }
        ],
        "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
    }
    
                        
    Este bloque de código en una ventana flotante

    Ejemplo de respuesta cuando se activa la transferencia a un agente humano

    En el modo sistema de atención al cliente propio (Custom Helpdesk), cuando esta respuesta activa una transferencia a un agente humano, human_trigger es true; si además existe una nota de transferencia, se devuelve adicionalmente un objeto handoff (este campo no aparece cuando no hay ninguna nota).

    { "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": "Le estamos transfiriendo a un agente humano, espere un momento.", "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": "Motivo de la transferencia: el usuario expresó dos veces seguidas su insatisfacción con el proceso de reembolso y solicitó atención humana.\nResumen de la conversación: el usuario realizó un pedido el 2 de marzo, no recibió ninguna notificación de reembolso tras solicitarlo y ha confirmado el número de pedido 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": "Le estamos transfiriendo a un agente humano, espere un momento.",
                    "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": "Motivo de la transferencia: el usuario expresó dos veces seguidas su insatisfacción con el proceso de reembolso y solicitó atención humana.\nResumen de la conversación: el usuario realizó un pedido el 2 de marzo, no recibió ninguna notificación de reembolso tras solicitarlo y ha confirmado el número de pedido 20260302-8891."
        }
    }
    
                        
    Este bloque de código en una ventana flotante

    Respuesta correcta (Blocking)

    ⚠️ En el modo de respuesta blocking, el servicio de transferencia a un agente humano no está disponible al integrar sistemas de atención al cliente humano de terceros como LiveChat o Intercom (los mensajes del agente humano se envían de forma asíncrona y requieren el modo webhook).
    Al usar el sistema de atención al cliente propio (Custom Helpdesk) no se aplica esta restricción: la señal de transferencia a un agente humano se devuelve mediante human_trigger / handoff en el cuerpo de la respuesta, y los mensajes del agente humano los escribe el propio desarrollador a través de esta misma API con role=human_agent.

    Campo Tipo Descripción
    user_id string ID de usuario vinculado por el desarrollador; es null cuando no hay ningún usuario vinculado.
    anonymous_id string ID de usuario anónimo (dispositivo).
    conversation_id string Identificador de la conversación; se debe proporcionar conversation_id para continuar la conversación.
    message_id string Identificador único de un mensaje dentro de una conversación.
    create_time long Marca de tiempo de cuando se generó este mensaje de respuesta.
    output matriz JSON Contenido de la respuesta del agente.
    from_component_branch string Rama de FlowAgent.
    from_component_name string Nombre del componente ascendente en FlowAgent.
    content object Contenido del mensaje respondido por el agente de IA; actualmente incluye dos tipos de mensajes: text y audio.
    human_trigger boolean Indica si esta respuesta activó una transferencia a un agente humano. Es false cuando no se activa.
    handoff object Información de transferencia a un agente humano; solo aparece cuando human_trigger es true y existe una nota de transferencia.
    note string Nota de transferencia (motivo de la transferencia + resumen de la conversación), hasta 2000 caracteres.
    ai_response boolean Se refleja en el acuse de recibo de las solicitudes de solo archivado (ai_response=false o que contienen role=human_agent) para confirmar que el mensaje se ha reconocido como «solo archivado».
    sender_role string Se refleja en el acuse de recibo de las solicitudes de solo archivado; su valor es human_agent o user, para confirmar el rol del mensaje archivado.
    usage object Detalles del consumo de recursos.
    tokens matriz JSON Total de tokens consumidos por el agente en esta conversación.
    total_tokens integer Total de tokens consumidos, tanto de entrada como de salida, en esta conversación.
    prompt_tokens integer Total de tokens consumidos para la entrada en esta conversación.
    completion_tokens integer Total de tokens consumidos para la salida en esta conversación.
    prompt_tokens_details object Desglose detallado del consumo de tokens de entrada.
    completion_tokens_details object Desglose detallado del consumo de tokens de salida.
    credits object Total de créditos consumidos por el agente en esta conversación.
    text_input_credits double Créditos consumidos por mensajes de texto de entrada en esta conversación.
    text_output_credits double Créditos consumidos por mensajes de texto de salida en esta conversación.
    audio_input_credits double Créditos consumidos por mensajes de audio de entrada en esta conversación.
    audio_output_credits double Créditos consumidos por mensajes de audio de salida en esta conversación.

    Respuesta correcta (Streaming)

    ⚠️ En el modo de respuesta streaming, el servicio de transferencia a un agente humano no está disponible al integrar sistemas de atención al cliente humano de terceros como LiveChat o Intercom (los mensajes del agente humano se envían de forma asíncrona y requieren el modo webhook).
    Al usar el sistema de atención al cliente propio (Custom Helpdesk) no se aplica esta restricción: la activación de la transferencia a un agente humano se envía como un frame code:36 HumanTrigger, y la nota de transferencia le sigue inmediatamente como un frame code:107 HumanHandoffNote.

    Campo Tipo Descripción
    code int Código del tipo de mensaje: 3-Text, 10-FlowAgent output, 0-End, 4-Usage data, 39-Audio message, 5-Tool Call Request, 6-Tool Call Response, 41-Thinking, 36-Activación de transferencia a un agente humano, 107-Nota de transferencia a un agente humano.
    message string Tipo de mensaje: Text, FlowOutput, End, HumanTrigger, HumanHandoffNote.
    data object Contenido de la respuesta.
    • Ejemplo de transmisión de mensaje de texto:
    {"code":11,"message":"MessageInfo","data":{"message_id":"6785dba0f06d872bff9ee347"}} {"code":3,"message":"Text","data":"How "} {"code":3,"message":"Text","data":"can "} {"code":3,"message":"Text","data":"I "} {"code":3,"message":"Text","data":"help "} {"code":3,"message":"Text","data":"you?"} {"code":0,"message":"End","data":null}
                          
                          {"code":11,"message":"MessageInfo","data":{"message_id":"6785dba0f06d872bff9ee347"}}
    {"code":3,"message":"Text","data":"How "}
    {"code":3,"message":"Text","data":"can "}
    {"code":3,"message":"Text","data":"I "}
    {"code":3,"message":"Text","data":"help "}
    {"code":3,"message":"Text","data":"you?"}
    {"code":0,"message":"End","data":null}
    
                        
    Este bloque de código en una ventana flotante
    • Ejemplo de transmisión de mensaje de audio:
    {"code":11,"message":"MessageInfo","data":{"message_id":"67b857b6be1f2906861a5e75"}} {"code":39,"message":"Audio","data":{"audioAnswer":"","transcript":"Hello"}} {"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":"Hello"}}
    {"code":39,"message":"Audio","data":{"audioAnswer":"EQAUAA0...IA3bi","transcript":""}}
    {"code":0,"message":"End","data":null}
    
                        
    Este bloque de código en una ventana flotante
    • En el modo sistema de atención al cliente propio (Custom Helpdesk), cuando se activa una transferencia a un agente humano, el frame de activación de la transferencia y el frame de la nota de transferencia se envían en orden, antes del frame End:
    {"code":3,"message":"Text","data":"Le estamos transfiriendo a un agente humano, espere un momento."} {"code":36,"message":"HumanTrigger","data":"HumanTrigger"} {"code":107,"message":"HumanHandoffNote","data":{"note":"Motivo de la transferencia: el usuario expresó dos veces seguidas su insatisfacción con el proceso de reembolso y solicitó atención humana.\nResumen de la conversación: el usuario realizó un pedido el 2 de marzo, no recibió ninguna notificación de reembolso tras solicitarlo y ha confirmado el número de pedido 20260302-8891."}} {"code":0,"message":"End","data":null}
                          
                          {"code":3,"message":"Text","data":"Le estamos transfiriendo a un agente humano, espere un momento."}
    {"code":36,"message":"HumanTrigger","data":"HumanTrigger"}
    {"code":107,"message":"HumanHandoffNote","data":{"note":"Motivo de la transferencia: el usuario expresó dos veces seguidas su insatisfacción con el proceso de reembolso y solicitó atención humana.\nResumen de la conversación: el usuario realizó un pedido el 2 de marzo, no recibió ninguna notificación de reembolso tras solicitarlo y ha confirmado el número de pedido 20260302-8891."}}
    {"code":0,"message":"End","data":null}
    
                        
    Este bloque de código en una ventana flotante

    Nota:

    • code: 36, message: "HumanTrigger" significa que esta respuesta activó una transferencia a un agente humano; data es una cadena de identificación fija.
    • code: 107, message: "HumanHandoffNote" es la nota de transferencia; su estructura data coincide con el campo handoff de la respuesta blocking ({"note": "..."}).
    • El frame HumanHandoffNote solo se envía cuando existe una nota de transferencia; si no hay ninguna nota, solo aparece el frame HumanTrigger y no se genera ningún frame 107 vacío.
    • Ambos frames se envían siempre antes del frame End (code: 0).

    Respuesta correcta (Webhook)

    Después de configurar la dirección del webhook en la sección «Integration-API», el sistema GPTBots enviará los mensajes de «respuesta del Agent» y «respuesta del servicio de atención humana» a la dirección del webhook.
    webhook config
    Para obtener información detallada sobre los mensajes del webhook, consulte Recepción de mensajes por webhook y servicio de transferencia a un agente humano.

    ⚠️ En el modo API, si se habilita el servicio de transferencia a un agente humano, debe utilizar el modo de respuesta webhook para poder recibir los mensajes de respuesta del servicio de atención humana.

    Respuesta de error

    Campo Tipo Descripción
    code int Código de error.
    message string Detalles del error.

    Ejemplo de error

    { "code": 40000, "message": "Parámetros no válidos", "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": "Se ha respondido según el contenido reconocible……", "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": "Parámetros no válidos",
      "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": "Se ha respondido según el contenido reconocible……",
              "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
          }
        }
      }
    }
    
                        
    Este bloque de código en una ventana flotante

    Códigos de error

    Código Mensaje
    40000 Parámetros no válidos
    40127 Error de autenticación del desarrollador
    40356 La conversación no existe
    40358 Incoherencia del ID de conversación
    40364 El agente no admite la modalidad de imagen
    50000 Error interno del sistema
    20040 Se ha superado el límite de longitud de la pregunta
    20022 Créditos insuficientes
    20055 Uso de la API prohibido; asegúrese de que el conmutador de API está habilitado