Para cada turno de la conversación, se produce una interacción. Durante una interacción, un usuario final envía una entrada a los agentes conversacionales (Dialogflow CX) y estos envían una respuesta. Cuando implementes tu sistema para controlar las interacciones, tienes dos opciones: usar la API o usar una integración.
Cuando usas la API, tu sistema debe controlar lo siguiente:
- Compila un agente.
- Proporciona una interfaz de usuario para los usuarios finales.
- Llama a la API de Dialogflow para cada turno de conversación a fin de enviar la entrada del usuario final a la API.
- A menos que tus respuestas de agente sean estáticas (poco comunes), debes alojar un servicio de webhook para manejar la entrega habilitada para webhook.
Cuando usas una integración, tu sistema solo necesita controlar lo siguiente:
- Compila un agente.
- De manera opcional, implementa un servicio de webhook.
En el siguiente diagrama, se muestran los pasos que se deben seguir para un turno de conversación de una sesión.
- El usuario final escribe o dice algo, conocido como entrada de usuario final.
- Tu interfaz de usuario o sistema de integración recibe la entrada y la reenvía a la API de Dialogflow en una solicitud de intent de detección.
- La API de Dialogflow recibe la solicitud de intent de detección. Coincide con la entrada a un intent o parámetro de formulario, establece los parámetros según sea necesario y actualiza el estado de la sesión. Si necesita llamar a una entrega habilitada para webhook, envía una solicitud de webhook a tu servicio de webhook, de lo contrario, va al paso 6.
- Tu servicio de webhook recibe la solicitud de webhook. Tu servicio realiza las acciones necesarias, como llamar a API externas, consultar o actualizar una base de datos, etcétera.
- Tu servicio de webhook compila una respuesta y envía una respuesta de webhook a los agentes conversacionales (Dialogflow CX).
- Los agentes conversacionales (Dialogflow CX) crean una respuesta de intent de detección. Si se llamó a un webhook, usa la respuesta proporcionada en la respuesta de webhook. Si no se llamó a ningún webhook, usa la respuesta estática que se define en el agente. Los agentes conversacionales (Dialogflow CX) envían una respuesta de intent de detección a tu interfaz de usuario o sistema de integración.
- Tu interfaz de usuario o sistema de integración recibe la respuesta de intent de detección y reenvía la respuesta de texto o audio al usuario final.
- El usuario final ve o escucha la respuesta.
Objetivo de la guía
En esta guía, se muestra cómo llamar a la API para un turno de conversación en un agente que no usa una integración (paso 2 del diagrama anterior). En esta guía no se muestra cómo implementar una interfaz de usuario para el usuario final.
Antes de comenzar
Debes hacer lo siguiente antes de leer esta guía:
- Lee los conceptos básicos del flujo.
- Realiza los pasos de configuración.
- Crea un agente nuevo o continúa usando el que creaste en Cómo compilar un agente con flujos o Cómo compilar un agente con libros de jugadas.
Recopila ID
Los siguientes ejemplos requieren varios IDs como entrada. Para encontrar el ID de tu proyecto, el ID de la región y el ID del agente, sigue estos pasos:
Consola de Dialogflow CX
- Abre la consola de Dialogflow CX.
- Selecciona tu proyecto de Google Cloud para abrir el selector de agentes.
- Haz clic en el menú de opción more_vert de un agente de la lista.
- Haz clic en el botón de nombre de la copia filter_none.
- Esto copia el nombre completo de la identificación de tu agente, que incluye el ID del proyecto, el ID de la región y el ID del agente con el siguiente formato:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
Consola de Agent Builder
Ve a la consola de Agent Builder:
El ID de tu proyecto se muestra en la parte superior de la consola.
La columna Ubicación muestra los IDs de región.
Selecciona una app.
El segmento de ruta de URL del navegador después de
agents/
contiene el ID de la app del agente.
También necesitas un ID de sesión.
Una sesión representa una conversación entre un agente de agentes conversacionales (Dialogflow CX) y un usuario final.
Creas un ID de sesión único al comienzo de una conversación y lo usas para cada turno de la conversación.
Para probar la API, puedes usar cualquier ID de cadena de 36 bytes como máximo, como test-session-123
.
Llama al intent de detección
En los siguientes ejemplos, se llama al método Sessions.detectIntent
.
Selecciona un protocolo y una versión para la referencia de sesión:
Protocolo | V3 | V3beta1 |
---|---|---|
REST | Recurso de sesión | Recurso de sesión |
RPC | Interfaz de sesión | Interfaz de sesión |
C++ | SessionsClient | No disponible |
C# | SessionsClient | No disponible |
Go | SessionsClient | No disponible |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | No disponible | No disponible |
Python | SessionsClient | SessionsClient |
Ruby | No disponible | No disponible |
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Google Cloud.
- AGENT_ID: Es el ID del agente.
- REGION_ID: Es el ID de región
- SESSION_ID: Es el ID de sesión.
- END_USER_INPUT: La entrada del usuario final
Método HTTP y URL:
POST https://REGION_ID-dialogflow.googleapis.com/v3/projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID/sessions/SESSION_ID:detectIntent
Cuerpo JSON de la solicitud:
{ "queryInput": { "text": { "text": "END_USER_INPUT" }, "languageCode": "en" }, "queryParams": { "timeZone": "America/Los_Angeles" } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "responseId": "38e8f23d-eed2-445e-a3e7-149b242dd669", "queryResult": { "text": "I want to buy a shirt", "languageCode": "en", "responseMessages": [ { "text": { "text": [ "Ok, let's start a new order." ] } }, { "text": { "text": [ "I'd like to collect a bit more information from you." ] } }, { "text": { "text": [ "What color would you like?" ] } }, {} ], "currentPage": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/flows/00000000-0000-0000-0000-000000000000/pages/ce0b88c4-9292-455c-9c59-ec153dad94cc", "displayName": "New Order" }, "intent": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665", "displayName": "order.new" }, "intentDetectionConfidence": 1, "diagnosticInfo": { ... }, "match": { "intent": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665", "displayName": "order.new" }, "resolvedInput": "I want to buy a shirt", "matchType": "INTENT", "confidence": 1 } } }
Java
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Producción
Antes de ejecutar el agente en producción, asegúrate de implementar las prácticas recomendadas de producción.