Modelo personalizado de resumen V1 para el chat

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

También puedes importar un modelo personalizado de Resúmenes 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 e implementa un modelo de resumen con la API

Crea un conjunto de datos de conversación e importa transcripciones

Llama al método create en el recurso ConversationDataset para crear un conjunto de datos de conversaciones. Incluye la ruta de acceso al bucket 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 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 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: Se establece en un objeto vacío o se completa 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"
  }
}

Evalúa 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 deseas verificar.

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

El 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, puedes 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, tu ID del proyecto proyecto Google Cloudy el ID del modelo. En CreateConversationProfileRequest, especifica el modelo de conversación que se usará y la función de sugerencias que se 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 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"
}

Cómo controlar conversaciones en el tiempo de ejecución

Cuando comienza un diálogo entre un usuario final y un agente humano, creas una conversación. En las siguientes secciones, se te guiará a través de este proceso.

Cómo crear una conversación

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

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

Crea un participante usuario final

Para crear un participante 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 del participante del usuario final.

Crea un participante de agente humano

Para crear un participante 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 ID del nuevo participante agente humano.

Analizar 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 conversación y el ID del participante usuario final.

No realices llamadas duplicadas al método analyzeContent si ya se llamó para 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.

Obtén una sugerencia

Puedes obtener una sugerencia en cualquier momento para 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 conversación y el ID del 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 del mensaje más reciente de cualquiera de los participantes.

Este es un ejemplo de una 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 sugerencias de Summarization.

Completa la conversación

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