Si no usas una integración, debes escribir código para interactuar con los usuarios finales. Para cada turno de conversación, tu código llama a la API de Dialogflow a fin de consultar al agente. En esta guía, se muestra cómo interactuar con un agente mediante la API de REST en la línea de comandos y las bibliotecas cliente.
Antes de comenzar
Si no planeas usar la API, puedes omitir esta guía de inicio rápido.
Debes hacer lo siguiente antes de leer esta guía:
- Aprende los conceptos básicos de Dialogflow.
- Realiza los pasos de configuración.
- Realiza los pasos de la guía de inicio rápido Compila un agente.
En los siguientes pasos, se continúa trabajando en el agente que comenzaste en esa guía.
Si ya no tienes ese agente, puedes descargar
build-agent-quickstart.zip
y, luego, importar el archivo.
Sesiones
Una sesión representa una conversación entre un agente de Dialogflow y un usuario final. La sesión se crea al comienzo de una conversación y se usa para cada turno de la conversación. Una vez terminada la conversación, se deja de usar la sesión.
No se debe usar la misma sesión para conversaciones simultáneas con diferentes usuarios finales. Dialogflow mantiene los contextos activos en ese momento para cada sesión activa. Dialogflow almacena los datos de la sesión durante 20 minutos.
Cada sesión se determina como única por un ID de sesión que generó tu sistema. Para crear una sesión nueva, debes proporcionar un ID de sesión nuevo en una solicitud de detección de intent. Un ID de sesión es una string de 36 bytes de tamaño como máximo. Tu sistema se encarga de generar ID de sesión únicos. Pueden ser números aleatorios, identificadores de usuario final con hash o cualquier otro valor que te resulte conveniente generar.
Detecta intents
Cuando usas la API para interactuar, tu servicio interactúa directamente con el usuario final.
Para cada turno de la conversación, el servicio envía expresiones del usuario final a Dialogflow mediante llamadas al método detectIntent
o streamingDetectIntent
del tipo Sessions
.
Dialogflow responde con información sobre el intent coincidente, la acción, los parámetros y la respuesta definida para ese intent.
Tu servicio realiza acciones según sea necesario (por ejemplo, consultas a la base de datos o llamadas a la API externa) y envía un mensaje al usuario final.
Este proceso continúa hasta que la conversación finaliza.
En los ejemplos siguientes, se muestra cómo detectar intents. En cada ejemplo se acepta un subconjunto de las siguientes entradas:
- ID del proyecto: Usa el ID del proyecto que creaste en los pasos de configuración.
- ID de sesión: En el contexto de la prueba de un agente, puedes usar lo que quieras. En los ejemplos, se suele usar “123456789”.
- Texto o textos: Se refiere a la única expresión del usuario final o a la lista de expresiones del usuario final. Si se proporcionan varias expresiones, las llamadas al código de muestra detectan el intent de cada expresión. Intenta usar “I know french” (Sé francés).
- Código de lenguaje: El código de lenguaje de la expresión del usuario final. Usa “en-US” para este agente de muestra.
REST
Para detectar un intent, llama al métododetectIntent
en el recurso Sessions
.
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.
- SESSION_ID: Es un ID de sesión.
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/SESSION_ID:detectIntent
Cuerpo JSON de la solicitud:
{ "query_input": { "text": { "text": "I know french", "language_code": "en-US" } } }
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": "856510ca-f617-4e25-b0bb-a26c0a59e030-19db3199", "queryResult": { "queryText": "I know french", "parameters": { "language": "French", "language-programming": "" }, "allRequiredParamsPresent": true, "fulfillmentText": "Wow! I didn't know you knew French. How long have you known French?", "fulfillmentMessages": [ { "text": { "text": [ "Wow! I didn't know you knew French. How long have you known French?" ] } } ], "outputContexts": [ { "name": "projects/PROJECT_ID/agent/sessions/123456789/contexts/set-language-followup", "lifespanCount": 2, "parameters": { "language": "French", "language.original": "french", "language-programming": "", "language-programming.original": "" } } ], "intent": { "name": "projects/PROJECT_ID/agent/intents/fe45022f-e58a-484f-96e8-1cbd6628f648", "displayName": "set-language" }, "intentDetectionConfidence": 1, "languageCode": "en" } }
Ten en cuenta estos aspectos sobre la respuesta:
- El campo
queryResult.intent
contiene el intent coincidente. - El valor del campo
queryResult.fulfillmentMessages
contiene la respuesta del intent. Esta es la respuesta que el sistema debe enviarle al usuario final. - El valor del campo
queryResult.parameters
contiene los parámetros extraídos de la expresión del usuario final. - El campo
queryResult.outputContext
contiene el contexto activo.
Go
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.
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.
Idiomas adicionales
C#: Sigue lasinstrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita ladocumentación de referencia de Dialogflow para .NET.
PHP: Sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Dialogflow para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Dialogflow para Ruby.
Producción
Antes de ejecutar el agente en producción, asegúrate de implementar las prácticas recomendadas de producción.