Modelo personalizado de resumen V1 para el chat

El modelo personalizado de Agent Assist Summarization para la función te permite proporcionar resúmenes de conversaciones a tus agentes después de que se complete cada conversación, aprovechando un modelo entrenado exclusivamente en datos específicos del cliente. Esto difiere de la personalización a través de un modelo de lenguaje grande, como se detalla en Resumen con secciones personalizadas. Los resúmenes ayudan a los agentes a crear sus notas de conversación y comprender el historial de comunicación del usuario final. Por ejemplo, un resultado de resumen sobre una conversación podría ser similar al siguiente:

También puedes importar un modelo de resumen personalizado de Agent Assist para usarlo con las conversaciones de CCAI Insights.

Antes de comenzar

  1. Asegúrate de que tus datos tengan el formato requerido. También tienes la opción de usar un conjunto de datos de muestra o probar la función con el modelo de resumen de demostración, sin necesidad de un conjunto de datos.

Entrena y, también, implementa un modelo de resumen con la API

Crea un conjunto de datos de conversación y, luego, importa transcripciones

Llama al método create en el recurso ConversationDataset para crear un conjunto de datos de conversación. Incluye la ruta de acceso al bucket de Cloud Storage que contiene los datos de tu transcripción para importarla 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 muestra:

{
  "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"
  }
}

Crea 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 procesamiento de nodo para el entrenamiento cada mes y podrá ejecutar un trabajo de entrenamiento de forma simultánea.

Campos obligatorios:

  • datasets: Proporciona un solo conjunto de datos que contenga los datos de transcripción que usaste para entrenar el modelo.
  • summarizationModelMetadata: Establece un objeto vacío o propaga 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 verificar si se completó. El entrenamiento puede tardar varias horas. La respuesta muestra 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"
  }
}

Cómo evaluar un modelo de conversación

Una vez que se complete el entrenamiento de modelos, llama a la API de ListConversationModelEvaluations para verificar la calidad del modelo.

En ListConversationModelEvaluationsRequest, especifica el nombre del modelo que quieres verificar.

{
  "parent": "projects/cloud-contact-center-quality/locations/global/conversationModels/d3f2ca9f3e2c571a"
}

ListConversationModelEvaluationsResponse incluye una puntuación de Rouge-L para evaluar el resumen automático.

{
  "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
    }
  }]
}

Implementa un modelo de conversación

Una vez que se complete el entrenamiento de modelos, podrás implementarlo con la API de DeployConversationModel.

En DeployConversationModelRequest, especifica el name del modelo que se implementará. La respuesta es una operación de larga duración que puedes sondear con GetOperation API para verificar si se completó.

Cómo 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. En los siguientes pasos, se crea un objeto ConversationProfile con un objeto HumanAgentAssistantConfig.

Crea un perfil de conversación

Para crear un perfil de conversación, llama al método create en el recurso ConversationProfile. Proporciona un nombre para el nuevo perfil de conversación, el ID del proyecto de Google Cloudy el ID del modelo. En CreateConversationProfileRequest, especifica el modelo de conversación que se usará y la función de sugerencia que será CONVERSATION_SUMMARIZATION.

El siguiente es 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 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"
}

Controla las conversaciones durante el tiempo de ejecución

Cuando comienza un diálogo entre un usuario final y un agente humano, se crea una conversación. En las siguientes secciones, se explica este proceso.

Crea una conversación

Para crear una conversación, llama al método create en el recurso Conversation.

La respuesta contiene el ID de tu conversación nueva.

Crea un participante de usuario final

Para crear un participante de usuario final, llama al método create en el recurso Participant. Proporciona tu ID de conversación y END_USER para el campo role.

El segmento de ruta después de participants contiene el nuevo ID de participante del usuario final.

Crea un participante de agente humano

Para crear un participante de agente humano, llama al método create en el recurso Participant. Proporciona tu ID de conversación y HUMAN_AGENT para el campo role.

El segmento de ruta después de participants contiene el nuevo ID de participante del agente humano.

Cómo analizar un mensaje

Opción 1: Durante una conversación

Para agregar y analizar un mensaje de agente humano para 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 agregar y analizar un mensaje del usuario final para la conversación, llama al método analyzeContent en el recurso Participant. Proporciona el ID de la conversación y el ID de participante del usuario final.

No realices llamadas duplicadas al método analyzeContent si ya se llamó a otras funciones de Dialogflow.

Opción 2: Después de una conversación

Puedes usar esta opción si no usas el método analyzeContent durante la conversación. En su lugar, puedes usar el método batchCreate en el recurso messages para transferir los mensajes históricos de la conversación.

Cómo obtener una sugerencia

Puedes obtener una sugerencia en cualquier momento para ver el mensaje más reciente 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 de mensaje más reciente de cualquiera de los participantes.

Opción 2: generateStatelessSummary

Llama al método generateStatelessSummary. Proporciona el Messages de la conversación y el ID de mensaje más reciente de cualquiera de los participantes.

Este es 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.

Completa la conversación

Para completar la conversación, llama al método complete en el recurso conversations. Proporciona el ID de la conversación.