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