Agentes do repositório de dados

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

Forneça armazenamentos de dados ao criar o agente.

Um agente de repositório de dados tem gerenciadores de estado especiais chamados gerenciadores de repositório de dados. Usando esses gerenciadores de repositório de dados, seu agente de repositório de dados pode conversar sobre o conteúdo com os usuários finais.

Limitações

Considere as seguintes limitações:

  • No momento, esse recurso só é compatível com determinados idiomas no GA. Consulte a coluna do repositório de dados na referência de idiomas.
  • Somente as seguintes regiões são compatíveis: global, multirregião us e multirregião eu.

Controle de acesso

Se você é proprietário do projeto, tem todas as permissões necessárias para criar um agente de repositório de dados. Se você não for o proprietário do projeto, será necessário ter os seguintes papéis:

  • Administrador do Dialogflow
  • Administrador do Discovery Engine

Para mais informações, consulte o guia de controle de acesso do Dialogflow.

Criar um agente de repositório de dados

Para criar um agente de repositório de dados:

  1. Siga as instruções de setup do Dialogflow, caso ainda não tenha feito isso.
  2. Acesse o console da Vertex AI para Conversação:

    Console de conversação da Vertex AI

  3. Selecione o projeto no menu suspenso do console.

  4. Se você ainda não tiver ativado a API, leia e concorde com os Termos de Serviço e clique em Continuar e ativar a API.

  5. Clique em Criar um novo app ou Novo app.

  6. Selecione Chat.

  7. Forneça o nome da sua empresa na seção Configurações do agente.

  8. Expanda a seção de configurações de fuso horário e idioma.

  9. Selecione um fuso horário.

  10. Selecione um idioma padrão.

  11. Forneça um nome de agente na seção Seu nome de agente.

  12. Selecione uma região ou multirregião na seção Local do agente.

  13. Clique em Continuar.

  14. Conecte um armazenamento de dados ao seu agente seguindo um destes procedimentos:

    • Selecione um repositório de dados criado anteriormente.
    • Crie um repositório de dados:
      1. Clique em Criar novo repositório de dados.
      2. Escolha uma fonte de dados.
      3. Forneça os dados e a configuração da fonte do repositório de dados selecionada. O local do repositório de dados precisa corresponder ao local do agente.
      4. Clique em Criar para gerar o repositório de dados.
      5. Selecione seu novo repositório de dados.
  15. Clique em Criar.

  16. Seu agente foi criado e você é redirecionado automaticamente para a página Armazenamentos de dados disponíveis. Nela, é possível adicionar mais armazenamentos de dados conforme necessário.

  17. Se você criou um novo repositório de dados para um site, será preciso verificar seu domínio.

  18. Para abrir o agente com o Dialogflow CX, clique em Visualizar no painel esquerdo. No console do Dialogflow CX, é possível editar ou adicionar gerenciadores de repositório de dados, implantar seu agente e, opcionalmente, adicionar fluxos que processam cenários não cobertos pelos armazenamentos de dados.

Teste seu agente

Use o simulador do Dialogflow CX para testar seu agente.

Melhorar as respostas generativas do agente

Se você encontrar algumas respostas que não atendem às suas expectativas durante o teste, faça o seguinte.

Para substituir uma resposta, adicione uma entrada de Perguntas frequentes para uma pergunta específica.

Outras personalizações estão disponíveis para seu agente no Console do Dialogflow. Para navegar até o console, clique no nome do agente na lista de agentes disponíveis nele. Em seguida, abra a página Agent Settings do Dialogflow e navegue até a guia ML e, em seguida, a subpropriedade IA generativa. As seguintes personalizações estão disponíveis:

Confiança de embasamento

Para cada resposta gerada do conteúdo dos seus armazenamentos de dados conectados, avaliamos um nível de confiança, que mede a confiança de que todas as informações na resposta são compatíveis com as informações nos armazenamentos de dados. É possível personalizar os tipos de respostas permitidos, selecionando o nível de confiança mais baixo que você quer. Se uma resposta retornar com uma confiança estritamente menor do que esse nível, ela não será mostrada.

Há cinco níveis de confiança para escolher: muito baixo, baixo, médio, alto e muito alto.

Solicitação do repositório de dados

Você tem a opção de adicionar mais informações sobre o agente para melhorar a qualidade das respostas geradas com base no conteúdo do repositório de dados e fazer com que elas se pareçam com sua marca:

  • Agent name: o nome do próprio agente. Se ela não for definida, o valor padrão do AI Assistant será usado.
  • Identidade do agente: qual será o perfil do agente. Se ela não for definida, o valor padrão do AI Assistant será usado.
  • O campo Company name deve ser definido como o nome da sua empresa. Isso já deve ter sido definido como parte do fluxo de criação do agente, mas pode ser ajustado conforme necessário. Recomendamos definir esse campo corretamente (e especialmente não deixá-lo vazio), para que a qualidade das respostas geradas seja prejudicada.
  • Descrição da empresa é uma breve descrição do que a empresa faz ou oferece.
  • Escopo do agente: onde o agente deve ser usado. Se ela não for definida, o valor padrão no site da empresa será usado.

Depois de preencher essa seção parcial ou totalmente, você pode inspecionar no lado direito, em Seu comando, o parágrafo curto derivado dessas configurações e que vai ser usado como parte da geração de respostas.

Frases banidas

Você tem a opção de definir frases específicas que não devem ser permitidas. Se a resposta gerada (ou, nesse caso, o conteúdo da solicitação usada para gerá-la, por exemplo, a última fala do usuário) tiver alguma das frases proibidas na íntegra, essa resposta não será mostrada.

Solicitação de resumo e seleção de modelos de repositório de dados

Quando uma consulta do usuário é processada, o agente realiza uma pesquisa nos repositórios de dados para encontrar boas origens. Em seguida, o agente envia a consulta do usuário e as fontes encontradas para o LLM, que executa um resumo.

É possível selecionar qual modelo usar para o resumo e, se quiser, enviar seu próprio comando.

Selecionar modelo generativo

É possível selecionar o modelo generativo usado por um agente de repositório de dados para a solicitação generativa de resumo. Se nenhum for selecionado, text-bison@001 será usado. A tabela a seguir contém as opções disponíveis:

Identificador do modelo Suporte a idiomas
text-bison@001 Disponível em todos os idiomas compatíveis.
text-bison@002 Disponível em todos os idiomas compatíveis.
text-bison@001 sintonizado (conversa) No momento, apenas o inglês é compatível.
texto-bison@001 ajustado (informativo) No momento, apenas o inglês é compatível.
gêmeo-pro Disponível em todos os idiomas compatíveis.

Personalizar o comando de resumo

Você pode fornecer seu próprio comando para a chamada de LLM de resumo. O comando é um modelo de texto que pode conter marcadores de posição predefinidos. Os marcadores de posição serão substituídos pelos valores apropriados no momento da execução, e o texto final será enviado ao LLM.

Os marcadores de posição são os seguintes:

  • $original-query: o texto da consulta do usuário.
  • $rewritten-query: o Dialogflow usa um módulo de regravação para reescrever a consulta do usuário original em um formato mais preciso.
  • $sources: o Dialogflow usa o Enterprise Search para procurar origens com base na consulta do usuário. As origens encontradas são renderizadas em um formato específico:

    [1] title of first source
    content of first source
    [2] title of second source
    content of first source
    
  • $conversation: o histórico de conversas é renderizado no seguinte formato:

    Human: user's first query
    AI: answer to user's first query
    Human: user's second query
    AI: answer to user's second query
    

Um comando personalizado precisa instruir o LLM a retornar "NOT_ENOUGH_INFORMATION" quando não puder fornecer uma resposta. O agente vai transformar essa constante em uma mensagem fácil de usar para o usuário.

Implantar o agente

Há muitas maneiras de implantar o agente:

  • A opção mais simples é usar uma integração do Dialogflow CX, que fornece uma interface de usuário para seu agente. Cada integração fornece instruções de implantação.

  • A integração do Dialogflow Messenger é uma opção particularmente boa para agentes 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. Sua implementação da interface do usuário está no controle da implantação.

Monitorar o desempenho do agente

Monitore o histórico de conversas dos agentes e use a ferramenta de análise para analisar as estatísticas deles.

Intents especiais

Além de lidar com perguntas sobre o conteúdo fornecido, o agente de repositório de dados pode lidar com os seguintes tipos:

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

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

Agentes híbridos

Se você já tem um agente Dialogflow CX, pode fazer upgrade dele 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 de repositório de dados.

Como parte desse upgrade, você pode excluir ou desativar temporariamente rotas de intent (enquanto testa gerenciadores de repositório de dados) para determinados cenários de conversa do seu agente, já que os gerenciadores de repositório de dados podem lidar com esses cenários de modo mais simples.

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

  • Perguntas que podem ser respondidas nos documentos ou no site da 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 descarte de dados sensíveis.
  • cenários que exigem respostas deterministas do agente.

O Dialogflow avalia a entrada do usuário final na seguinte ordem de preferência:

  1. Correspondência de intent para rotas no escopo
  2. Conteúdo do repositório de dados de Perguntas frequentes
  3. Conteúdo do repositório de dados não estruturados

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. Correspondências de intent para rotas no escopo.
  3. Gerenciador de repositório de dados com conteúdo de armazenamento de dados de perguntas frequentes.
  4. Gerenciador do repositório de dados com conteúdo do repositório de dados não estruturado.

Adicionar ou editar gerenciadores de repositório de dados de 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 que elas 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. Esse geralmente é o fluxo inicial padrão.
  5. Selecione a página associada ao gerenciador do repositório de dados. Geralmente, é 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, vai acessar a interface do usuário da Vertex AI para Pesquisa e Conversação. Consulte as informações do repositório 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 conforme necessário e salve quando terminar. Veja abaixo as informações sobre as configurações específicas do 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 seja necessário esclarecer o que é um CVV. Nesse caso, seu agente precisa responder à pergunta e voltar a coletar as informações necessárias. Para isso, crie um gerenciador de repositório de dados com armazenamentos 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 estiver fazendo a correspondência com 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 precisão 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âmetros 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, faça o seguinte:

  • Definir parâmetros de sessão para 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 do repositório de dados precisa voltar à página de chamada para que a conversa continue.

Personalização

Para tornar as respostas generativas mais relevantes para os usuários finais, é possível fornecer ao Dialogflow informações sobre os usuários.

Essas informações são fornecidas como JSON. Não há esquema esperado, então você pode definir as propriedades do objeto. Esse JSON é enviado ao 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 detecção de intent, porque não são mantidas na sessão.

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

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

Protocolo V3 V3beta1
REST Recurso de sessão Recurso de 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ções 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.

Com os controles de filtros, é possível manter ou remover resultados da pesquisa com base nos critérios de filtro especificados.

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

Controle de intensificação

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 detecção de intent, porque não são mantidas na sessão.

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

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

Protocolo V3 V3beta1
REST Recurso de sessão Recurso de 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.