En cada turno de conversación, se produce una interacción. Durante una interacción, un usuario final envía información a Conversational Agents (Dialogflow CX) y Conversational Agents (Dialogflow CX) envía una respuesta. Tiene dos opciones para implementar su sistema de gestión de interacciones: usar la API o usar una integración.
Cuando utilice la API, su sistema debe gestionar lo siguiente:
- Crea un agente.
- Proporcionar una interfaz de usuario para los usuarios finales.
- Llama a la API de Dialogflow en cada turno de conversación para enviar la entrada del usuario final a la API.
- A menos que las respuestas de tu agente sean puramente estáticas (lo cual es poco habitual), debes alojar un servicio de webhook para gestionar el cumplimiento habilitado para webhook.
Cuando se usa una integración, el sistema solo tiene que gestionar lo siguiente:
- Crea un agente.
- Implementa un servicio de webhook (opcional).
En el siguiente diagrama se muestran los pasos que se llevan a cabo en un turno de conversación de una sesión.
- El usuario final escribe o dice algo, lo que se conoce como entrada del 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 detección de intención.
- La API de Dialogflow recibe la solicitud de detección de intent. Coincide con la entrada de un intent o un parámetro de formulario, define los parámetros según sea necesario y actualiza el estado de la sesión. Si necesita llamar a un webhook de respuesta habilitado, envía una solicitud de webhook a tu servicio de webhook. De lo contrario, ve al paso 6.
- Tu servicio de webhook recibe la solicitud de webhook. Tu servicio realiza las acciones necesarias, como llamar a APIs externas, consultar o actualizar una base de datos, etc.
- Tu servicio de webhook crea una respuesta y envía una respuesta de webhook a Conversational Agents (Dialogflow CX).
- Conversational Agents (Dialogflow CX) crea una respuesta de detección de intención. Si se ha llamado a un webhook, se usa la respuesta proporcionada en la respuesta del webhook. Si no se ha llamado a ningún webhook, se usa la respuesta estática definida en el agente. Los agentes conversacionales (Dialogflow CX) envían una respuesta de detección de intención a tu interfaz de usuario o sistema de integración.
- Tu interfaz de usuario o sistema de integración recibe la respuesta de detección de intenció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 explica cómo llamar a la API para una conversación de un agente que no usa una integración (paso 2 del diagrama anterior). En esta guía no se explica cómo implementar una interfaz de usuario para el usuario final.
Antes de empezar
Antes de leer esta guía, debes hacer lo siguiente:
- Consulta los conceptos básicos de los flujos.
- Sigue los pasos de configuración.
- Crea un agente o sigue usando el que creaste en Crear un agente con flujos o Crear un agente con guiones.
Recoger IDs
Las muestras que se muestran a continuación 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 Google Cloud proyecto para abrir el selector de agentes.
- Haz clic en la opción more_vert menú de un agente de la lista.
- Haga clic en el nombre de la copia filter_none botón.
- De esta forma, se copia el nombre identificativo completo de tu agente, que incluye el ID de tu 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 Aplicaciones de IA
Ve a la consola de aplicaciones de IA:
El ID de tu proyecto se muestra en la parte superior de la consola.
En la columna Ubicación se muestran los IDs de región.
Selecciona una aplicación.
El segmento de la ruta de la URL del navegador después de
agents/
contiene el ID de la aplicación del agente.
También necesitas un ID de sesión.
Una sesión representa una conversación entre un agente de Conversational Agents (Dialogflow CX) y un usuario final.
Crea un ID de sesión único al principio de una conversación y lo usas en cada turno de la conversación.
Para probar la API, puedes usar cualquier ID de cadena que tenga como máximo 36 bytes, como test-session-123
.
Llamar a la detección de intents
En los siguientes ejemplos se llama al método Sessions.detectIntent
.
Seleccione un protocolo y una versión para la referencia de la 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 los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de Google Cloud
- AGENT_ID: tu ID de agente
- REGION_ID: tu ID de región
- SESSION_ID: tu 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para autenticarte en Dialogflow, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Puesta en producción
Antes de ejecutar tu agente en producción, asegúrate de implementar las prácticas recomendadas para la puesta en producción.