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