Pular para o conteúdo
fernando.moretes.com
BlogEstudosCursosE-booksOpen SourcePodcasts
Loading…
Fernando Azevedo

Arquiteto de TI Especialista

Arquitetura, AWS, IA em produção, sistemas financeiros e FinOps, escritos a partir do que foi operado, com os números.

  • LinkedIn
  • GitHub
  • E-mail

Conteúdo

  • Blog
  • Estudos de arquitetura
  • Cursos
  • E-books
  • Open Source
  • Podcasts
  • Assuntos
  • Trilhas

Ferramentas

  • Well-Architected self-check
  • Arquitetura deste site
  • Números públicos
  • Histórico de estudo

Sobre

  • Comunidade
  • IA Builder
  • Perfil
  • Currículo (CV)
  • Trabalhe comigo
  • Media kit
  • RSS do blog
  • RSS dos estudos
  • Artigos narrados (podcast)
  • llms.txt
  • Termos, privacidade e uso de IA

(c) 2026 Fernando Francisco Azevedo

Trilha Arquiteto de IA/Knowledge Bases e RAG gerenciado na AWS
Módulo 4 · Arquitetura na AWS· Aula 18/22

Knowledge Bases e RAG gerenciado na AWS

Como montar o pipeline RAG da aula 06 com serviços gerenciados, incluindo busca vetorial.

5 min de leitura

Escolha como aprender

combine como quiser

Dica: o vídeo é um resumo visual rápido; o áudio e o texto trazem a aula completa. Terminar o áudio ou o vídeo, ou passar no quiz, já conta a aula como concluída.

Assista a esta aula
Narrado por Fernando AzevedoMP4PDF
Ouça esta aula
0:009:35
Velocidade
Baixar

Na aula 06 você entendeu o que é RAG. Na aula 04 você viu como embeddings transformam texto em vetores pesquisáveis. Agora vamos fechar o ciclo: montar esse pipeline inteiro na AWS sem gerenciar servidor de embedding, índice vetorial ou orquestrador, usando Amazon Bedrock Knowledge Bases como peça central.

O que o Bedrock Knowledge Bases faz por você

Uma Knowledge Base (KB) no Bedrock é o pipeline RAG da aula 06 empacotado como serviço gerenciado. Você aponta uma fonte de dados, um bucket S3, por exemplo, e o serviço cuida de tudo: lê os documentos, divide em chunks, gera embeddings com o modelo que você escolher (Titan Embeddings, Cohere, etc.), armazena os vetores num vector store e expõe um endpoint de recuperação semântica.

O fluxo tem quatro etapas internas:

  1. Ingestão: o serviço lê os arquivos da fonte (PDF, DOCX, HTML, CSV, Confluence, SharePoint…).
  2. Chunking: o texto é dividido em pedaços, tamanho fixo, por sentença, hierárquico ou semântico. Você escolhe a estratégia.
  3. Embedding: cada chunk vira um vetor usando o modelo de embedding configurado.
  4. Indexação: os vetores são gravados no vector store escolhido.

Na hora da consulta, a KB recebe a pergunta do usuário, gera o embedding da pergunta com o mesmo modelo, faz a busca por similaridade no índice e devolve os chunks mais relevantes, prontos para serem injetados no prompt do LLM. Você não escreve nenhum desse código.

Pipeline RAG gerenciado: da fonte ao agente

Fluxo completo de ingestão e recuperação com Bedrock Knowledge Bases. Setas sólidas = caminho de ingestão (offline). Setas tracejadas = caminho de consulta (runtime).

📦 Fontes de dados
  • Amazon S3 · PDF, DOCX, HTML
  • Confluence / SharePoint · conectores nativos
🟧 AWS: Bedrock Knowledge Base
  • Ingestão · lê e divide em chunks
  • Embedding · Titan / Cohere
  • Knowledge Base · endpoint de recuperação
🗄️ Vector Store
  • OpenSearch Serverless · padrão recomendado
  • Aurora PostgreSQL · (pgvector)
  • Pinecone / Redis · options externas
🤖 Consumidor
  • Bedrock Agent · ou chamada direta
  • LLM (Claude, Llama…) · gera resposta final

Onde os vetores ficam: escolhendo o vector store

O Bedrock Knowledge Bases suporta múltiplos backends de vetores. A escolha impacta custo, latência e operação.

OpenSearch Serverless (AOSS) é a opção padrão e a que a AWS mais integra. Você não provisiona shards nem instâncias, paga por OCU (OpenSearch Compute Unit) consumida. Para a maioria dos projetos com volume moderado de documentos, é o caminho de menor atrito. O ponto de atenção: o custo mínimo por collection pode surpreender em ambientes de dev/test que ficam ociosos.

Aurora PostgreSQL com pgvector faz sentido quando você já tem dados relacionais na mesma base. A busca vetorial fica ao lado dos seus dados transacionais, sem hop extra. A desvantagem é que você gerencia o cluster e o pgvector tem limites de escala comparado a engines dedicadas.

Pinecone, Redis Enterprise e MongoDB Atlas são opções externas suportadas via conector. Úteis se você já tem contrato ou time familiarizado com esses serviços, mas adicionam uma dependência fora da AWS.

Minha recomendação padrão: comece com OpenSearch Serverless. É o caminho de menor configuração e tem boa integração com o restante do Bedrock. Migre para pgvector se o custo do AOSS não fechar ou se você precisar de joins com dados relacionais.

FA
Na prática: OpenSearch Serverless em dev vs prod
Arquiteto de TI Especialista

Na prática, o maior erro que vejo é criar uma collection AOSS para cada ambiente (dev, staging, prod) sem pensar no custo mínimo por collection. O AOSS cobra mesmo quando não há queries. Para dev, considere usar uma única collection com namespaces separados por índice, ou trocar por pgvector local com Docker enquanto desenvolve. Reserve o AOSS para staging e prod, onde o custo se justifica pela escala e pela integração nativa com o Bedrock.

Como o agente consome a Knowledge Base

Na aula 07 você viu tool calling: o modelo decide quando chamar uma ferramenta externa. Uma Knowledge Base no Bedrock é exatamente isso para um Bedrock Agent, ela aparece como uma ferramenta nativa, sem você precisar escrever a função de recuperação.

Quando você associa uma KB a um agente no Bedrock, o agente ganha automaticamente a capacidade de fazer perguntas à base durante o loop ReAct (aula 11). O orquestrador interno decide quando a pergunta do usuário exige busca na KB, dispara a consulta, recebe os chunks e os injeta no contexto antes de chamar o LLM.

Você também pode chamar a KB diretamente via API: RetrieveAndGenerate ou Retrieve separados, sem precisar de um agente completo. Retrieve devolve os chunks brutos; RetrieveAndGenerate faz a busca e já chama o LLM, entregando a resposta final. Use Retrieve quando quiser controlar o prompt você mesmo ou quando precisar pós-processar os chunks antes de enviar ao modelo.

Essa separação entre recuperação e geração é importante: ela permite que você avalie (aula 09) cada etapa de forma independente, qualidade da recuperação separada da qualidade da geração.

Gerenciado vs. RAG próprio: quando usar cada um

CritérioBedrock KB (gerenciado)RAG próprio (LangChain, LlamaIndex…)
Tempo para funcionarHoras (console ou IaC)Dias a semanas
Controle de chunking/embeddingLimitado às opções do serviçoTotal, qualquer estratégia
Manutenção operacionalQuase zeroAlta (infra, versões, patches)
Portabilidade (multi-cloud)Baixa, acoplado à AWSAlta, roda em qualquer lugar
Custo em escalaPrevisível, mas com mínimos por recursoOtimizável, mas exige engenharia

FinOps: os principais drivers de custo

Embedding na ingestão: você paga por token processado ao gerar vetores. Documentos grandes ou re-ingestões frequentes aumentam esse custo, controle a frequência de sync.
Vector store ocioso: OpenSearch Serverless cobra por OCU mesmo sem queries. Em dev/test, desligue ou consolide collections para evitar custo fixo desnecessário.
Embedding na consulta: cada pergunta do usuário gera um embedding. Com alto volume de queries, o custo de embedding de consulta pode superar o de ingestão.
Tokens do LLM: os chunks recuperados são injetados no contexto e cobrados como tokens de entrada. Chunks maiores = mais tokens = maior custo por query.
Reindexação: mudanças na estratégia de chunking exigem re-ingestão completa. Defina a estratégia antes de ir para produção.

Dúvidas frequentes

Preciso de um agente para usar Knowledge Bases?

Não. Você pode chamar a KB diretamente via API (Retrieve ou RetrieveAndGenerate) de qualquer aplicação. O agente é opcional, ele só adiciona orquestração automática e o loop ReAct.

O que acontece quando atualizo um documento no S3?

A KB não sincroniza automaticamente por padrão. Você precisa disparar uma operação de sync (manual, agendada via EventBridge, ou via API). Durante o sync, os documentos alterados são re-ingeridos e os vetores antigos substituídos.

Posso usar múltiplas Knowledge Bases num mesmo agente?

Sim. Cada KB aparece como uma ferramenta separada para o agente. Você pode ter uma KB para documentação técnica e outra para políticas internas, por exemplo. O agente decide qual consultar com base no contexto da pergunta.

Qual a diferença entre chunking fixo e semântico?

Chunking fixo divide o texto em blocos de N tokens com overlap configurável, simples e previsível. Chunking semântico usa um modelo para identificar fronteiras naturais de significado, gerando chunks mais coerentes mas com custo de processamento maior. Para a maioria dos casos, chunking fixo com overlap de 20% é um bom ponto de partida.

Quando usar o gerenciado, e quando não usar

✅ Default para projetos AWS, revise se

Bedrock Knowledge Bases é a escolha certa para a maioria dos projetos que já rodam na AWS e precisam de RAG sem montar pipeline do zero. O ganho em velocidade de entrega é real. O custo de flexibilidade também é real: se você precisar de chunking customizado, re-rankers, ou lógica de recuperação híbrida complexa, vai bater no teto do serviço gerenciado mais cedo do que espera. Minha regra: comece gerenciado, meça, e só construa o próprio quando tiver evidência concreta de que o gerenciado não resolve, não por antecipação.

Quiz

Checagem rápida

1. O que uma Knowledge Base gerenciada do Bedrock entrega?

Referências

Amazon Bedrock Knowledge Bases: Developer GuideSupported vector stores for Knowledge BasesAmazon OpenSearch Serverless: Vector engineBuild a RAG-based application with Knowledge Bases (AWS Blog)Chunking strategies for Bedrock Knowledge BasesRetrieveAndGenerate API reference
Concluir e ir para a próxima Aula anterior