La función de sugerencias de artículos de Agent Assist sigue una conversación entre un agente humano y un usuario final, y le proporciona al agente humano sugerencias de documentos relevantes. Un agente humano puede examinar estas sugerencias mientras la conversación continúa y tomar una decisión sobre qué documentos leer o compartir con el usuario final. Puedes usar la sugerencia de artículos para ayudar a un agente humano a comprender y resolver los problemas del usuario final mientras ambos están en una conversación.
Agent Assist proporciona modelos de sugerencias de artículos de referencia que puedes usar para sugerir artículos a tus agentes. De manera opcional, puedes entrenar un modelo personalizado con tus propios datos de conversación subidos para mejorar el rendimiento. Si deseas entrenar un modelo de sugerencias personalizado para usarlo con la sugerencia de artículos, comunícate con tu representante de Google.
En este documento, se explica el proceso para usar la API y, así, implementar la sugerencia de artículos y obtener sugerencias de esta función durante el tiempo de ejecución. Puedes usar la consola de Agent Assist para probar los resultados de las sugerencias de artículos durante el tiempo de diseño, pero debes llamar a la API directamente durante el tiempo de ejecución. Consulta la sección de instructivos para obtener detalles sobre cómo probar el rendimiento de las funciones con la Consola de Agent Assist.
Antes de comenzar
Completa lo siguiente antes de comenzar con esta guía:
- Habilita la API de Dialogflow para tu proyecto deGoogle Cloud .
Cómo configurar un perfil de conversación
Para obtener sugerencias de Agent Assist, debes crear una base de conocimiento que contenga los documentos que subiste y configurar un perfil de conversación. También puedes realizar estas acciones con la consola de Agent Assist si prefieres no llamar a la API directamente.
Crear una base de conocimiento
Antes de comenzar a subir documentos, debes crear una base de conocimiento para almacenarlos. Para crear una base de conocimiento, llama al método create
en el tipo KnowledgeBase
.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID del proyecto de GCP.
- KNOWLEDGE_BASE_DISPLAY_NAME: Es el nombre de la base de conocimiento deseada.
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/knowledgeBases
Cuerpo JSON de la solicitud:
{ "displayName": "KNOWLEDGE_BASE_DISPLAY_NAME" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_ID/knowledgeBases/NDA4MTM4NzE2MjMwNDUxMjAwMA", "displayName": "KNOWLEDGE_BASE_DISPLAY_NAME" }
El segmento de ruta después de knowledgeBases
contiene el ID nuevo de la base de conocimiento.
Python
Para autenticarte en Agent Assist, 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.
Crea un documento de conocimiento
Ahora puedes agregar documentos a la base de conocimiento. Para crear un documento en la base de conocimiento, llama al método create
en el tipo Document
.
Establece KnowledgeType
como ARTICLE_SUGGESTION
. En este ejemplo, se usa un archivo HTML con información del pedido de devolución que se subió a un bucket de Cloud Storage compartido de forma pública. Cuando configures la sugerencia de artículos en tu propio sistema, los documentos deben tener uno de los siguientes formatos. Consulta la documentación sobre los documentos de conocimiento para obtener más información sobre las prácticas recomendadas para los documentos.
Formatos de documentos de conocimiento:
- Un archivo almacenado en un bucket de Cloud Storage. Puedes especificar la ruta cuando llamas a la API.
- Es el contenido de texto de un documento, que puedes enviar en una solicitud a la API.
- Una URL pública
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID del proyecto de GCP.
- KNOWLEDGE_BASE_ID: Es el ID de tu base de conocimiento que se muestra en la solicitud anterior.
- DOCUMENT_DISPLAY_NAME: Es el nombre del documento de conocimiento deseado.
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID/documents
Cuerpo JSON de la solicitud:
{ "displayName": "DOCUMENT_DISPLAY_NAME", "mimeType": "text/html", "knowledgeTypes": "ARTICLE_SUGGESTION", "contentUri": "gs://agent-assist-public-examples/public_article_suggestion_example_returns.html" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_ID/operations/ks-add_document-MzA5NTY2MTc5Mzg2Mzc5NDY4OA" }
La respuesta es una operación de larga duración que puedes sondear para verificar si se completó.
Python
Para autenticarte en Agent Assist, 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.
Crea un perfil de conversación
Un perfil de conversación configura un conjunto de parámetros que controlan las sugerencias que se le hacen a un agente durante una conversación. En los siguientes pasos, se crea un objeto ConversationProfile
con un objeto HumanAgentAssistantConfig
. También puedes realizar estas acciones con la consola de Agent Assist si prefieres no llamar directamente a la API.
Te recomendamos que establezcas un umbral de confianza inicial de 0.44 (0.1 si usas el modelo de referencia heredado). Si es necesario, puedes aumentar el umbral más allá del rango recomendado. Aumentar el umbral genera resultados de mayor precisión y menor cobertura (menos sugerencias). Disminuirlo genera resultados de menor precisión y mayor cobertura (más sugerencias).
Las sugerencias intercaladas están habilitadas de forma predeterminada. De manera opcional, puedes habilitar las notificaciones de Cloud Pub/Sub cuando configures el perfil de conversación.
REST
Para crear un perfil de conversación, llama al métodocreate
en el recurso ConversationProfile
.
noSmallTalk
: Si es true
, las sugerencias no se activarán después de los mensajes de conversación (como "hola", "¿cómo estás?", etcétera). Si es false
, las sugerencias se activarán después de los mensajes de conversación informal.
onlyEndUser
: Si es true
, las sugerencias se activarán solo después de los mensajes del usuario final. Si es false
, las sugerencias se activarán después de los mensajes del usuario final y del agente humano.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID del proyecto de GCP.
- KNOWLEDGE_BASE_ID: Es el ID de la base de conocimiento.
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversationProfiles
Cuerpo JSON de la solicitud:
{ "name": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "displayName": "my-conversation-profile-display-name", "humanAgentAssistantConfig": { "notificationConfig": {}, "humanAgentSuggestionConfig": { "featureConfigs": [ { "enableInlineSuggestion": true, "SuggestionTriggerSettings": { "noSmallTalk": true, "onlyEndUser": true, }, "suggestionFeature": { "type": "ARTICLE_SUGGESTION" }, "queryConfig": { "knowledgeBaseQuerySource": { "knowledgeBases": [ "projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID" ] } } } ] } }, "sttConfig": {}, "languageCode": "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:
{ "name": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "displayName": "my-conversation-profile-display-name", "humanAgentAssistantConfig": { ... } }
El segmento de ruta después de conversationProfiles
contiene el nuevo ID de tu perfil de conversación.
Python
Para autenticarte en Agent Assist, 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.
(Opcional) Establece la configuración de seguridad
Tienes la opción de establecer parámetros de seguridad para abordar problemas, como el ocultamiento y la retención de datos. Para ello, debes crear un recurso SecuritySettings
y, luego, vincularlo a un perfil de conversación con el campo securitySettings
.
La configuración de seguridad que se agrega a un perfil de conversación afecta el comportamiento de los mensajes de texto de Agente Asistido solo. El comportamiento del historial de interacciones de Dialogflow se controla mediante la configuración de seguridad de Dialogflow, que puedes establecer con la consola de Dialogflow CX.
Controla las conversaciones durante el tiempo de ejecución
Crea una conversación
Cuando comienza un diálogo entre un usuario final y un agente humano o virtual, se crea una conversación. Para ver las sugerencias, también debes crear un participante de usuario final y un participante de agente humano, y agregarlos a la conversación. En las siguientes secciones, se explica este proceso.
Primero, debes crear una conversación:
REST
Para crear una conversación, llama al métodocreate
en el recurso Conversation
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Cloud
- LOCATION_ID: El ID de tu ubicación
- CONVERSATION_PROFILE_ID: El ID que recibiste cuando creaste el perfil de conversación
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations
Cuerpo JSON de la solicitud:
{ "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID", }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID", "lifecycleState": "IN_PROGRESS", "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "startTime": "2018-11-05T21:05:45.622Z" }
El segmento de ruta después de conversations
contiene el nuevo ID de tu conversación.
Python
Para autenticarte en Agent Assist, 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.
Crea un participante de usuario final
Para ver las sugerencias, debes agregar a la conversación a los participantes del usuario final y del agente humano. Primero, agrega al participante del usuario final a la conversación:
REST
Para crear un participante de usuario final, llama al método create
en el recurso Participant
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Cloud
- LOCATION_ID: El ID de tu ubicación
- CONVERSATION_ID: El ID de tu conversación
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants
Cuerpo JSON de la solicitud:
{ "role": "END_USER", }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID", "role": "END_USER" }
El segmento de ruta después de participants
contiene el nuevo ID de participante de usuario final.
Python
Para autenticarte en Agent Assist, 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.
Crea un participante de agente humano
Agrega un participante agente humano a la conversación:
REST
Para crear un participante de agente humano, llama al método create
en el recurso Participant
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto de Cloud
- LOCATION_ID: El ID de tu ubicación
- CONVERSATION_ID: El ID de tu conversación
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants
Cuerpo JSON de la solicitud:
{ "role": "HUMAN_AGENT", }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID", "role": "HUMAN_AGENT" }
El segmento de ruta después de participants
contiene el nuevo ID de participante del agente humano.
Python
Para autenticarte en Agent Assist, 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.
Agrega y analiza un mensaje del agente humano
Cada vez que uno de los participantes escribe un mensaje en la conversación, debes enviarlo a la API para que lo procese. Agent Assist basa sus sugerencias en el análisis de los mensajes de los agentes humanos y los usuarios finales. En el siguiente ejemplo, el agente humano comienza la conversación preguntando: "¿Cómo puedo ayudarte?". Aún no se muestran sugerencias en la respuesta.
REST
Para agregar y analizar un mensaje de agente humano en la conversación, llama al método analyzeContent
en el recurso Participant
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID del proyecto de GCP.
- CONVERSATION_ID: El ID de tu conversación
- PARTICIPANT_ID: Es el ID del participante del agente humano.
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
Cuerpo JSON de la solicitud:
{ "textInput": { "text": "How may I help you?", "languageCode": "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:
{ "message": { "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "content": "How may I help you?", "languageCode": "en-US", "participant": "PARTICIPANT_ID", "participantRole": "HUMAN_AGENT", "createTime": "2020-02-13T00:01:30.683Z" }, "humanAgentSuggestionResults": [ { "suggestArticlesResponse": { "latestMessage": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "contextSize": 1 } } ] } } ] }
Python
Para autenticarte en Agent Assist, 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.
Agrega un mensaje del usuario final y obtén sugerencias
En respuesta al agente humano, el usuario final dice: “Quiero devolver mi pedido”. Esta vez, la respuesta de la API contiene un documento sugerido con su puntuación de confianza asociada. Anteriormente en este instructivo, agregamos un documento de conocimiento a la base de conocimiento y se mostró ese documento. Las puntuaciones de confianza van de 0 a 1. Los valores más altos indican una mayor probabilidad de que el documento sea relevante para la conversación. También se muestra un fragmento que contiene los primeros 100 caracteres del documento. El fragmento puede ayudar a un agente humano a determinar rápidamente si el documento es útil. Te recomendamos que proporciones esta información a tu agente humano, quien puede optar por compartir el documento recomendado con el usuario final.
REST
Para agregar y analizar un mensaje del usuario final para la conversación, llama al método analyzeContent
en el recurso Participant
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID del proyecto de GCP.
- CONVERSATION_ID: El ID de tu conversación
- PARTICIPANT_ID: Es el ID de participante del usuario final.
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
Cuerpo JSON de la solicitud:
{ "textInput": { "text": "I want to return my order.", "languageCode": "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:
{ "message": { "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "content": "I want to return my order.", "languageCode": "en-US", "participant": "PARTICIPANT_ID", "participantRole": "END_USER", "createTime": "2020-02-13T00:07:35.925Z" }, "humanAgentSuggestionResults": [ { "suggestArticlesResponse": { "articleAnswers": [ { "title": "Return an order", "uri": "gs://agent-assist-public-examples/public_article_suggestion_example_returns.html", "snippets": [ "\u003cb\u003eReturn\u003c/b\u003e an \u003cb\u003eorder\u003c/b\u003e. Follow the steps below for Made-up Store \u003cb\u003ereturns\u003c/b\u003e. At this time, \nwe don't offer exchanges. In most cases, you can drop off \u003cb\u003ereturns\u003c/b\u003e at any Made-up\n ..." ], "metadata": { "title": "Return an order", "snippet": "\n \n\n\u003ch1\u003eReturn an order\u003c/h1\u003e \nFollow the steps below for Made-up Store returns. At this time, we do...", "document_display_name": "my-kdoc" }, "answerRecord": "projects/PROJECT_ID/answerRecords/ANSWER_RECORD_ID" } ], "latestMessage": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "contextSize": 2 } } ] }
Python
Para autenticarte en Agent Assist, 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.
Completa la conversación
Cuando finalice la conversación, usa la API para completarla.
REST
Para completar la conversación, llama al métodocomplete
en el recurso conversations
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: Es el ID del proyecto de GCP.
- CONVERSATION_ID: El ID que recibiste cuando creaste la conversación
Método HTTP y URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID:complete
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID", "lifecycleState": "COMPLETED", "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "startTime": "2018-11-05T21:05:45.622Z", "endTime": "2018-11-06T03:50:26.930Z" }
Python
Para autenticarte en Agent Assist, 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.
Opciones de solicitud a la API
En las secciones anteriores, se muestra cómo crear un ConversationProfile
simple para recibir sugerencias. En las siguientes secciones, se describen algunas funciones opcionales que puedes implementar durante una conversación.
Notificaciones de sugerencias de Pub/Sub
En las secciones anteriores, se creó ConversationProfile solo con un asistente de agente humano. Durante la conversación, debías llamar a la API para recibir sugerencias después de que se agregaba cada mensaje a la conversación. Si prefieres recibir eventos de notificación para sugerencias, puedes configurar el campo notificationConfig
cuando crees el perfil de conversación. Esta opción usa Cloud Pub/Sub para enviar notificaciones de sugerencias a tu aplicación a medida que avanza la conversación y hay sugerencias nuevas disponibles.