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