1. Antes de começar
Veja a seguir algumas observações antes de continuar este codelab.
Pré-requisitos
- Noções básicas sobre LLMs
- Noções básicas sobre sistemas RAG
O que você vai aprender
- Como criar um mecanismo de pesquisa de qualidade do Google que responda às suas perguntas usando os dados enviados por você
- Como criar um repositório de dados da Vertex AI
- Como criar agentes da Vertex AI
- Como aproveitar o Cloud Run para implantar o aplicativo
O que é necessário
- Uma conta do Google Cloud
- um projeto do Google Cloud;
- Um ambiente de desenvolvimento integrado com terminal
Introdução
A Pesquisa Google é uma ferramenta poderosa que usa um índice enorme de páginas da Web e outros conteúdos para fornecer resultados relevantes às consultas dos usuários. Isso é possível graças a uma técnica chamada Geração Aumentada de Recuperação (RAG, na sigla em inglês), que é uma técnica fundamental na IA moderna.
A RAG funciona primeiro recuperando passagens relevantes de um corpus de documentos. Isso é feito usando vários métodos, como correspondência de palavras-chave, semelhança semântica e aprendizado de máquina. Depois que os trechos relevantes são recuperados, eles são usados para gerar um resumo ou uma resposta à consulta do usuário.
O principal benefício da RAG é que ela permite que os modelos de linguagem evitem alucinações. A alucinação é um termo usado para descrever a geração de texto que não é apoiada pelas evidências no corpus de documentos. Isso pode acontecer quando os modelos de linguagem não conseguem distinguir entre informações relevantes e irrelevantes.
A RAG ajuda a evitar a alucinação, garantindo que o texto gerado seja sempre baseado em evidências do corpus de documentos. Isso faz com que seja uma fonte de informações mais confiável.
A RAG é uma técnica poderosa que está sendo usada em diversos aplicativos, incluindo mecanismos de pesquisa, chatbots e sistemas de resposta a perguntas. É provável que ele desempenhe um papel cada vez mais importante na IA nos próximos anos.
Confira alguns exemplos de como a RAG está sendo usada na prática:
- Muitos sistemas de pesquisa usam a RAG para gerar resultados de pesquisa relevantes para a consulta do usuário.
- Os chatbots usam RAG para gerar respostas informativas e envolventes nas perguntas dos usuários.
- Os sistemas de respostas a perguntas usam o RAG para gerar respostas precisas e abrangentes às perguntas dos usuários.
A RAG é uma técnica versátil que pode ser usada para gerar texto em vários domínios e aplicativos. É uma ferramenta poderosa que está ajudando a tornar a IA mais inteligente e informativa.
Neste codelab, vamos criar um sistema de RAG que pode ajudar a responder às suas perguntas com o corpus fornecido por você. A plataforma RAG pronta para uso chamada Vertex AI para Pesquisa/Agent Builder ajuda a acelerar a criação de sistemas RAG, evitando o esforço manual de coletar documentos, analisar, dividir, gerar embeddings, expandir consultas, recuperar candidatos e classificar. Embora o sistema RAG pronto para uso ajude você a começar rapidamente, o Google Cloud também fornece APIs discretas para cada processo de criação de sistemas RAG próprios, o que ajuda a ajustar seus sistemas RAG para atender aos requisitos do seu negócio.
O que você vai criar
Ao final deste codelab, você terá um sistema RAG funcional implantado que pode ajudar a responder suas perguntas com informações factuais, fundamentadas e citadas com referências corretas.
Você também vai entender melhor como usar as APIs de pesquisa da Vertex AI para criar essa arquitetura de RAG no Google Cloud. Além disso, você também vai aprender a implantar esse aplicativo de arquitetura RAG (com front-end e back-end) no Cloud Run, que é uma plataforma sem servidor de implantação de aplicativos como contêineres no Google Cloud.
Como o aplicativo funciona
- Fazer upload dos seus dados: os usuários podem fazer upload do próprio conjunto de dados, por exemplo, um arquivo PDF como entrada.
- Fazer consultas na barra de pesquisa: os usuários podem fazer perguntas na barra de pesquisa com base no corpus de dados enviados.
- Recuperar respostas: os usuários podem recuperar os resultados da pesquisa/candidatos e verificar a veracidade/fundamentação da resposta recuperada com base na relevância da consulta.
2. Configuração do ambiente
- No console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
- Verifique se o faturamento está ativado para seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
- Você vai usar o Cloud Shell, um ambiente de linha de comando em execução no Google Cloud. Para acessar, clique em "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.
- Depois de se conectar ao Cloud Shell, verifique se você já está autenticado e se o projeto está definido como seu ID usando o seguinte comando:
gcloud auth list
- Execute o comando a seguir no Cloud Shell para confirmar que o comando gcloud conhece seu projeto.
gcloud config list project
- Se o projeto não estiver definido, use este comando:
gcloud config set project <YOUR_PROJECT_ID>
- Verifique se as seguintes APIs estão ativadas:
- Cloud Run
- Vertex AI
- Cloud Storage
A alternativa ao uso do comando gcloud é acessar o console usando este link. Consulte a documentação para conferir o uso e os comandos do gcloud.
3. Etapa 1: criar um bucket do GCP
- Acesse o console e, na barra de pesquisa, digite "Cloud Storage".
- Selecione o Cloud Storage nos resultados sugeridos.
- Clique em "Criar bucket".
- Forneça um nome globalmente exclusivo para o bucket
- Clique em "Continuar".
- Em "Tipo de local", selecione "Multirregional".
- No menu suspenso, selecione a opção
us (multiple regions in United States)
.
- Clique em "Criar bucket".
- Depois que o bucket for criado, faça o upload do
alphabet-metadata.json
do repositório.
4. Etapa 2: criar um repositório de dados da Vertex AI
- Na barra de pesquisa da página do console, digite "Vertex AI Agent Builder".
- Selecione o primeiro produto, "Agent Builder"
- Na página do Agente de construção, clique em "Repositórios de dados", conforme mostrado na barra de navegação à esquerda.
- Clique em "Criar repositório de dados"
- Selecione o Cloud Storage como repositório de dados
- Clique em "Selecionar" abaixo do ícone do Cloud Storage
- Na guia abaixo da opção "Pasta", clique no botão "Procurar".
- Selecione o bucket criado na Etapa 1
- Nas opções abaixo, selecione "Documentos não estruturados com links (JSONL com metadados)".
- Clique em Continuar
- Na página "Configuração", selecione "global" como o local do seu repositório de dados.
- Fornecer um nome identificável para o repositório de dados
- Clique em "Criar".
Brownie:
- Logo acima do botão "Criar", você encontra a opção de processamento do documento.
- Você pode testar vários analisadores, como digital, OCR ou de layout
- Você também pode ativar o agrupamento avançado e definir seus próprios limites de tamanho de bloco personalizados.
5. Etapa 3: criar um agente
- Depois que o repositório de dados for criado, clique no app na barra de navegação à esquerda e escolha "Apps".
- Clique no botão "Create App" (Criar app).
- Selecione o tipo de app como "Pesquisa". Você também pode criar agentes, bots de conversação, recomendações etc.
- Selecione "Genérico" em "Conteúdo". Você também pode selecionar "Mídia" ou "Recomendações" com base no repositório de dados e no tipo de dados e sistemas que você quer criar.
- Ative a edição empresarial e os recursos avançados do LLM.
- Informe o nome do aplicativo
- Informe o nome da sua empresa
- Selecione a região como "global"
- Clique em "Continuar"
- Na próxima tela, selecione o repositório de dados que você criou na Etapa 2
- Clique em "Criar".
6. Etapa 4: colocar o aplicativo no Docker
- Abrir o terminal no console do Google Cloud
- Clone o repositório <sample_repository_link> com o seguinte comando
git clone https://github.com/kkrishnan90/vertex-ai-search-agent-builder-demo
- Altere o diretório e navegue até o repositório clonado usando o seguinte comando
cd vertex-ai-search-agent-builder-demo
- Estrutura da pasta
- Back-end: terá uma implementação de API baseada em Python que ajudará a criar endpoints restauráveis para interação com seu front-end.
- Front-end: contém um aplicativo baseado em reações e serve a interface. Isso também vai conter as chamadas necessárias no nível do aplicativo para o back-end por endpoints REST.
- Dockerfile: contém todos os comandos relevantes para criar um contêiner do Docker.
- Na raiz do diretório do repositório, execute o seguinte comando, que ajudará a criar uma imagem Docker. Observação: use a sinalização
- - platform
ao criar contêineres do Docker em Macbooks que usam chips do Apple Silicon, como M1, M2 etc. Essa sinalização não será necessária se você estiver criando usando uma máquina Windows ou se sua arquitetura de CPU for baseada em Intel.
docker build --platform linux/amd64 -t your-image-name .
- Depois que o build do contêiner do Docker for concluído, execute o comando a seguir para marcar o contêiner com as tags corretas e garantir que você forneça uma versão da imagem. Lembre-se de que pode haver várias versões do aplicativo e, portanto, várias versões como tags em contêineres do Docker. Garantir que a versão estável mais recente seja sempre usada é uma boa abordagem recomendada do ponto de vista de DevOps.
docker tag your-image-name REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG
- Depois que a inclusão de tags na imagem do contêiner do Docker for concluída, envie a imagem para o Google Artifact Registry (GAR). O GAR é uma plataforma totalmente gerenciada do Google para ajudar a gerenciar e controlar a versão dos contêineres do Docker. Execute o comando a seguir, que vai enviar o contêiner marcado acima para o GAR. Para mais informações, consulte o link a seguir [ https://cloud.google.com/artifact-registry/docs/docker/pushing-and-pulling]
docker push REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG
7. Etapa 5: implantar o aplicativo no Cloud Run
- Minimize o terminal. Na barra de pesquisa do console do Google Cloud, procure o Cloud Run.
- Clique no produto do Cloud Run sugerido.
- Clique em "Criar serviço"
- Na próxima página, verifique se a opção "Implantar uma revisão de uma imagem de contêiner atual" está selecionada.
- Abaixo, clique em "Selecionar".
- Uma barra de navegação vai aparecer à direita.
- Verifique se o Artifact Registry está selecionado como a guia
- Verifique se o projeto está selecionado corretamente.
- Clique na seta para abrir o acordeão no link da imagem do contêiner implantado.
- Selecione a tag do contêiner e expanda (sempre selecione as mais recentes implantadas, com as tags mais recentes corretas, ou seja, v1, v2 etc.).
- Clique na imagem do contêiner mostrada abaixo do nome da tag.
- Na área "Configurar"
- Forneça um nome de serviço para seu aplicativo do Cloud Run. Isso vai fazer parte do URL quando você implantar o aplicativo no Cloud Run
- Selecione a região apropriada (neste caso, us-central1 ou qualquer opção de sua escolha).
- Em "Autenticação"
- Verifique se a opção "Permitir invocações não autenticadas" está selecionada.
- Em "Alocação de CPU e preços"
- Selecione "A CPU é alocada somente durante o processamento da solicitação"
- Modifique o escalonamento automático de serviços para 1 (para fins de produção, é recomendável ter um número mínimo de instâncias em execução para lidar com seu tráfego diário, ou seja, deixar 0, ou seja, zero)
- Defina o "Controle de entrada" como "Todos" para permitir que o tráfego da Internet acesse seu aplicativo
- Clique em "Criar".
- Isso vai implantar uma instância do Cloud Run e o provisionamento da mesma vai levar alguns minutos
- Depois de implantado, você verá o URL disponível publicamente para acessar o aplicativo da Web
8. Como funciona
- Na página inicial do aplicativo, clique no botão "Upload Document".
- Fazer upload do arquivo PDF
- Assim que o upload for concluído
- Clique na barra de pesquisa na parte de cima da página da Web.
- Comece a pesquisar consultas relacionadas ao documento enviado
- Depois de digitar sua consulta e clicar em "Pesquisar", todas as respostas relevantes do documento que você acabou de enviar vão aparecer.
- Você pode testar o código de back-end e adicionar mais configurações, como esta:
- Como adicionar snippets
- Adicionar segmentos de extração
- Adicionando respostas
- Ajuste dos resultados top-k para ajudar o LLM a resumir a resposta (algo como a visão geral da IA na Pesquisa Google)
- Como complemento, você também pode adicionar tags de metadados ao fazer upload do documento. Isso vai ajudar a gerar facetas e categorias filtráveis.
9. Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste codelab, siga estas etapas:
- No console do Google Cloud, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
- Também é possível acessar o Cloud Run no console, selecionar o serviço que você acabou de implantar e excluir.
10. Parabéns
Parabéns! Você criou um sistema de RAG rápido pronto para uso usando os modelos de última geração do Google e forneceu resultados de qualidade do Google às suas consultas de pesquisa. Este codelab é apenas para fins de demonstração. Mais segurança e proteções precisam ser configuradas para casos de uso de produção. O link para o repositório completo está aqui. Com o Google Cloud e apenas cinco etapas, podemos gerar um sistema de RAG completo que oferece resultados do Google de qualidade em poucos minutos. À medida que a IA generativa e os modelos de linguagem grandes evoluem, a criação desses sistemas de RAG também nos ajuda a evitar as armadilhas de alucinações e informações não citadas.
Embora isso seja apenas um ponto de partida, podemos fazer maravilhas com as APIs DIY RAG totalmente personalizáveis, que oferecem ainda mais transparência, potência e eficiência para lidar com cada parte do processo do pipeline de forma eficaz.