La función de sugerencia de artículos de Agent Assist monitoriza la conversación entre un agente humano y un usuario final, y proporciona al agente humano sugerencias de documentos relevantes. Un agente humano puede examinar estas sugerencias mientras continúa la conversación y decidir qué documentos leer o compartir con el usuario final. Puedes usar Sugerencia de artículo para ayudar a un agente humano a entender y resolver los problemas de los usuarios finales mientras el agente y el usuario final están en una conversación.
Asistencia de agentes proporciona modelos de Sugerencia de artículo básicos que puedes usar para sugerir artículos a tus agentes. También puede entrenar un modelo personalizado con los datos de conversación que haya subido para mejorar el rendimiento. Si quieres entrenar un modelo de sugerencias personalizado para usarlo con Sugerencias de artículos, ponte en contacto con tu representante de Google.
En este documento se explica cómo usar la API para implementar la función Sugerencia de artículos y obtener sugerencias de esta función durante el tiempo de ejecución. Tienes la opción de usar la consola de Asistente 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 tutoriales para obtener información sobre cómo probar el rendimiento de las funciones con la consola de Agent Assist.
Antes de empezar
Antes de empezar a leer esta guía, haz lo siguiente:
- Habilita la API Dialogflow en tu proyecto deGoogle Cloud .
Configurar un perfil de conversación
Para recibir sugerencias de Agent Assist, debes crear una base de conocimientos que contenga los documentos que hayas subido y configurar un perfil de conversación. También puedes realizar estas acciones con la consola de Asistente si prefieres no llamar a la API directamente.
Crear una base de conocimientos
Antes de empezar a subir documentos, debes crear una base de conocimientos en la que colocarlos. Para crear una base de conocimientos, llama al método create
del tipo KnowledgeBase
.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de GCP
- KNOWLEDGE_BASE_DISPLAY_NAME: nombre de la base de conocimientos que quieras
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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_ID/knowledgeBases/NDA4MTM4NzE2MjMwNDUxMjAwMA", "displayName": "KNOWLEDGE_BASE_DISPLAY_NAME" }
El segmento de ruta después de knowledgeBases
contiene el nuevo ID de la base de conocimientos.
Python
Para autenticarte en Agent Assist, 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.
Crear un documento de conocimientos
Ahora puedes añadir documentos a la base de conocimientos. Para crear un documento en la base de conocimientos, llama al método create
en el tipo Document
.
Asigna el valor ARTICLE_SUGGESTION
a KnowledgeType
. En este ejemplo se usa un archivo HTML con información sobre el pedido de devolución
que se ha subido a un segmento de Cloud Storage compartido públicamente. Cuando configures la sugerencia de artículos en tu sistema, los documentos deben tener uno de los siguientes formatos. Consulta la documentación sobre documentos de conocimientos para obtener más información sobre las prácticas recomendadas para los documentos.
Formatos de documentos de conocimientos:
- Un archivo almacenado en un segmento de Cloud Storage. Puedes especificar la ruta cuando llames a la API.
- El contenido de texto de un documento, que puedes enviar en una solicitud de API.
- Una URL pública.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de GCP
- KNOWLEDGE_BASE_ID: el ID de la base de conocimientos devuelto en la solicitud anterior.
- DOCUMENT_DISPLAY_NAME: nombre del documento de conocimientos 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_ID/operations/ks-add_document-MzA5NTY2MTc5Mzg2Mzc5NDY4OA" }
La respuesta es una operación de larga duración, que puedes sondear para comprobar si se ha completado.
Python
Para autenticarte en Agent Assist, 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.
Crear 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. Con los pasos que se indican a continuación, se crea un
ConversationProfile
con un objeto
HumanAgentAssistantConfig
. También puedes realizar estas acciones con la consola de Asistente para agentes si prefieres no llamar a la API directamente.
Te recomendamos que definas un umbral de confianza inicial de 0,44 (0,1 si usas el modelo de referencia antiguo). Si es necesario, puedes aumentar el umbral por encima del intervalo recomendado. Si aumentas el umbral, la precisión será mayor y la cobertura, menor (habrá menos sugerencias). Si lo reduces, la precisión será menor y la cobertura, mayor (habrá más sugerencias).
Las sugerencias insertadas están habilitadas de forma predeterminada. También puedes habilitar las notificaciones de Cloud Pub/Sub al configurar el perfil de conversación.
REST
Para crear un perfil de conversación, llama al métodocreate
del recurso ConversationProfile
.
noSmallTalk
: Si true
, las sugerencias no se activarán después de mensajes de charla informal (como "hola", "¿cómo estás?", etc.). Si false
, las sugerencias se activarán después de los mensajes de Small Talk.
onlyEndUser
: Si se le asigna el valor true
, las sugerencias se activarán solo después de los mensajes del usuario final. Si false
, las sugerencias se activarán después de los mensajes del usuario final y del agente humano.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de GCP
- KNOWLEDGE_BASE_ID: el ID de tu base de conocimientos
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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "displayName": "my-conversation-profile-display-name", "humanAgentAssistantConfig": { ... } }
El segmento de ruta después de conversationProfiles
contiene tu nuevo ID de perfil de conversación.
Python
Para autenticarte en Agent Assist, 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.
(Opcional) Configurar los ajustes de seguridad
Puede definir parámetros de seguridad para abordar problemas como la ocultación y la conservación de datos. Para ello, debes crear un recurso SecuritySettings
y, a continuación, vincularlo a un perfil de conversación mediante el campo securitySettings
.
Los ajustes de seguridad que se añaden a un perfil de conversación afectan al comportamiento de los mensajes de texto de Asistente del agente únicamente. El comportamiento del historial de interacciones de Dialogflow se controla mediante los ajustes de seguridad de Dialogflow, que puedes configurar con la consola de Dialogflow CX.
Gestionar conversaciones en tiempo de ejecución
Crear una conversación
Cuando se inicia un diálogo entre un usuario final y un agente humano o virtual, se crea una conversación. Para ver sugerencias, también debes crear un participante de usuario final y un participante de agente humano, y añadirlos 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 los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de Cloud
- LOCATION_ID: tu ID de ubicación
- CONVERSATION_PROFILE_ID: el ID que has recibido al crear 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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 tu nuevo ID de conversación.
Python
Para autenticarte en Agent Assist, 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.
Crear un participante usuario final
Para ver sugerencias, debes añadir a la conversación tanto al participante usuario final como al agente humano. Primero, añade al participante usuario final a la conversación:
REST
Para crear un participante usuario final, llama al método create
en el recurso Participant
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de Cloud
- LOCATION_ID: tu ID de ubicación
- CONVERSATION_ID: tu ID de 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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 tu nuevo ID de participante de usuario final.
Python
Para autenticarte en Agent Assist, 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.
Crear un participante de agente humano
Añade un agente humano a la conversación:
REST
Para crear un participante agente humano, llama al método create
en el recurso Participant
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de Cloud
- LOCATION_ID: tu ID de ubicación
- CONVERSATION_ID: tu ID de 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Añadir y analizar un mensaje del agente humano
Cada vez que uno de los participantes escriba un mensaje en la conversación, deberá enviar ese mensaje 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 inicia la conversación preguntando "¿En qué puedo ayudarte?". Aún no se ha devuelto ninguna sugerencia en la respuesta.
REST
Para añadir y analizar un mensaje de un agente humano en la conversación, llama al método analyzeContent
en el recurso Participant
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de GCP
- CONVERSATION_ID: tu ID de conversación
- PARTICIPANT_ID: tu ID de participante 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Añadir un mensaje del usuario final y obtener 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. En la primera parte de este tutorial, hemos añadido un documento de conocimientos a la base de conocimientos y se ha devuelto ese documento. Las puntuaciones de confianza van del 0 al 1. Los valores más altos indican una mayor probabilidad de que el documento sea relevante para la conversación. También se devuelve 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, que puede decidir compartir el documento recomendado con el usuario final.
REST
Para añadir y analizar un mensaje de usuario final de la conversación, llama al método analyzeContent
del recurso Participant
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de GCP
- CONVERSATION_ID: tu ID de conversación
- PARTICIPANT_ID: tu ID de participante de 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Completar la conversación
Cuando finalice la conversación, usa la API para completarla.
REST
Para completar la conversación, llama al métodocomplete
del recurso conversations
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: tu ID de proyecto de GCP
- CONVERSATION_ID: el ID que recibiste al crear 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Opciones de solicitud a la API
En las secciones anteriores se muestra cómo crear un ConversationProfile
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 ha creado el
ConversationProfile
solo con un asistente de agente humano. Durante la conversación, tenías que llamar a la API para recibir sugerencias después de añadir cada mensaje a la conversación. Si prefieres recibir eventos de notificación de sugerencias, puedes definir el campo notificationConfig
al crear 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 nuevas sugerencias disponibles.