Criar um assistente de pesquisa de patentes com o AlloyDB e a Vertex AI Agent Builder – Parte 2

1. Visão geral

A pesquisa de patentes é vasta e complexa. Examinar inúmeros resumos técnicos para encontrar inovações relevantes é uma tarefa assustadora. As pesquisas tradicionais com base em palavras-chave geralmente são imprecisas e demoradas. Resumos são longos e técnicos, o que dificulta a compreensão rápida da ideia central. Isso pode levar os pesquisadores a perderem patentes importantes ou perderem tempo com resultados irrelevantes.

O tempero secreto por trás dessa revolução está na Pesquisa Vetorial. Em vez de depender de uma simples correspondência de palavra-chave, a pesquisa vetorial transforma texto em representações numéricas (embeddings). Isso nos permite pesquisar com base no significado da consulta, não apenas nas palavras específicas usadas. No mundo das pesquisas de literatura, isso é um divisor de águas. Imagine encontrar a patente de um "monitor de frequência cardíaca wearable" mesmo que a frase exata não seja usada no documento.

O desafio:espera-se que as pesquisas de literatura moderna forneçam respostas instantâneas e recomendações inteligentes alinhadas às próprias preferências. Os métodos de pesquisa tradicionais geralmente não oferecem esse nível de personalização.

A solução: nosso aplicativo de chat voltado para conhecimento enfrenta esse desafio de frente. Ele usa uma rica base de conhecimento derivada do conjunto de dados de patentes para entender a intenção do cliente, responder de maneira inteligente e fornecer resultados extremamente relevantes.

O que você vai criar

Como parte deste laboratório (Parte 2), você vai:

  1. Criar um agente do Vertex AI Agent Builder
  2. Integrar a ferramenta AlloyDB ao agente

Requisitos

  • Use um navegador, como o Chrome ou o Firefox.
  • Ter um projeto do Google Cloud com o faturamento ativado.

2. Arquitetura

Fluxo de dados: vamos analisar mais de perto como os dados se movem pelo nosso sistema:

Ingestão:

Os dados de patentes são carregados no AlloyDB.

Mecanismo de análise:

Vamos usar o AlloyDB como mecanismo de análise para fazer o seguinte:

  1. Extração de contexto: o mecanismo analisa os dados armazenados no AlloyDB para entender o conjunto de dados de patentes.
  2. Criação de embeddings: os embeddings (representações matemáticas de texto) são gerados para a consulta do usuário e as informações armazenadas no AlloyDB.
  3. Pesquisa de vetor: o mecanismo realiza uma pesquisa de similaridade, comparando o embedding de consultas aos embeddings de resumos de patentes. Isso identifica o "vizinho mais próximo" mais relevante ao contexto que o usuário está pesquisando.

Geração de respostas:

As respostas validadas são estruturadas em uma matriz JSON, e todo o mecanismo é empacotado em uma função do Cloud Run sem servidor que é invocada pelo Agent Builder.

As etapas acima já foram abordadas na parte 1 do laboratório.

Discutimos os detalhes técnicos da criação de um mecanismo de análise orientado por conhecimento que alimenta nosso assistente inteligente de pesquisa de patentes. Agora, vamos explorar como aproveitamos a magia do Agent Builder para dar vida a esse mecanismo em uma interface de conversa. Confira se o URL do endpoint está pronto antes de iniciar a Parte 2. A próxima etapa é o que abordamos neste laboratório:

Interação por conversa:

O Agent Builder apresenta as respostas ao usuário em um formato de linguagem natural, facilitando o diálogo.

3. Antes de começar

Criar um projeto

  1. No console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
  2. Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto .
  3. Você usará o Cloud Shell, um ambiente de linha de comando em execução no Google Cloud que vem pré-carregado com o bq. Clique em "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Imagem do botão "Ativar o Cloud Shell"

  1. Depois de se conectar ao Cloud Shell, verifique se você já está autenticado e se o projeto está configurado com o ID do seu projeto usando o seguinte comando:
gcloud auth list
  1. Execute o comando a seguir no Cloud Shell para confirmar que o comando gcloud conhece seu projeto.
gcloud config list project
  1. Se o projeto não estiver definido, use este comando:
gcloud config set project <YOUR_PROJECT_ID>
  1. Ative as APIs necessárias. A alternativa ao comando gcloud é usar o console, pesquisando cada produto ou usando este link.

Se alguma API estiver ausente, você poderá ativá-la durante a implementação.

Consulte a documentação para ver o uso e os comandos gcloud.

Observação importante:verifique se você concluiu a PARTE 1 do laboratório para concluir as tarefas.

4. Criação de agente

Conheça o Agent Builder

O Agent Builder é uma ferramenta potente e com pouco código que nos permite criar agentes de conversação de maneira rápida e eficiente. Ele simplifica o processo de criação de fluxos de diálogo, integração de bases de conhecimento e conexão com APIs externas. No nosso caso, vamos usar o Agent Builder para uma conexão perfeita com o endpoint da função do Cloud que criamos na Parte 1, permitindo que nosso assistente de pesquisa de patentes acesse nossa base de conhecimento de patentes e responda às consultas dos usuários de maneira inteligente.

Verifique se a função do Cloud Run do Java criada na Parte 1 retorna uma MATRIZ JSON em vez de texto simples.

Como criar o agente

Vamos começar criando esse novo agente para responder às perguntas dos usuários sobre produtos de vestuário.

  1. Comece fazendo login na plataforma Agent Builder. Se aparecer a mensagem para ativar a API, clique em "CONTINUAR E ATIVAR A API".
  2. Clique em "CRIAR APP". e dê um nome descritivo ao agente (por exemplo, "Assistente de pesquisa de patentes").
  3. Clique em "Agente" no tipo de aplicativo.

462bb48664e9a14e.png

  1. , Dê um nome descritivo ao agente, como "Assistente de pesquisa de patentes". e defina a região como us-central1
  2. Digite os detalhes do agente:
  3. Altere o nome do agente para "Agente de pesquisa de patentes".
  4. Adicione a "Meta" abaixo:
You are a professional intelligent patent search agent! Your job is to help the customer find patents matching the context of their search text.

38f7d77d5ed0cb2a.png

  1. Salve-o e deixe as instruções em branco por enquanto.
  2. Em seguida, clique em Ferramentas no menu de navegação e clique em CRIAR.

38f7d77d5ed0cb2a.png

Inserir nome da ferramenta: ferramenta de pesquisa de patentes

Tipo: OpenAPI

Insira a descrição da ferramenta:

This tool refers to the dataset in the backend as the context information for product inventory. It takes as input the user's search text summarized by the agent and matches with the most appropriate list of items and returns as an array of items.

Insira o esquema: OpenAPI no formato YAML:

Essa é a parte em que usamos o endpoint de back-end para capacitar o agente. Copie a especificação OpenAPI abaixo e substitua o marcador de posição de URL (entre colchetes angulares) pelo endpoint da função do Cloud:

openapi: 3.0.0
info:
  title: Patent Search API
  version: v1
servers:
  - url: YOUR_CLOUDFUNCTION_ENDPOINT_URL
paths:
  /patent-search:
    post:
      summary: Search for patents using a text query.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                search:
                  type: string
                  description: The text query to search for patents.
                  example: A new Natural Language Processing related Machine Learning Model
      responses:
        '200':
          description: Successful search response with a JSON array of matching patents.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    result:
                      type: string
                      description: Patent title.
        '400':
          description: Invalid request body.
        '500':
          description: Internal server error.

Deixe as outras configurações com os valores padrão e clique em "Salvar".

  1. Volte para o agente neste ponto porque queremos adicionar a "Ferramenta" para "Instruções" do agente. Adicione o seguinte ao marcador de instruções (lembre-se de que os recuos são importantes para definir o fluxo):
- Greet the users, then ask how you can help them today.
- Summarize the user's request and ask them to confirm that you understood correctly.
    - If necessary, seek clarifying details.
- Use ${TOOL:Patent Search Tool} to help the user with their task.
- Return the response from the ${TOOL:Patent Search Tool} to the user in a well formed string.
- Thank the user for their business and say goodbye.

Verifique se a ferramenta "Ferramenta de pesquisa de patentes" está selecionada em "Ferramentas disponíveis" e salve o agente novamente.

5. Teste o agente

No painel direito, você verá a seção "Agente de visualização" que permite testar seu agente.

Como pode ver na captura de tela abaixo, saudei um usuário e iniciei meu bate-papo com uma solicitação para "Patente correspondente para qualquer ideia de rastreador de condicionamento físico":

e4ffaa48b5c1f012.png

Esta é a resposta JSON:

b0ee0af57ba63943.png

Este é o resultado JSON bruto da função do Cloud que processa a pesquisa de similaridade do AlloyDB. Pronto! Está tudo certo com o agente.

6. Implantação e integração

Quando estiver satisfeito com seu agente, você poderá implantá-lo facilmente em vários canais usando as integrações do Agent Builder. Você pode incorporá-lo ao seu site, integrá-lo a plataformas conhecidas de mensagens ou até mesmo criar um app dedicado para dispositivos móveis. Também podemos usar a API Agent Builder diretamente em nossos aplicativos cliente da Web, que são abordados neste blog.

7. Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta postagem, siga estas etapas:

  1. No console do Google Cloud, acesse Gerenciar
  2. de recursos do Terraform.
  3. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  4. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

8. Parabéns

Parabéns! Ao integrar o poder de nosso mecanismo analítico personalizado com a interface intuitiva do Agent Builder, criamos um assistente de pesquisa de literatura inteligente para frente, tornando as pesquisas de literatura acessíveis, eficientes e realmente orientadas por significado. Ao combinar os recursos do AlloyDB, da Vertex AI e da Pesquisa Vetorial, demos um grande salto no sentido de tornar as pesquisas contextuais e vetoriais acessíveis, eficientes, realmente orientadas por significado e agnósticas.