Modelo personalizado de resumo V1 para chat

O modelo personalizado de resumo do Agent Assist permite que você forneça resumos de conversas aos seus agentes após cada conversa ser concluída, usando um modelo treinado exclusivamente com dados específicos do cliente. Isso é diferente da personalização por 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, um resumo de uma conversa pode ser semelhante a este:

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

Antes de começar

  1. Verifique se os dados estão no formato exigido. Você também pode usar um conjunto de dados de amostra ou testar o recurso com o modelo de resumo de demonstração. Não é necessário um conjunto de dados.

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 conversas. Inclua o caminho para o bucket do Cloud Storage que contém os dados de transcrição para importar para o 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 do 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 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 usados 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 se foi concluída. 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 que você quer verificar.

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

O ListConversationModelEvaluationsResponse inclui uma pontuação Rouge-L para avaliar a geração automática de resumo.

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

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

Em 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 se foi concluída.

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. Forneça um nome para o novo perfil de conversa, o ID do projeto Google Cloude o ID do modelo. Na CreateConversationProfileRequest, especifique o modelo de conversa a ser usado e o recurso de sugestão a ser CONVERSATION_SUMMARIZATION.

Confira 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 ambiente de 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 ID da nova conversa.

Criar um participante do usuário final

Para criar um participante do usuário final, chame o método create no recurso Participant. Forneça 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 humano

Para criar um participante humano, chame o método create no recurso Participant. Forneça 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 humano.

Analisar mensagem

Opção 1: durante uma conversa

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

Para adicionar e analisar uma mensagem do usuário final na conversa, chame o método analyzeContent no recurso Participant. Forneça 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 já tiver sido chamado para outros recursos do Dialogflow.

Opção 2: depois de 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 ingerir 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 um dos participantes.

Opção 1: suggestConversationSummary

Chame o método suggestConversationSummary no recurso conversations.suggestions. Forneça o ID da conversa e o ID da mensagem mais recente de qualquer um dos participantes.

Opção 2: generateStatelessSummary

Chame o método generateStatelessSummary. Forneça o Messages da conversa e o ID da mensagem mais recente de qualquer um dos participantes.

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.