Modelo personalizado de Summarization V1 para el chat

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

  1. 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.