A funcionalidade Crie a sua própria assistência de IA gen permite-lhe criar um gerador de texto e integrá-lo com o Agent Assist. O gerador de texto usa modelos de linguagem (conteúdo extenso) (MDIs/CEs) avançados, como o Text Bison e o Gemini, para gerar sugestões. Pode usar estas sugestões para ajudar os participantes em qualquer uma das extremidades de uma conversa de serviço ao cliente, como os agentes humanos e os utilizadores humanos. O gerador pode usar chamadas de MDIs integradas do Agent Assist que podem ser configuradas para a maioria das tarefas de MDIs. Para compreender melhor os geradores no Agent Assist, consulte a documentação da Vertex AI.
Entradas do gerador
O gerador de texto requer as seguintes entradas:
Instrução: um texto para descrever a tarefa que quer que o gerador de texto execute. No Vertex AI, a instrução é denominada comando.
Opções do modelo: a escolha do modelo e as definições necessárias para o desempenho ideal do modelo, como a temperatura, o limite de tokens de saída, o TopK e o TopP. As saídas do gerador são limitadas por estas definições. Pode escolher um modelo e definir as opções do modelo quando cria um gerador clicando em Opções do modelo ou pode usar as definições predefinidas. No Vertex AI, as opções do modelo são denominadas valores de parâmetros.
Evento de acionamento: um dos seguintes eventos que indica quando iniciar o gerador:
END_OF_UTTERANCE
: aciona o gerador após a introdução de cada expressão.MANUAL_CALL
: aciona o gerador apenas quando faz explicitamente chamadas API para o invocar.CUSTOMER_MESSAGE
: aciona o gerador apenas após cada mensagem do cliente.AGENT_MESSAGE
: aciona o gerador apenas após cada mensagem do agente.
Resultados do gerador
Depois de fornecer as entradas ao gerador de texto, o gerador de assistência de IA gen. personalizado fornece sugestões, como links de artigos, respostas adequadas ou informações de back-end sobre ofertas promocionais. Estas sugestões são apresentadas num formato de texto e são relevantes no contexto da conversa com o serviço de apoio ao cliente no momento em que são geradas.
Exemplos de utilização
Esta secção apresenta três exemplos de utilização de como os geradores de assistência de IA gen podem ser implementados. O seu modelo pode gerar respostas de saída diferentes dos exemplos seguintes.
Reescrita profissional
Pode dar instruções ao gerador para reformular as expressões dos agentes humanos de forma profissional, educada e empática antes de responder aos clientes, da seguinte forma.
- Nome do gerador: Reescrever profissionalmente
- Evento de acionamento: mensagem do agente
Instrução:
# TASK DESCRIPTION: Output the agent's response under ## LAST UTTERANCE rewritten in a professional, polite and empathetic way in EXAMPLE 4. - DO NOT miss any information mentioned by the original text. - Only output rewritten response. - You're provided with EXAMPLE 1-3. Follow the format. # EXAMPLE 1 ## CONVERSATION: AGENT: Yo what's up it's Akshay. This is Amazon customer service. What do you want? ## LAST UTTERANCE: Yo what's up it's Akshay. This is Amazon customer service. What do you want? ## OUTPUT: Hi I'm Akshay. Thank you for choosing Amazon customer service. How can I assist you today? # EXAMPLE 2 ## CONVERSATION: CUSTOMER: Hi, I'm having some trouble with my Apple Music subscription. AGENT: Hey, I'm [name]. I can help, I guess. What's your name and account number? CUSTOMER: Sure, my name is [name] and my account number is [number]. AGENT: Alright. Checked that out. You are on Apple Music Individual plan, right? ## LAST UTTERANCE: Alright. Checked that out. You are on Apple Music Individual plan, right? ## OUTPUT: Thank you. I see that you're currently subscribed to the Apple Music Individual plan. Is that correct? # EXAMPLE 3 ## CONVERSATION: AGENT: What is your order number? CUSTOMER: 12345 AGENT: Hang on a sec. Looking. CUSTOMER: I'll wait. AGENT: Alright, it appears your order is not registered. Did you even submit the order? CUSTOMER: Let me double check. Shoot, someone canceled it. Must be the kids. AGENT: Yeah, watch your kids will you? CUSTOMER: I'm so sorry. AGENT: All good. Have a good one. ## LAST UTTERANCE: All good. Have a good one. ## OUTPUT: No problem. I'm glad I can help. Please have a good day! # EXAMPLE 4 ## CONVERSATION: ${parameter:transcript} ## LAST UTTERANCE: ${parameter:transcript_last_utterance} ## OUTPUT:
Retenção de clientes
Também pode dar instruções ao gerador para sugerir respostas de agentes para a retenção de clientes, como oferecer descontos em produtos, fazer vendas adicionais ou vendas cruzadas de produtos e resolver problemas, como no exemplo seguinte. O gerador acede às informações que fornece sobre descontos e ofertas como referências de contexto com a API IngestContextReferences
.
- Nome do gerador: rotatividade e retenção de clientes
- Evento de acionamento: mensagem do cliente
- Referências de contexto: ofertas
- Um: 11% de desconto
- Nest: 5% de desconto
- Desconto para novos clientes: 10%
Instrução:
# TASK DESCRIPTION: You are an Agent who is helping a customer resolve an issue with complete understanding of the same. - Make sure you wait to understand the concern or query before making any suggestions. - If the customer informs about the issue, you need to ask the exact reason. If the reason is valid, you can give appropriate credit from the OFFERS section. - If the customer is about to cancel an order or subscription, make sure you offer something from the OFFERS section and try to retain the customer. - If a customer is inquiring about a new product, offer some combo for upselling another product. Below are two examples for detecting churn and generating suggestions for mitigation. The output should be a single message suggested to the agent according to the context of the conversation. # EXAMPLE 1 Customer: Hello Agent: Welcome to Google. How may I help you? Customer: I want to cancel order. Agent: Sure Let me have an order ID. Customer: Its 123321 Agent: I could see that you placed an order for Google Nest. May I know the reason for cancellation? Customer: It's available at cheaper rate now. Agent: Ohh.! I see. Let me check the current price and adjust the order price. Is it okay ? Customer: Sure..! I can purchase the product as long as I can get it at the discounted price. I'd definitely go with it Agent: Google Nest costs $200 at present. I can see that you paid $230. Customer: Yeah. Can you request to refund $30. I can buy it at $200. Agent : Sure. I have updated. You will get $30 refund once your order is delivered. Customer: Thanks. Agent : Welcome # EXAMPLE 2 Customer: Hello Agent: Welcome to Google. How may I help you? Customer: I am having Google One Subscription. I think I may need some more space in future. Agent: Okay. May I have your customer Id: Customer: Its 123321 Agent: I could see that you have 100GB Plan at present. How much are you expecting to need in future? Customer: I think I may need 100GB or more. Agent: I could check that you are a loyal customer who had subscriptions since last 6 months. I can provide you 10% discount. Customer: Sure..! That would be great. Agent: 200GB Subscription costs $180 per annum which I can offer you at $162. Customer: That's cool. Thank you. Agent: Is there anything else I can help you with? Customer: No thanks. ## CONTEXT ${parameter:transcript} ## OFFERS ${parameter:offers}
Crie um gerador
Os exemplos seguintes mostram como criar um gerador de texto de assistência de IA gen.
Consola
Para criar um gerador através da consola do Assistente do agente, faça o seguinte:
Na consola, aceda à página Build-your-own-assist.
Clique em Criar.
Introduza o nome do gerador.
Selecione o evento do acionador na lista.
Introduza a instrução para definir a tarefa.
Clique em Opções do modelo e selecione um modelo da lista.
Defina os parâmetros ou use as predefinições.
Clique em Guardar e, de seguida, clique novamente em Guardar para guardar o gerador.
REST
Para criar um gerador através da API, faça o seguinte:
- Chame o método
CreateGenerator
do recurso Generator. - Introduza o nome do gerador no campo
description
. - Introduza o evento do acionador.
- Introduza a instrução para definir a tarefa em FreeFormContext.text.
- Introduza um nome de modelo no campo
published_model
ou deixe-o vazio para usar o modelo predefinido. - Especifique os parâmetros do modelo no campo
inference_parameter
ou deixe-os vazios para usar os valores predefinidos.
Parâmetros
Pode tornar uma instrução contextual marcando palavras como parâmetros através do formato ${parameter:<parameter_name>}
. Também pode usar a API Data Ingestion para importar o valor real de um parâmetro chamando o método IngestContextReferences numa conversa. Com este método, os parâmetros na instrução são substituídos pelo respetivo valor durante o tempo de execução.
Segue-se um exemplo JSON de como importar o valor dos parâmetros chamando IngestContextReferences:
{ "contextReferences": { "glossary": { "contextContents": [ { "content": "east one", "contentFormat": "PLAIN_TEXT" } ] } } }
Existem também alguns parâmetros do gerador que não precisam de ser carregados. Estes parâmetros incorporados são os seguintes:
${parameter:transcript}
: a conversa entre o agente e o utilizador, incluindo a última expressão do utilizador.${parameter:transcript_last_utterance}
: a última expressão na conversa.
Deve ser usado, pelo menos, um parâmetro incorporado em qualquer instrução.
Quer sejam incorporados ou carregados, os parâmetros do gerador são diferentes das opções do modelo, que são definidas quando o gerador é criado. Os valores destes parâmetros do gerador são provenientes de uma transcrição de conversa ou de dados carregados. Por outro lado, define os valores das opções do modelo para o gerador como um todo.
Teste um gerador
Na consola Crie o seu próprio assistente de IA generativa, pode testar o gerador na secção Testar gerador.
Para testar um gerador na consola Crie o seu próprio assistente de IA gen., faça o seguinte:
Consola
- Adicionar uma transcrição da conversa. Pode introduzir manualmente as expressões ou carregar uma transcrição em formato JSON clicando em carregar.
- Para adicionar mais dados que precisam de ser carregados, clique em more_vert e note_add Adicionar dados injetados.
A consola Crie o seu próprio assistente de IA gen apresenta respostas geradas anotadas com o nome do gerador.
REST
Para testar um gerador através da API, faça o seguinte:
- Introduza o nome do gerador no campo
generatorName
. - Forneça conversas no campo
conversationContext
. - Forneça valores de parâmetros, se existirem, no campo
contextReferences
. - Introduza o acionador para gerar sugestões no campo
triggerEvents
. As sugestões geradas estão disponíveis no campogeneratorSuggestion
.
Perfil de conversa
Um perfil de conversa define um conjunto de parâmetros que controlam as sugestões feitas durante uma conversa. Os passos seguintes criam um recurso conversationProfile
com um objeto HumanAgentAssistantConfig
.
Consola
- Na consola do Assistente do agente, aceda à página Perfis de conversa.
- Clique em + Criar.
- Introduza o nome a apresentar.
- Selecione o tipo de sugestão check_box Build-your-own-assist.
- Introduza o nome do gerador ou escolha o nome do gerador na lista.
REST
- Chame o método
create
a partir do recurso do perfil de conversa. - Atribua um nome ao novo perfil de conversa.
- Introduza o código do idioma.
- Introduza o nome do gerador em human_agent_suggestion_config.
Segue-se um exemplo JSON de um perfil de conversa.
{ "displayName": "build-your-own-assist-test", "humanAgentAssistantConfig": { "humanAgentSuggestionConfig": { "generators": "projects/PROJECT_ID/locations/global/generators/GENERATOR_ID" } } }
Valide com o simulador
Pode validar o perfil de conversa no simulador do Agent Assist. O simulador apresenta respostas geradas anotadas com o nome do gerador.
Teste um comando
Na consola Crie a sua própria IA gen., pode testar um comando com o simulador da mesma forma que valida um perfil de conversa.
A saída gerada apresentada na imagem seguinte ilustra o desempenho do gerador freeform-tool-test1
em seguir o comando de exemplo.
Conversas em tempo de execução
Uma conversa é definida como uma interação entre um agente, incluindo agentes humanos e agentes virtuais, e um cliente de apoio técnico ou um utilizador final. Em tempo de execução, quando um diálogo começa entre um utilizador final e um agente humano, cria uma conversa. Para ver sugestões, tem de criar um participante utilizador final e um participante agente humano, e adicioná-los à conversa.
Crie uma conversa
Para criar uma conversa, faça o seguinte:
- Chame o método
create
a partir deconversation resource
. - Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- CONVERSATION_PROFILE_ID: o ID do seu perfil de conversa
Método HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations
Corpo JSON do pedido:
{ "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", }
Na resposta JSON, o segmento do caminho após conversations
contém o novo ID da conversa. A resposta JSON deve ser semelhante à seguinte:
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID", "lifecycleState": "IN_PROGRESS", "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID", "startTime": "2023-11-05T21:05:45.622Z" }
Crie um participante utilizador final
Para criar um participante utilizador final, faça o seguinte:
- Chame o método
create
do recursoparticipants
. - Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- CONVERSATION_ID: o ID da conversa
Indique o ID da conversa e "END_USER" para o campo de função da seguinte forma.
Método HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants
Corpo JSON do pedido:
{ "role": "END_USER", }
Na resposta JSON, o segmento do caminho após participants
contém o novo ID do participante do utilizador final. A resposta JSON deve ser semelhante à seguinte:
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/USER_PARTICIPANT_ID", "role": "END_USER" }
Crie um participante agente humano
Para criar um participante agente humano, faça o seguinte:
- Chame o método
create
do recursoparticipants
. - Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- CONVERSATION_ID: o ID da conversa
Indique o ID da conversa e a função de HUMAN_AGENT
para o campo da seguinte forma.
Método HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants
Corpo JSON do pedido:
{ "role": "HUMAN_AGENT", }
Na resposta JSON, o segmento de caminho após participants
contém o ID do participante do agente humano. A resposta deve ser semelhante à seguinte:
{ "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/AGENT_PARTICIPANT_ID", "role": "HUMAN_AGENT" }
Analise a mensagem
Um gerador também pode analisar uma mensagem numa conversa. Durante uma conversa, pode adicionar uma mensagem e o gerador pode analisar as mensagens do agente humano e do utilizador final com o método analyzeContent
do recurso participants
.
Para adicionar e analisar uma mensagem de um agente humano, siga estes passos.
- Chame o método
analyzeContent
. - Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- CONVERSATION_ID: o ID da conversa
- PARTICIPANT_ID: o ID do participante do agente humano
Faculte o ID da conversa e o ID do participante do agente humano. A sua solicitação deve incluir algo semelhante ao seguinte:
Método HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
Corpo JSON do pedido:
{ "textInput": { "text": "Bonjour, ici le service client d'ABC fishing, comment puis-je vous aider aujourd'hui ?", "languageCode": "en-US" } }
Deve receber uma resposta JSON semelhante à seguinte:
{ "message": { "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "content": "Bonjour, ici le service client d'ABC fishing, comment puis-je vous aider aujourd'hui ?", "languageCode": "en-US", "participant": "PARTICIPANT_ID", "participantRole": "HUMAN_AGENT", "createTime": "2023-02-13T00:01:30.683Z" }, "humanAgentSuggestionResults": [{ "generateSuggestionsResponse": { "generatorSuggestionAnswers": [{ "generatorSuggestion": { "freeFormSuggestion": { "response": "Hello, this is ABC fishing customer service, how can I help you today?" } }, "sourceGenerator": "projects/PROJECT_ID/locations/global/generators/GENERATOR_ID", "answerRecord": "projects/PROJECT_ID/locations/global/answerRecords/ANSWER_RECORD_ID" }], "latestMessage": "projects/PROJECT_ID/locations/global/conversations/CONVERSATION_ID/messages/MESSAGE_ID" } }] }
Para adicionar e analisar uma mensagem do utilizador final
- Chame o método
analyzeContent
. Não faça chamadas duplicadas ao método se este tiver sido chamado para outras funcionalidades do Agent Assist. - Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- CONVERSATION_ID: o ID da conversa
- PARTICIPANT_ID: o ID do participante do agente humano
Faculte o ID da conversa e o ID do participante do agente humano. A sua solicitação deve incluir algo semelhante ao seguinte:
Método HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
Corpo JSON do pedido:
{ "textInput": { "text": "Hi", "languageCode": "en-US" } }
Deve receber uma resposta JSON semelhante à seguinte:
{ "message": { "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID", "content": "Hi", "languageCode": "en-US", "participant": "PARTICIPANT_ID", "participantRole": "END_USER", "createTime": "2020-02-13T00:07:35.925Z" }, "humanAgentSuggestionResults": [{ "generateSuggestionsResponse": { "generatorSuggestionAnswers": [{ "generatorSuggestion": { "freeFormSuggestion": { "response": "Salut" } }, "sourceGenerator": "projects/PROJECT_ID/locations/global/generators/GENERATOR_ID", "answerRecord": "projects/PROJECT_ID/locations/global/answerRecords/ANSWER_RECORD_ID" }], "latestMessage": "projects/PROJECT_ID/locations/global/conversations/CONVERSATION_ID/messages/MESSAGE_ID" } }] }
Quando uma conversa é concluída e analyzeContent
não foi usado, pode usar o método batchCreate
do recurso messages para importar e analisar mensagens do histórico da conversa.
Receba sugestões
O gerador também fornece sugestões em resposta a uma mensagem em qualquer ponto de uma conversa. Por predefinição, as sugestões são para a mensagem mais recente de qualquer um dos participantes. Também pode especificar a mensagem para a qual quer receber as sugestões. Receba sugestões por predefinição ou através de um dos seguintes recursos.
Use sugestões incluídas
A resposta de analyzeContent
inclui sugestões. O gerador acionado produz estas sugestões. O seu pedido JSON deve incluir algo semelhante ao seguinte:
Método HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID:analyzeContent
Corpo JSON do pedido:
{ "textInput": { "text": "I want to reserve a room.", "languageCode": "en-US" } }
Use o recurso suggestions
Outra abordagem para receber sugestões é seguir estes passos.
- Chame o método
generate
do recursosuggestions
. - Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- CONVERSATION_ID: o ID da conversa
- PARTICIPANT_ID: o ID do participante do agente humano
Forneça o ID da conversa, o ID da mensagem mais recente de qualquer um dos participantes e os eventos de acionamento. Se o campo ID da mensagem não estiver definido, as sugestões baseiam-se na mensagem mais recente de qualquer um dos participantes por predefinição. Em seguida, o gerador associado ao evento de acionamento é iniciado. O seu pedido JSON deve incluir algo semelhante ao seguinte:
Método HTTP e URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_IDsuggestions:generate
Corpo JSON do pedido:
{ "latestMessage": "projects/PROJECT_ID/conversations/CONVERSATION_IDmessages/Message_ID", "triggerEvents": [ "END_OF_UTTERANCE" ] }
Use o recurso statelessSuggestion
Uma última abordagem para receber sugestões é seguir estes passos.
- Chame o método
generate
do recursostatelessSuggestion
. - Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto
- LOCATION_ID: o ID da sua localização
Fornecer o gerador, as mensagens da conversa e as referências de contexto que contêm dados carregados. Os dados carregados substituem os parâmetros na instrução do gerador. O seu pedido JSON deve ser semelhante ao seguinte:
Método HTTP e URL:
https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/statelessSuggestion:generate
Corpo JSON do pedido:
{ "generator": { "description": "Translation", "triggerEvent": "END_OF_UTTERANCE", "freeFormContext": { "text": "Read the conversation between agent and customer, and the last utterance. Output the last utterance from customer by following these instructions: - If the last utterance from AGENT, output the utterance by translating it to English. - If the last utterance from CUSTOMER, output the utterance by translating it to French. - Specific brand names and technical terms specified under 'GLOSSARY' section, such as 'Google Home,' should remain unchanged as per the glossary guidelines. # GLOSSARY ${parameter:glossary} # CONVERSATION: ${parameter:transcript} # LAST UTTERANCE: ${parameter:transcript_last_utterance} # OUTPUT: " } }, "contextReferences": { "glossary": { "contextContents": { "content": "east one", "contentFormat": "PLAIN_TEXT" } } }, "conversationContext": { "messageEntries": [ { "text": "hi", "languageCode": "en-US", "role": "END_USER", "createTime": { "seconds": "1400000000", "nanos": "10000000" } }, { "text": "Bonjour, comment puis-je vous aider aujourd\\'hui ?", "languageCode": "en-US", "role": "HUMAN_AGENT", "createTime": { "seconds": "1400000010", "nanos": "10000000" } } ] }, "triggerEvents": [ "END_OF_UTTERANCE" ] }
Limites de quota
Pode ver as quotas e os limites do Agent Assist na página de quotas do Dialogflow. A criação da sua própria assistência de IA gen inclui os seguintes limites de quota:
Nome | Descrição | Limite |
---|---|---|
Operações do gestor do gerador por minuto (por região) | Limite do número de operações do gestor do gerador que podem ser realizadas a cada minuto, como criar, listar ou eliminar geradores. | 300 |
Geradores (por região) | Limite do número máximo de geradores que pode criar num único projeto. | 200 |
Operações de sugestões do gerador por minuto por tipo de modelo (por região) | Limite do número de pedidos de operações de sugestões do gerador que pode receber a cada minuto para cada tipo de modelo. | 10 |