El modelo personalizado Resumen de Agent Assist te permite proporcionar resúmenes de conversaciones a tus agentes después de que se complete cada conversación. Para ello, se utiliza un modelo entrenado exclusivamente con datos específicos de los clientes. Esto es diferente de la personalización mediante un modelo de lenguaje extenso, como se explica en el artículo sobre la resumir con secciones personalizadas. Los resúmenes ayudan a los agentes a crear notas de las conversaciones y a entender el historial de comunicación de los usuarios finales. Por ejemplo, un resumen de una conversación podría tener un aspecto similar al siguiente:
También puedes importar un modelo de resumen de Asistente para agentes personalizado para usarlo con las conversaciones de CCAI Insights.
Antes de empezar
- Asegúrate de que los datos tengan el formato necesario. También puedes usar un conjunto de datos de muestra o probar la función con el modelo de resumen de demostración, sin necesidad de usar ningún conjunto de datos.
Entrenar y desplegar un modelo de resumen con la API
Crear un conjunto de datos de conversación e importar transcripciones
Llama al método create
en el recurso ConversationDataset
para crear un conjunto de datos de conversaciones. Incluye la ruta al segmento de Cloud Storage que contiene los datos de la transcripción para importarlos al nuevo conjunto de datos de conversación.
Solicitud de ejemplo:
{ "displayName": "CONVERSATION_DATASET_NAME", "inputConfig": { "gcsSource": { "uris": ["gs://PATH_NAME/*"] } } }
La respuesta contiene un ID de conjunto de datos de conversación. Respuesta de ejemplo:
{ "done": true, "response": { "@type": "type.googleapis.com/google.cloud.dialogflow.v2beta1.ConversationDataset", "name": "projects/PROJECT_ID/locations/global/conversationDatasets/CONVERSATION_DATASET_ID", "displayName": "CONVERSATION_DATASET_NAME", "createTime": "2022-06-16T23:13:22.627380457Z" } }
Crear un modelo de conversación
Llama al método create
en el recurso ConversationModel
para crear un modelo de conversación de resumen. Cada proyecto tendrá hasta 120 horas de nodo para la preparación cada mes y podrá ejecutar una tarea de preparación simultáneamente.
Campos obligatorios:
datasets
: Proporciona un único conjunto de datos que contenga los datos de transcripción que has usado para entrenar el modelo.summarizationModelMetadata
: se asigna a un objeto vacío o se rellena el campo para anular el valor predeterminado.
Solicitud de ejemplo:
{ "displayName": "CONVERSATION_DATASET_NAME", "datasets": [{ "dataset": "projects/PROJECT_ID/locations/global/conversationDatasets/CONVERSATION_DATASET_ID" }], "summarizationModelMetadata": { "trainingModelType": "SUMMARIZATION_MODEL" }, "languageCode": "en-US" }
La respuesta es una operación de larga duración, que puedes sondear con GetOperation API
para comprobar si se ha completado. La preparación puede tardar varias horas. La respuesta devuelve el estado y el ID del modelo.
Respuesta de ejemplo:
{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.dialogflow.v2beta1.CreateConversationModelOperationMetadata", "conversationModel": "projects/PROJECT_ID/locations/global/conversationModels/MODEL_ID", "state": "TRAINING", "createTime": "2022-06-16T23:27:50Z" } }
Evaluar un modelo de conversación
Una vez completado el entrenamiento del modelo, llama a la API
ListConversationModelEvaluations
para comprobar la calidad del modelo.
En ListConversationModelEvaluationsRequest
, especifica el nombre del modelo que quieres comprobar.
{ "parent": "projects/cloud-contact-center-quality/locations/global/conversationModels/d3f2ca9f3e2c571a" }
La ListConversationModelEvaluationsResponse
incluye una puntuación de Rouge-L para evaluar la generación automática de resúmenes.
{ "conversationModelEvaluations": [{ "name": "projects/cloud-contact-center-quality/locations/global/conversationModels/d3f2ca9f3e2c571a/evaluations/c10ac25411a23fe1", "displayName": "Training Auto Generated Evaluation", "createTime": "2022-06-04T03:38:35.151096Z", "evaluationConfig": { }, "summarizationMetrics": { "rougel": 0.4474459 } }] }
Desplegar un modelo de conversación
Una vez que se haya completado el entrenamiento del modelo, podrás desplegarlo con la API DeployConversationModel
.
En DeployConversationModelRequest
, especifica la name
del modelo que quieres
desplegar. La respuesta es una operación de larga duración, que puedes sondear con GetOperation API
para comprobar si se ha completado.
Configurar 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
.
Crear un perfil de conversación
Para crear un perfil de conversación, llama al método create
del recurso ConversationProfile
.
Indica el nombre del nuevo perfil de conversación, el ID de tu proyecto Google Cloud
y el ID del modelo. En CreateConversationProfileRequest
, especifica el modelo de conversación que quieres usar y la función de sugerencias que quieres CONVERSATION_SUMMARIZATION
.
A continuación, se muestra un ejemplo de JSON:
{ "displayName": "CONVERSATION_PROFILE_NAME", "humanAgentAssistantConfig": { "humanAgentSuggestionConfig": { "featureConfigs": [{ "suggestionFeature": { "type": "CONVERSATION_SUMMARIZATION" }, "conversationModelConfig": { "model": "projects/PROJECT_ID/locations/global/conversationModels/MODEL_ID", } }] } }, "languageCode": "en-US" }
La respuesta es un objeto ConversationProfile
que contiene el perfil de la conversación name
:
{ "name": "projects/PROJECT_ID/locations/global/conversationProfiles/CONVERSATION_PROFILE_ID", "displayName": "CONVERSATION_PROFILE_NAME", "automatedAgentConfig": { }, "humanAgentAssistantConfig": { "notificationConfig": { }, "humanAgentSuggestionConfig": { "featureConfigs": [{ "suggestionFeature": { "type": "CONVERSATION_SUMMARIZATION" }, "conversationModelConfig": { } }] }, "messageAnalysisConfig": { } }, "languageCode": "en-US", "createTime": "2022-06-06T21:06:46.841816Z", "updateTime": "2022-06-06T21:06:46.841816Z", "projectNumber": "344549229138" }
Gestionar conversaciones en tiempo de ejecución
Cuando se inicia un diálogo entre un usuario final y un agente humano, se crea una conversación. En las siguientes secciones se explica este proceso.
Crear una conversación
Para crear una conversación, llama al método create
en el recurso Conversation
.
La respuesta contiene el nuevo ID de conversación.
Crear un participante usuario final
Para crear un participante usuario final, llama al método create
del recurso Participant
. Proporcione su ID de conversación y END_USER
en el campo role
.
El segmento de ruta después de participants
contiene tu nuevo ID de participante de usuario final.
Crear un participante de agente humano
Para crear un participante agente humano, llama al método create
en el recurso Participant
. Proporcione su ID de conversación y HUMAN_AGENT
en el campo role
.
El segmento de ruta después de participants
contiene el nuevo ID de participante del agente humano.
Analizar mensaje
Opción 1: Durante una conversación
Para añadir y analizar un mensaje de un agente humano en la conversación, llama al método
analyzeContent
en el recurso
Participant
. Proporciona el ID de la conversación y el ID del participante del agente humano.
Para añadir y analizar un mensaje de usuario final de la conversación, llama al método analyzeContent
del recurso Participant
. Proporciona el ID de conversación y el ID de participante del usuario final.
No hagas llamadas duplicadas al método analyzeContent
si se ha llamado a otras funciones de Dialogflow.
Opción 2: Después de una conversación
Puedes usar esta opción si no utilizas el método analyzeContent
durante la conversación. En su lugar, puedes usar el método
batchCreate
en el recurso messages
para ingerir mensajes históricos de la conversación.
Obtener una sugerencia
Puedes recibir una sugerencia en cualquier momento para el último mensaje de cualquiera de los participantes.
Opción 1: suggestConversationSummary
Llama al método suggestConversationSummary
en el recurso conversations.suggestions
. Proporciona el ID de la conversación y el ID del último mensaje de cualquiera de los participantes.
Opción 2. generateStatelessSummary
Llama al método generateStatelessSummary
. Proporciona el Messages
de la conversación y el ID del mensaje más reciente de cualquiera de los participantes.
A continuación, se muestra un ejemplo de solicitud JSON para generateStatelessSummary
:
{ "statelessConversation": { "messages": [{ "content": "Hello, how can I help you today?", "languageCode": "en-US", "participantRole": "HUMAN_AGENT" }, { "content": "I would like to cancel my plan.", "languageCode": "en-US", "participantRole": "END_USER" }, { "content": "Okay, I have canceled your plan. Is there anything else that I can do to help you?", "languageCode": "en-US", "participantRole": "HUMAN_AGENT" }, { "content": "No, thank you.", "languageCode": "en-US", "participantRole": "END_USER" }, { "content": "Okay, have a great day!", "languageCode": "en-US", "participantRole": "HUMAN_AGENT" }], "parent": "projects/PROJECT_ID/locations/global" }, "conversationProfile": { "humanAgentAssistantConfig": { "humanAgentSuggestionConfig": { "featureConfigs": [{ "suggestionFeature": { "type": "CONVERSATION_SUMMARIZATION" }, "conversationModelConfig": { "model": "projects/PROJECT_ID/locations/global/conversationModels/MODEL_ID" } }] } }, "languageCode": "en-US" } }
La respuesta contiene Summarization
sugerencias.
Completar la conversación
Para completar la conversación, llama al método complete
del recurso conversations
. Proporciona el ID de conversación.