Modelo personalizado de resumo V1 para chat

O modelo personalizado de resumo do Agent Assist para funcionalidades permite-lhe fornecer resumos de conversas aos seus agentes após a conclusão de cada conversa, tirando partido de um modelo preparado exclusivamente com dados específicos do cliente. Isto difere da personalização através de um modelo de linguagem (conteúdo extenso), conforme detalhado no artigo Resumo com secções personalizadas. Os resumos ajudam os agentes a criar as respetivas notas de conversas e a compreender o histórico de comunicação do utilizador final. Por exemplo, um resultado de resumo sobre uma conversa pode ter um aspeto semelhante ao seguinte:

Também pode importar um modelo de resumo do Agent Assist personalizado para usar com conversas do CCAI Insights.

Antes de começar

  1. Certifique-se de que os seus dados estão no formato necessário. Também tem a opção de usar um conjunto de dados de exemplo ou testar a funcionalidade com o modelo de resumo de demonstração. Não é necessário um conjunto de dados.

Prepare e implemente um modelo de resumo através da API

Crie um conjunto de dados de conversas e importe transcrições

Chame o método create no recurso ConversationDataset para criar um conjunto de dados de conversas. Inclua o caminho para o contentor do Cloud Storage que contém os dados de transcrição para os importar para o novo conjunto de dados de conversas.

Exemplo de pedido:

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

A resposta contém um ID do conjunto de dados de conversas. 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"
  }
}

Crie um modelo de conversa

Chame o método create no recurso ConversationModel para criar um modelo de conversa de resumo. Cada projeto tem até 120 horas de nós para a preparação todos os meses e pode executar uma tarefa de preparação em simultâneo.

Campos obrigatórios:

  • datasets: faculte um único conjunto de dados que contenha os dados de transcrição que usou para preparar o modelo.
  • summarizationModelMetadata: defina como um objeto vazio ou preencha o campo para substituir o valor predefinido.

Exemplo de pedido:

{
  "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 sondar através de GetOperation API para verificar a conclusão. A preparação pode demorar várias horas. A resposta devolve o estado 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"
  }
}

Avalie um modelo de conversa

Após a conclusão da preparação do modelo, chame a API ListConversationModelEvaluations para verificar a qualidade do modelo.

Em ListConversationModelEvaluationsRequest, especifique o nome do modelo a verificar.

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

O ListConversationModelEvaluationsResponse inclui uma pontuação Rouge-L para avaliar a sumarização 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
    }
  }]
}

Implemente um modelo de conversa

Quando a preparação do modelo estiver concluída, pode implementá-lo através da API DeployConversationModel.

No DeployConversationModelRequest, especifique o name do modelo a implementar. A resposta é uma operação de longa duração, que pode sondar através de GetOperation API para verificar a conclusão.

Configure 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. Os passos seguintes criam um ConversationProfile com um objeto HumanAgentAssistantConfig.

Crie um perfil de conversa

Para criar um perfil de conversa, chame o método create no recurso ConversationProfile. Indique um nome para o novo perfil de conversa, o Google Cloud ID do projeto e o ID do modelo. No elemento CreateConversationProfileRequest, especifique o modelo de conversa a usar e a funcionalidade de sugestão a ser CONVERSATION_SUMMARIZATION.

Segue-se 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 em tempo de execução

Quando um diálogo começa entre um utilizador final e um agente humano, cria uma conversa. As secções seguintes explicam este processo.

Crie uma conversa

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

A resposta contém o seu novo ID da conversa.

Crie um participante utilizador final

Para criar um participante utilizador final, chame o método create no recurso Participant. Indique 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 utilizador final.

Crie um participante agente humano

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

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

Analise a mensagem

Opção 1: durante uma conversa

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

Para adicionar e analisar uma mensagem do utilizador final para a conversa, chame o método analyzeContent no recurso Participant. Forneça o ID da conversa e o ID do participante do utilizador final.

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

Opção 2: após uma conversa

Pode usar esta opção se não usar o método analyzeContent durante a conversa. Em alternativa, pode usar o método batchCreate no recurso messages para carregar mensagens históricas da conversa.

Receba uma sugestão

Pode receber uma sugestão em qualquer altura para a mensagem mais recente de qualquer um dos participantes.

Opção 1. suggestConversationSummary

Chame o método suggestConversationSummary no recurso conversations.suggestions. Indique 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. Indique o Messages da conversa e o ID da mensagem mais recente de qualquer um dos participantes.

Segue-se um exemplo de um pedido 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 Summarization sugestões.

Conclua a conversa

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