Modelo personalizado de resumo V1 para chat

O modelo personalizado do recurso Resumo do Assistente do agente permite que você forneça resumos de conversas aos seus agentes após o término de cada conversa, usando um modelo treinado exclusivamente com dados específicos do cliente. Isso é diferente da personalização usando um modelo de linguagem grande, conforme detalhado em resumo com seções personalizadas. Os resumos ajudam os agentes a criar anotações de conversa e entender o histórico de comunicação do usuário final. Por exemplo, a saída resumida de uma conversa pode ser semelhante a esta:

Também é possível importar um modelo de resumo personalizado do Agent Assist para usar com as conversas do CCAI Insights.

Antes de começar

  1. Verifique se os dados estão no formato necessário. Você também tem a opção de usar um conjunto de dados de amostra ou testar o recurso usando o modelo de resumo de demonstração, sem conjunto de dados necessário.

Treinar e implantar um modelo de resumo usando a API

Criar um conjunto de dados de conversa e importar transcrições

Chame o método create no recurso ConversationDataset para criar um conjunto de dados de conversa. Inclua o caminho para o bucket do Cloud Storage que contém seus dados de transcrição para importá-los no novo conjunto de dados de conversa.

Exemplo de solicitação:

{
  "displayName": "CONVERSATION_DATASET_NAME",
  "inputConfig": {
    "gcsSource": {
      "uris": ["gs://PATH_NAME/*"]
    }
  }
}

A resposta contém um ID de conjunto de dados de conversa. Exemplo de resposta:

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

Criar um modelo de conversa

Chame o método create no recurso ConversationModel para criar um modelo de conversa de resumo. Cada projeto terá até 120 horas de uso do nó para treinamento por mês e poderá executar um job de treinamento simultaneamente.

Campos obrigatórios:

  • datasets: forneça um único conjunto de dados que contenha os dados de transcrição que você usou para treinar o modelo.
  • summarizationModelMetadata: defina como um objeto vazio ou preencha o campo para substituir o padrão.

Exemplo de solicitação:

{
  "displayName": "CONVERSATION_DATASET_NAME",
  "datasets": [{
    "dataset": "projects/PROJECT_ID/locations/global/conversationDatasets/CONVERSATION_DATASET_ID"
  }],
  "summarizationModelMetadata": {
    "trainingModelType": "SUMMARIZATION_MODEL"
  },
  "languageCode": "en-US"
}

A resposta é uma operação de longa duração, que pode ser pesquisada usando o GetOperation API para verificar a conclusão. O treinamento pode levar várias horas. A resposta retorna o status e o ID do modelo.

Exemplo de resposta:

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

Avaliar um modelo de conversa

Depois que o treinamento de modelo for concluído, chame a API ListConversationModelEvaluations para verificar a qualidade do modelo.

Em ListConversationModelEvaluationsRequest, especifique o nome do modelo a ser verificado.

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

O ListConversationModelEvaluationsResponse inclui uma pontuação Rouge-L para avaliar a síntese automática.

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

Implantar um modelo de conversa

Quando o treinamento de modelo for concluído, você poderá implantá-lo usando a API DeployConversationModel.

No DeployConversationModelRequest, especifique o name do modelo a ser implantado. A resposta é uma operação de longa duração, que pode ser pesquisada usando o GetOperation API para verificar a conclusão.

Configurar um perfil de conversa

Um perfil de conversa configura um conjunto de parâmetros que controlam as sugestões feitas a um agente durante uma conversa. As etapas a seguir criam um ConversationProfile com um objeto HumanAgentAssistantConfig.

Criar um perfil de conversa

Para criar um perfil de conversa, chame o método create no recurso ConversationProfile. Dê um nome ao novo perfil de conversa, o ID do projeto do Google Cloude o ID do modelo. No CreateConversationProfileRequest, especifique o modelo de conversa a ser usado e o recurso de sugestão a ser CONVERSATION_SUMMARIZATION.

Confira a seguir um exemplo 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"
}

A resposta é um objeto ConversationProfile que contém o perfil de conversa 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"
}

Processar conversas no momento da execução

Quando um diálogo começa entre um usuário final e um agente humano, você cria uma conversa. As seções a seguir explicam esse processo.

Criar uma conversa

Para criar uma conversa, chame o método create no recurso Conversation.

A resposta contém o novo ID da conversa.

Criar um participante do usuário final

Para criar um participante de usuário final, chame o método create no recurso Participant. Informe o ID da conversa e END_USER para o campo role.

O segmento de caminho após participants contém o novo ID do participante do usuário final.

Criar um participante de agente humano

Para criar um participante humano, chame o método create no recurso Participant. Informe o ID da conversa e HUMAN_AGENT para o campo role.

O segmento de caminho após participants contém o ID do novo participante do agente humano.

Analisar mensagem

Opção 1: durante uma conversa

Para adicionar e analisar uma mensagem de agente humano para a conversa, chame o método analyzeContent no recurso Participant. Informe o ID da conversa e o ID do participante do agente humano.

Para adicionar e analisar uma mensagem do usuário final para a conversa, chame o método analyzeContent no recurso Participant. Informe o ID da conversa e o ID do participante do usuário final.

Não faça chamadas duplicadas para o método analyzeContent se ele tiver sido chamado para outros recursos do Dialogflow.

Opção 2: após uma conversa

Use essa opção se você não usar o método analyzeContent durante a conversa. Em vez disso, use o método batchCreate no recurso messages para processar mensagens históricas da conversa.

Receber uma sugestão

Você pode receber uma sugestão a qualquer momento para a mensagem mais recente de qualquer participante.

Opção 1. suggestConversationSummary

Chame o método suggestConversationSummary no recurso conversations.suggestions. Informe o ID da conversa e o ID da mensagem mais recente de cada participante.

Opção 2. generateStatelessSummary

Chame o métodogenerateStatelessSummary Informe o Messages da conversa e o ID da última mensagem de cada participante.

Confira um exemplo de solicitação 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"
  }
}

A resposta contém sugestões de Summarization.

Concluir a conversa

Para concluir a conversa, chame o método complete no recurso conversations. Informe o ID da conversa.