Agentes de repositório de dados

O recurso Vertex AI para Conversação cria um agente especial do Dialogflow, chamado de agente de repositório de dados. Com esse recurso, você fornece um link de site ou documentos (armazenamentos de dados), e o Google analisa o conteúdo e cria um agente virtual com base em modelos de linguagem grandes. Isso é feito com a criação de gerenciadores de estado especiais, chamados gerenciadores de repositório de dados. Com eles, seu agente de repositório de dados pode conversar sobre o conteúdo com os usuários finais.

Especifique o nome de domínio e/ou faça upload de quantos documentos quiser para que o Google os indexe. Essas informações são disponibilizadas ao seu agente para acesso em tempo real. Isso unifica a potência e a precisão dos algoritmos da Pesquisa Google que são executados nos seus dados públicos ou particulares com os recursos de conversa natural do Dialogflow.

Para instruções sobre como criar um novo agente de repositório de dados, consulte a Introdução à Vertex AI para Conversação.

Sobre agentes híbridos

É possível fazer upgrade desse agente para um agente híbrido, que combina o poder de controles de conversa precisos (fluxos, parâmetros, intents, condições, transições e assim por diante) com recursos generativos do gerenciador do repositório de dados.

Como parte desse upgrade, é possível excluir ou desativar temporariamente as rotas de intent (enquanto testa gerenciadores de repositório de dados) para determinados cenários de conversa do seu agente, porque os gerenciadores de repositório de dados podem lidar com esses cenários de forma mais simples.

Os seguintes cenários são recomendados para gerenciadores de repositório de dados:

  • Perguntas que podem ser respondidas por documentos ou site de sua organização.
  • Perguntas frequentes que não exigem pesquisas no banco de dados.

Os cenários a seguir não são recomendados para gerenciadores de repositório de dados:

  • Conteúdo que não tem respostas para as perguntas desejadas.
  • Perguntas que exigem pesquisas de banco de dados ou solicitações do servidor.
  • Cenários que exigem edição de dados.
  • Cenários que exigem respostas determinísticas do agente.

Ordem de avaliação de entrada

O Dialogflow avalia a entrada do usuário final na seguinte ordem para agentes híbridos:

  1. Entrada de parâmetro durante o preenchimento de formulário.
  2. A intent corresponde às rotas no escopo.
  3. Gerenciador do repositório de dados com conteúdo do repositório de dados de perguntas frequentes.
  4. Gerenciador de repositório de dados com conteúdo de armazenamento de dados não estruturados.

Adicionar ou editar gerenciadores de repositório de dados para um agente atual

Os gerenciadores de repositório de dados são um tipo especial de gerenciador de estado do Dialogflow. Isso significa que elas podem ser aplicadas a fluxos ou páginas e são avaliadas usando as mesmas regras de escopo.

Para adicionar ou editar um gerenciador de repositório de dados:

  1. Acesse o Console do Dialogflow CX.
  2. Selecione seu projeto do Google Cloud.
  3. Selecione o agente.
  4. Selecione o fluxo associado ao gerenciador do repositório de dados. Geralmente, esse é o fluxo inicial padrão.
  5. Selecione a página associada ao gerenciador do repositório de dados. Geralmente, essa é a página inicial.
  6. Clique em Adicionar gerenciador de estado nos dados da página e selecione armazenamento de dados.
  7. Se você precisar criar um repositório de dados, a interface do usuário da Vertex AI para Pesquisa e Conversação será aberta. Consulte as informações do armazenamento de dados para fazer seleções.
  8. Se você já tiver um repositório de dados, clique em Editar repositório de dados.
  9. Faça as atualizações necessárias e salve quando terminar. Veja abaixo as informações sobre as configurações específicas de repositório de dados.

Respostas do agente

Na seção Respostas do agente, é possível fornecer respostas personalizadas que fazem referência a respostas generativas. Use $request.knowledge.questions[0] na seção O agente diz para fornecer a resposta generativa.

Opções de resposta do repositório de dados

É possível atualizar o campo Link máximo para indicar o número máximo de links complementares que precisam ser fornecidos pelas respostas generativas.

Processar regressões de conversa

Um usuário final pode fazer perguntas esclarecedoras durante uma conversa. Por exemplo, durante a coleta de informações de cartão de crédito, talvez o cliente queira esclarecer o que é o CVV. Nesse caso, seu agente precisa responder à pergunta e continuar coletando as informações necessárias. Para fazer isso, crie um gerenciador de repositório de dados com repositórios de dados que respondam à pergunta, aplique esse gerenciador à página inicial do fluxo que processa a coleta de informações de cartão de crédito e defina um destino de transição para que esse gerenciador retorne à "página atual".

Processar correspondências de intent indesejadas

Se o agente está fazendo a correspondência de intents quando deveria usar um gerenciador de repositório de dados, tente o seguinte para corrigir isso:

  • Exclua ou modifique frases de treinamento vagas, para que todas elas lidem com a intenção pretendida e não entrem em conflito com o conteúdo do repositório de dados.
  • Use exemplos negativos para evitar a correspondência de intents.

Filtragem do repositório de dados

Em alguns casos, talvez você queira que apenas determinados armazenamentos de dados estejam disponíveis para consultas, dependendo dos valores de parâmetro da sessão. Por exemplo, você pode ter repositórios de dados exclusivos para categorias de produtos. Para realizar a filtragem do repositório de dados para categorias de produto:

  • Definir os parâmetros de sessão como categorias de produtos.
  • Crie rotas de condição que verifiquem os valores dos parâmetros de sessão e façam a transição para uma página específica que tenha o gerenciador de repositório de dados desejado.
  • O gerenciador de repositório de dados precisa fazer a transição de volta para a página de chamada para que a conversa possa continuar.

Personalização

Para tornar as respostas generativas mais relevantes para os usuários finais, forneça informações sobre os usuários ao Dialogflow.

Essas informações são fornecidas como JSON. Como não há um esquema esperado, você pode definir as propriedades do objeto. Esse JSON é enviado para o modelo de linguagem grande no estado em que se encontra. Portanto, nomes e valores de propriedade descritivos levam aos melhores resultados.

Exemplo:

{
  "subscription plan": "Business Premium Plus",
  "devices owned": [
    {"model": "Google Pixel 7"},
    {"model": "Google Pixel Tablet"}
  ]
}

Como personalizar com a API Dialogflow

É possível fornecer esses dados ao Dialogflow ao enviar solicitações de detecção de intent. Essas informações precisam ser fornecidas em todas as solicitações de intent de detecção, porque elas não são mantidas na sessão.

Forneça essas informações no campo queryParams.endUserMetadata do método Sessions.detectIntent.

Selecione um protocolo e uma versão para a referência de sessão:

Protocolo V3 V3beta1
REST Recurso da sessão Recurso da sessão
RPC (remote procedure call) Interface da sessão Interface da sessão
C++ SessionsClient Indisponível
C# SessionsClient Indisponível
Go SessionsClient Indisponível
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP Indisponível Indisponível
Python SessionsClient SessionsClient
Ruby Indisponível Indisponível

Como personalizar com o Dialogflow Messenger

Esses dados podem ser fornecidos à integração com o Dialogflow Messenger. Consulte o método setContext.

Configuração de pesquisa

Para ter um melhor controle sobre o comportamento do agente e melhorar a qualidade das respostas, as configurações de pesquisa de otimização e filtro são expostas para permitir que você otimize, oculte e filtre documentos.

Os controles de otimização permitem alterar a classificação do resultado da pesquisa aplicando um valor de otimização (maior que zero para uma classificação mais alta, menor que zero para uma classificação mais baixa) a documentos específicos.

Os controles de filtros permitem manter ou remover resultados da pesquisa com base nos critérios de filtro especificados.

Essas informações são fornecidas como JSON para solicitações do Dialogflow. O formato do JSON depende do tipo de controle de pesquisa.

Controle de aumento

A configuração de pesquisa a seguir descreve um controle de otimização:

"searchConfig": {
  "boostSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "spec": [
        {
          "conditionBoostSpecs": {
            "condition": "CONDITION",
            "boost": "1.0"
          }
        }
      ]
    }
  ]
}

Controle de filtros

A configuração de pesquisa a seguir descreve um controle de filtros:

"searchConfig": {
  "filterSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "filter": "CONDITION"
    }
  ]
}

Definir a configuração de pesquisa com a API Dialogflow

É possível fornecer esses dados ao Dialogflow ao enviar solicitações de detecção de intent. Essas informações precisam ser fornecidas em todas as solicitações de intent de detecção, porque elas não são mantidas na sessão.

Forneça essas informações no campo queryParams.searchConfig do método Sessions.detectIntent.

Selecione um protocolo e uma versão para a referência de sessão:

Protocolo V3 V3beta1
REST Recurso da sessão Recurso da sessão
RPC (remote procedure call) Interface da sessão Interface da sessão
C++ SessionsClient Indisponível
C# SessionsClient Indisponível
Go SessionsClient Indisponível
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP Indisponível Indisponível
Python SessionsClient SessionsClient
Ruby Indisponível Indisponível

Definir a configuração de pesquisa com o Dialogflow Messenger

Esses dados podem ser fornecidos à integração com o Dialogflow Messenger.

Para aplicar um controle de pesquisa, o snippet a seguir precisa ser adicionado ao código do DF Messenger ao incorporá-lo em um site:

<script>
  document.addEventListener('df-messenger-loaded', () => {
    const dfMessenger = document.querySelector('df-messenger');
    const searchConfig = { ... }
    dfMessenger.setQueryParameters(searchConfig);
  });
</script>

Consulte o método setQueryParameters.

Codelab

Consulte também o codelab do agente do armazenamento de dados e do app Generative Chat.