Ferramentas de repositório de dados

As ferramentas do repositório de dados podem fornecer respostas de agentes geradas com 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 fulfillment.

Ferramentas de repositório de dados: console

Nesta seção, explicamos como adicionar uma ferramenta de repositório de dados a um agente e configurá-la em um fulfillment.

criar uma ferramenta de repositório de dados

  1. Abra o console dos Agentes de Conversação e selecione seu projeto.
  2. Selecione um agente no menu suspenso.
  3. Acesse a barra de menus no lado esquerdo da página e selecione Ferramentas.
  4. Clique em + Criar. Insira um Nome exclusivo para a ferramenta e selecione Repositório de dados no menu suspenso em Tipo. Se quiser, insira uma descrição da ferramenta no campo Descrição.
  5. Clique em Adicionar repositórios de dados. A janela que aparece contém uma lista dos seus repositórios de dados, se houver. Selecione o repositório de dados que será adicionado à ferramenta.
  6. (Opcional) Para criar um novo repositório de dados no console do Vertex AI Agent Builder, clique em Criar novo repositório de dados para ser redirecionado automaticamente.
  7. (Opcional) Depois 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 no console do Dialogflow CX e atualize a página. O novo repositório de dados aparece na lista de repositórios de dados disponíveis.
  8. 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

  1. Acesse a barra de menus à esquerda e selecione Fluxos.
  2. Selecione um fluxo e uma página e clique na Rota para usar com o repositório de dados.
  3. Acesse Fulfillment > Ferramenta de repositório de dados e selecione sua ferramenta no menu suspenso.
  4. Acesse Fulfillment > Respostas do agente, clique em +Adicionar resposta de diálogo e em Resposta da ferramenta do repositório de dados.
  5. Configure o número de links de origem e citações que vão aparecer na resposta e especifique o comportamento de fallback se a resposta do repositório de dados estiver vazia. Insira uma resposta de substituição estática no campo Respostas de substituição estática. Se quiser, clique na caixa de seleção resposta generativa de substituição para usar a IA para gerar uma resposta antes de usar a resposta de fallback estática. Para personalizar as respostas de fallback, clique no ícone de chave inglesa no canto superior esquerdo da janela do formulário Resposta do repositório de dados para abrir a janela Resposta condicional.
  6. Na parte de cima do menu Route, clique em Save.
  7. Acesse o simulador do Dialogflow CX para testar os resultados do agente.

Parâmetro de sessão opcional de substituição de consulta

É possível substituir a consulta transmitida para essa ferramenta de repositório de dados usando um parâmetro de sessão knowledge.overrides.query. Se esse parâmetro não estiver vazio, a ferramenta vai usá-lo em vez da consulta do usuário.

Ferramentas de repositório de dados: API

Por padrão, o agente chama o método dataStoreTool em seu nome.

Há três tipos de repositório 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 particulares não estruturados.
  • STRUCTURED: um repositório de dados que contém dados estruturados (por exemplo, perguntas frequentes).

O exemplo a seguir mostra como referenciar um repositório de dados. Para mais informações, consulte a referência de 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 proceder com a resposta do repositório de dados ou como responder quando nenhuma resposta for encontrada.

É possível substituir uma resposta adicionando uma entrada de perguntas frequentes para uma pergunta específica.

Se quiser, forneça exemplos para melhorar o comportamento do agente. Os exemplos precisam seguir o esquema. Para mais detalhes, consulte a documentação de referência.

{
  "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 repositório de dados, o parâmetro de entrada da ferramenta requestBody fornece três entradas opcionais com a string query obrigató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 de expressão de filtro compatível para repositórios de dados. Vários exemplos detalhados instruem o modelo do playbook sobre como preencher esse parâmetro. Se uma string de filtro for inválida, esse filtro será ignorado durante a consulta de pesquisa.

O exemplo a seguir mostra uma string filter que pode ser usada para refinar os resultados da pesquisa com base no local:

"filter": "country: ANY(\"Canada\")"

Para mais informações sobre exemplos de playbook, consulte a página de exemplos.

Práticas recomendadas de 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 com informações de cardápio pode incluir um campo meal com "café da manhã", "almoço" e "jantar" como valores válidos e um campo servingSize que pode ser qualquer número inteiro de 0 a 5. As instruções podem ser semelhantes ao exemplo a seguir:

    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 destinado a um público de usuários externos, adicione instruções para evitar que ele responda ao usuário com informações sobre como criar esses 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 repositório de dados para informar melhor os resultados da pesquisa e a resposta da ferramenta. Vários exemplos detalhados ajudam a instruir o modelo do playbook sobre como preencher esse parâmetro.

Veja a seguir um exemplo de valor de parâmetro userMetadata para refinar os resultados da pesquisa relevantes para um usuário específico:

"userMetadata": {
  "favoriteColor": "blue",
  ...
}

O parâmetro fallback fornece uma resposta que a ferramenta de repositório de dados retorna se não houver uma resposta resumida válida para a consulta. É possível fornecer vários exemplos para instruir o modelo do playbook sobre como preencher o campo de fallback para entradas do usuário relacionadas a diferentes tópicos. A saída da ferramenta não contém snippets, o que ajuda a reduzir a latência e o uso de tokens 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, durante o teste, você descobrir que algumas respostas não atendem às suas expectativas, tente ajustar os parâmetros a seguir para melhorar o desempenho. Eles estão disponíveis chamando a API diretamente ou clicando no nome do repositório de dados na página Ferramentas no console. Para mais informações sobre essas opções de configuração, consulte a página de configurações do repositório de dados.

Opções de resposta da ferramenta de repositório de dados

Para mais informações sobre como configurar a resposta da ferramenta de repositório de dados, consulte a documentação de fulfillment.

Gerenciadores de repositório de dados

Os gerenciadores de repositório de dados são um tipo especial de gerenciador de estado que pode fornecer respostas de agentes geradas por LLM com base no conteúdo do seu site e nos dados enviados.

Para criar esse gerenciador, forneça repositórios de dados ao agente.

Com esses gerenciadores 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:

Controle de acesso

Se você for o proprietário do projeto, terá as permissões necessárias para criar um gerenciador de repositório de dados. Se você não for o proprietário do projeto, precisará 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:

  1. Selecione uma página e clique em Adicionar gerenciador de estado.
  2. Marque a caixa de seleção Repositórios de dados e clique em Aplicar.
  3. Clique no símbolo + no canto superior direito da seção Repositórios de dados da página.
  4. No menu de repositórios de dados que aparece, clique em Adicionar repositórios de dados.
  5. Uma tabela com os repositórios de dados atuais vai aparecer. Marque a caixa de seleção 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 Vertex AI Agent Builder.
  6. (Somente novos repositórios de dados) Selecione uma fonte de dados e siga as instruções no Vertex AI Agent Builder para configurar o repositório de dados. 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 seu agente

Implantar o agente

É possível implantar o agente de várias maneiras:

  • Use uma integração para fornecer uma interface do usuário para seu agente. Cada integração fornece instruções para implantação.
  • A integração do Dialogflow CX Messenger é uma boa opção para gerenciadores de repositório de dados. Ele tem opções integradas para recursos generativos.
  • É possível criar sua própria interface do usuário e usar a API Dialogflow CX para interações. A implementação da interface do usuário gerencia a implantação.

Intents especiais

Além de responder a perguntas sobre o conteúdo que você fornece, o agente pode lidar com os seguintes tipos de perguntas:

  • Identificação do agente:o agente lida com perguntas como "Quem é você?" ou "Você é humano?"
  • Encaminhar para um agente humano:o agente lida com perguntas como "Quero falar com um humano" ou "Quero falar com uma pessoa real".

Isso é feito por intents e rotas de intent geradas automaticamente.

Respostas do agente

Na seção Respostas do agente, forneça respostas personalizadas que façam 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

Mais informações podem estar disponíveis em $request.knowledge.* para personalizar a resposta. Essas informações incluem o seguinte:

  • As fontes identificadas da resposta com os campos: snippet, título e URI.
  • A confiança de embasamento da resposta.
  • Para um repositório de dados de perguntas frequentes, a pergunta correspondente à resposta selecionada.

A tabela a seguir mostra exemplos de como acessar essas informações:

Informações Como acessar
Trecho 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 fontes 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 (somente para respostas do repositório de dados de perguntas frequentes) $request.knowledge.questions[0]
Nível de confiança do embasamento para a resposta principal $request.knowledge.grounding_confidences[0]