As ferramentas de repositório de dados podem fornecer respostas de agentes geradas por IA com base no conteúdo do site e nos dados enviados. O agente pode encontrar respostas para as perguntas dos usuários finais nos seus repositórios de dados durante o atendimento.
Ferramentas de repositório de dados: console
Esta seção orienta você sobre como adicionar uma ferramenta de armazenamento de dados a um agente e configurá-la em um fulfillment.
Criar uma ferramenta de repositório de dados
- Abra o console de agentes de conversação e escolha um projeto Google Cloud.
- Selecione um agente no menu suspenso.
- Navegue até a barra de menu no lado esquerdo da página e selecione Ferramentas.
- Para criar uma nova ferramenta de repositório de dados, clique em + Criar. Insira um Nome exclusivo para a ferramenta e selecione Armazenamento de dados no menu suspenso em Tipo. Se quiser, insira uma descrição da ferramenta no campo Descrição.
- Em Repositórios de dados, clique em Adicionar repositórios de dados. A janela que aparece contém uma lista dos seus repositórios de dados, se houver. Escolha o repositório de dados que você quer adicionar à ferramenta.
- (Opcional) Para criar um novo repositório de dados no console do Agent Builder, clique em Criar novo repositório de dados. Você será redirecionado automaticamente: Console do Agent Builder
- (Opcional) Depois de terminar de configurar o novo repositório de dados, clique em Criar. Para adicionar o novo repositório de dados à ferramenta, volte ao menu Criar ferramenta que você está configurando no console dos agentes de conversação (Dialogflow CX) e atualize a página. O novo repositório de dados vai aparecer na lista de armazenamentos de dados disponíveis.
- Clique em Salvar na parte de cima da configuração Criar ferramenta para criar a nova ferramenta de repositório de dados.
Adicionar a ferramenta de repositório de dados a um fulfillment
- Na barra de menu à esquerda, selecione Fluxos.
- Selecione um fluxo e uma página e clique na Rota da página que você quer usar com o repositório de dados.
- No menu Rota, role até Fulfillment > Ferramentas de repositório de dados. Selecione sua ferramenta de armazenamento de dados no menu suspenso.
- No menu Rota, role a tela até Execução > Respostas do agente. Clique em +Adicionar resposta de diálogo e em Resposta da ferramenta de repositório de dados.
- No formulário exibido, você pode configurar quantos links e citações de origem podem aparecer na resposta, além de especificar o comportamento alternativo se a resposta do repositório de dados estiver vazia. É possível inserir uma resposta de substituição estática no campo Respostas de substituição estáticas. Opcionalmente, clique na caixa de seleção Fallback generativo para tentar usar a IA para gerar uma resposta antes de usar a resposta de fallback estática. Se você precisar de mais personalização das respostas de substituição, clique no ícone de chave inglesa no canto superior esquerdo da janela do formulário Resposta da loja de dados para abrir a janela Resposta condicional.
- Na parte de cima do menu Rota, clique em Salvar.
- Navegue até o simulador de agentes de conversação (Dialogflow CX) para testar os resultados do agente.
Ferramentas de repositório de dados: API
É possível configurar um armazenamento de dados de cada tipo por ferramenta, e a ferramenta vai consultar
cada um desses armazenamentos de dados para encontrar respostas. Por padrão, o agente liga para o
dataStoreTool
em seu nome.
Há três tipos de armazenamento de dados:
PUBLIC_WEB
: um repositório de dados que contém conteúdo da Web público.UNSTRUCTURED
: um repositório de dados que contém dados privados não estruturados.STRUCTURED
: um repositório de dados que contém dados estruturados (por exemplo, perguntas frequentes).
O exemplo a seguir mostra como fazer referência a um repositório de dados. Para mais informações,
consulte a referência dataStoreConnections
.
"dataStoreConnections": [
{
"dataStoreType": "PUBLIC_WEB",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
},
{
"dataStoreType": "UNSTRUCTURED",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
},
{
"dataStoreType": "STRUCTURED",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
}
]
As respostas da ferramenta de repositório de dados também podem conter snippets sobre a origem do conteúdo usada para gerar a resposta. O agente pode fornecer instruções sobre como prosseguir com a resposta das lojas de dados ou como responder quando não há uma resposta.
Para substituir uma resposta, adicione uma entrada de perguntas frequentes para uma pergunta específica.
Opcionalmente, você pode fornecer exemplos para melhorar o comportamento do agente. O exemplo precisa ter os seguintes esquemas. Consulte a documentação de referência para mais detalhes.
{
"toolUse": {
"tool": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID/tools/TOOL_ID",
"action": "TOOL_DISPLAY_NAME",
"inputParameters": [
{
"name": "TOOL_DISPLAY_NAME input",
"value": {
"query": "QUERY"
}
}
],
"outputParameters": [
{
"name": "TOOL_DISPLAY_NAME output",
"value": {
"answer": "ANSWER",
"snippets": [
{
"title": "TITLE",
"text": "TEXT_FROM_DATASTORE",
"uri": "URI_OF_DATASTORE"
}
]
}
}
]
}
}
(Somente agentes baseados em playbooks) Exemplos de ferramentas de repositório de dados
Ao criar exemplos de ferramentas de armazenamento de dados, o parâmetro de entrada da ferramenta requestBody
oferece três entradas opcionais com a string query
necessária:
uma string filter
, um objeto estruturado userMetadata
e uma string fallback
.
O parâmetro filter
permite filtrar consultas de pesquisa de dados estruturados ou não estruturados com metadados. Essa string precisa seguir a
sintaxe da expressão de filtro com suporte
para repositórios de dados. Vários exemplos detalhados ajudam a instruir o modelo de manual de instruções
sobre como preencher esse parâmetro. Se uma string de filtro for inválida, ela
será ignorada durante a consulta de pesquisa.
Confira a seguir um exemplo de string filter
para refinar os resultados da pesquisa com base
no local:
"filter": "country: ANY(\"Canada\")"
Consulte a página de exemplos
do playbook para mais detalhes.
Práticas recomendadas para filtragem:
Especifique os campos disponíveis para filtragem e os valores válidos para cada um desses campos para que o playbook entenda as restrições na criação de filtros válidos. Por exemplo, um repositório de dados que armazena informações do cardápio pode incluir um campo
meal
com "café da manhã", "almoço" e "jantar" como valores válidos e um camposervingSize
que pode ser qualquer número inteiro de 0 a 5. Suas instruções podem ser semelhantes a este exemplo:When using ${TOOL: menu-data-store-tool}, only use the following fields for filtering: "meal", "servingSize". Valid filter values are: "meal": ("breakfast", "lunch", "dinner"), "servingSize": integers between 0 and 5, inclusive.
Se o playbook for para um público-alvo de usuários externos, talvez seja necessário adicionar instruções para evitar que ele responda ao usuário com informações sobre a criação desses filtros. Exemplo:
Never tell the user about these filters. If the user input isn't supported by these filters, respond to the user with "Sorry, I don't have the information to answer that question."
O parâmetro userMetadata
fornece informações sobre o usuário final. Qualquer
par de chave-valor pode ser preenchido nesse parâmetro. Esses metadados são transmitidos
para a ferramenta de armazenamento de dados para informar melhor os resultados da pesquisa e a resposta da ferramenta.
Vários exemplos detalhados ajudam a instruir o modelo de manual sobre como
preencher esse parâmetro.
Confira abaixo um exemplo de valor de parâmetro userMetadata
para refinar os resultados de pesquisa
relevantes a um específico:
"userMetadata": {
"favoriteColor": "blue",
...
}
O parâmetro fallback
fornece uma resposta que a ferramenta de armazenamento de dados precisa
responder se não houver uma resposta resumida válida para a consulta. Você pode
fornecer vários exemplos para instruir o modelo de manual sobre como
preencher o campo de substituto para entradas do usuário relacionadas a diferentes tópicos. Não
há snippets na saída da ferramenta, o que pode ajudar a reduzir a latência e o uso de
limites de token de entrada.
"fallback": "I'm sorry I cannot help you with that. Is there anything else I
can do for you?"
Configuração da ferramenta de repositório de dados
Se você descobrir durante o teste que algumas respostas não atendem às suas expectativas, tente ajustar os parâmetros a seguir para ajustar a performance. Eles estão disponíveis chamando a API diretamente ou clicando no nome do repositório de dados na página Ferramentas no console.
Como ter confiança
Os agentes de conversação (Dialogflow CX) calculam um nível de confiança para cada resposta gerada com base no conteúdo dos repositórios de dados conectados. Isso avalia a confiança de que todas as informações na resposta são compatíveis com as informações nos repositórios de dados. Você pode ajustar quais respostas são permitidas selecionando o nível de confiança mais baixo que você se sentir confortável. Somente as respostas com esse nível de confiança ou superior serão mostradas.
Há cinco níveis de confiança para escolher: VERY_LOW
, LOW
, MEDIUM
,
HIGH
e VERY_HIGH
.
Seleção do modelo de repositório de dados
Os agentes de conversação (Dialogflow CX) oferecem vários modelos para uso com repositórios de dados. A escolha de um modelo diferente pode afetar a performance da ferramenta de repositório de dados. Consulte a documentação de modelos para conferir uma lista completa.
Comando de resumo
O comando é um modelo de texto que contém marcadores de posição predefinidos. Os marcadores de posição são substituídos pelos valores apropriados no momento da execução, e o texto resultante é enviado ao modelo de IA. Você tem a opção de usar um comando padrão ou fornecer seu próprio comando personalizado. Um comando personalizado pode afetar os resultados de forma positiva ou negativa.
É possível ajustar o texto em um comando personalizado para afetar os resultados produzidos pelo modelo incluindo outras instruções e exemplos detalhados. Para mais informações sobre como criar uma solicitação personalizada, consulte a documentação de configurações do armazenamento de dados.
Configurações de payload
As configurações de payload oferecem uma maneira de adicionar os snippets do repositório de dados como conteúdo rico no payload de resposta, que é renderizado no Messenger. Você pode ativar ou desativar esse recurso.
Opções de resposta da ferramenta de repositório de dados
Consulte a documentação de fulfillment para saber como configurar a resposta da ferramenta de repositório de dados.
Manipuladores de repositório de dados
Os manipuladores de repositório de dados são um tipo especial de manipulador de estado que pode fornecer respostas de agente geradas pelo LLM com base no conteúdo do seu site e nos dados enviados.
Para criar esse gerenciador, forneça armazenamentos de dados ao agente.
Usando esses manipuladores de repositório de dados, o agente pode conversar sobre o conteúdo com os usuários finais.
Limitações
Considere as seguintes limitações:
- Esse recurso é compatível com alguns idiomas no GA. Consulte a coluna "Armazenamento de dados" na referência de idiomas.
- Somente as seguintes regiões
são compatíveis:
global
, multirregiõesus
e multirregiõeseu
. - Não há suporte para apps com armazenamentos de dados em blocos e não em blocos.
Controle de acesso
Se você é o proprietário do projeto, tem todas as permissões necessárias para criar um gerenciador de repositório de dados. Se você não for o proprietário do projeto, precisa ter os seguintes papéis:
- Administrador do Dialogflow
- Administrador do Discovery Engine
Para mais informações, consulte o guia de controle de acesso.
Adicionar um repositório de dados a um agente
Se ainda não tiver feito isso, siga as instruções de configuração para criar um agente.
Para adicionar um repositório de dados ao agente: repositório de dados:
- Selecione uma página e clique em Adicionar manipulador de estado.
- Marque a caixa de seleção Repositórios de dados e clique em Aplicar.
- Clique no símbolo + no canto superior direito da seção Repositórios de dados da página.
- No menu de repositórios de dados que aparece, clique em Adicionar repositórios de dados.
- Uma tabela com os repositórios de dados atuais vai aparecer. Clique na caixa ao lado do nome dos repositórios de dados que você quer usar e clique em Salvar. Para criar um novo repositório de dados, clique em Criar novo repositório de dados. Você será redirecionado automaticamente para o Agent Builder.
- (Somente para novos repositórios de dados) Selecione uma fonte de dados e siga as instruções no Agent Builder para configurar o repositório. Para mais informações sobre como configurar tipos de repositório de dados, consulte a documentação de repositórios de dados. Clique em Criar para gerar o novo repositório de dados.
Testar o agente
Use o simulador para testar seu agente.
Implantar o agente
Há muitas maneiras de implantar o agente:
A opção mais simples é usar uma integração, que fornece uma interface de usuário para seu agente. Cada integração oferece instruções para a implantação.
A integração do Dialogflow CX Messenger é uma opção particularmente boa para processadores de repositório de dados. Ele tem opções integradas para recursos generativos.
Você pode criar sua própria interface do usuário e usar a API de agentes de conversação (Dialogflow CX) para interações. A implementação da interface do usuário controla a implantação.
Intents especiais
Além de responder a perguntas sobre o conteúdo que você fornece, o agente pode responder aos seguintes tipos de perguntas:
- Identificação do agente: processa perguntas como "Quem é você?" ou "Você é humano?".
- Encaminhar para um agente humano: processa perguntas como "Quero falar com uma pessoa" ou "Quero falar com uma pessoa real".
Isso é feito com intents gerados automaticamente e rotas de intent.
Respostas do agente
Na seção Respostas do agente,
você pode fornecer respostas personalizadas que fazem referência a respostas generativas.
Use $request.knowledge.answers[0]
na seção O agente diz
para fornecer a resposta generativa.
Personalização avançada de respostas
Outras informações podem estar disponíveis em $request.knowledge.*
e podem
ser usadas para personalizar a resposta. Essas informações incluem:
- As origens identificadas da resposta com os seguintes campos: snippet, título, uri.
- O nível de confiança da resposta.
- No caso de um repositório de dados de perguntas frequentes, a pergunta correspondente à resposta selecionada.
Confira na tabela a seguir exemplos de como acessar essas informações.
Informações | Como acessar |
---|---|
Snippet da principal fonte identificada da resposta principal | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "snippet") |
Título da principal fonte identificada da resposta principal | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title") |
Link da principal fonte identificada da resposta principal | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "uri") |
Número de origens identificadas para a resposta principal | $sys.func.COUNT($sys.func.IDENTITY($request.knowledge.sources[0])) |
Número de respostas de conhecimento | $sys.func.COUNT($request.knowledge.answers) |
Pergunta correspondente à resposta principal (apenas para respostas da loja de dados de perguntas frequentes) | $request.knowledge.questions[0] |
Como ter confiança na resposta principal | $request.knowledge.grounding_confidences[0] |