Si no usas una integración, debes escribir código para interactuar con los usuarios finales. En cada turno de conversación, tu código llama a la API de Dialogflow para consultar tu agente. En esta guía se muestra cómo interactuar con un agente mediante la API REST en la línea de comandos y mediante las bibliotecas de cliente.
Antes de empezar
Si no tienes previsto usar la API, puedes saltarte esta guía de inicio rápido.
Antes de leer esta guía, debes hacer lo siguiente:
- Conocer los conceptos básicos de Dialogflow.
- Sigue los pasos de configuración.
- Sigue los pasos de la guía de inicio rápido Crear un agente.
Los pasos que se indican a continuación continúan trabajando en el agente que has creado en esa guía.
Si ya no tienes ese agente, puedes descargar
build-agent-quickstart.zip
e importar el archivo.
Sesiones
Una sesión representa una conversación entre un agente de Dialogflow y un usuario final. Creas una sesión al principio de una conversación y la usas en cada turno de la conversación. Una vez que haya finalizado la conversación, dejarás de usar la sesión.
No debes usar la misma sesión para mantener conversaciones simultáneas con diferentes usuarios finales. Dialogflow mantiene los contextos activos de cada sesión activa. Dialogflow almacena los datos de las sesiones durante 20 minutos.
Cada sesión se determina como única mediante un ID de sesión generado por tu sistema. Para crear una sesión, debes proporcionar un nuevo ID de sesión en una solicitud de detección de intención. Un ID de sesión es una cadena de 36 bytes como máximo. Tu sistema es el responsable de generar IDs de sesión únicos. Pueden ser números aleatorios, identificadores de usuario final cifrados con hash o cualquier otro valor que le resulte cómodo generar.
Detectar un intent
Cuando usas la API para las interacciones, tu servicio interactúa directamente con el usuario final.
En cada interacción, tu servicio envía expresiones de usuario final a Dialogflow llamando al método detectIntent
o streamingDetectIntent
del tipo Sessions
.
Dialogflow responde con información sobre la intención que coincide, la acción, los parámetros y la respuesta definidos para la intención.
Tu servicio realiza las acciones necesarias (por ejemplo, consultas de bases de datos o llamadas a APIs externas) y envía un mensaje al usuario final.
Este proceso continúa hasta que finaliza la conversación.
En los siguientes ejemplos se muestra cómo detectar intenciones. Cada ejemplo acepta un subconjunto de las siguientes entradas:
- ID del proyecto: Usa el ID del proyecto que has creado en los pasos de configuración.
- ID de sesión: Para probar un agente, puedes usar cualquier valor. Por ejemplo, "123456789" se usa con frecuencia en las muestras.
- Texto o textos: se trata de una expresión de usuario final o de una lista de expresiones de usuario final. Si se proporcionan varias expresiones, el código de ejemplo llama a la detección de intenciones para cada expresión. Prueba a decir "I know french" ("Sé francés").
- Código de idioma: código de idioma de la expresión del usuario final. Usa "en-US" para este agente de ejemplo.
REST
Para detectar la intención, llama al métododetectIntent
del recurso Sessions
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de Google Cloud
- SESSION_ID: 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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 lo siguiente sobre la respuesta:
- El campo
queryResult.intent
contiene el intent coincidente. - El valor del campo
queryResult.fulfillmentMessages
contiene la respuesta de la intención. Esta es la respuesta que tu sistema debe reenviar 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. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
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.
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Dialogflow para .NET.
PHP Sigue las instrucciones de configuración de PHP en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Dialogflow para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Dialogflow para Ruby.
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.