DEV Community

Cover image for Dejé de hablar de AI y empecé a construir: Construye un RAG simple con Amazon Bedrock Knowledge Bases.
A. Sinai Rivera
A. Sinai Rivera

Posted on

Dejé de hablar de AI y empecé a construir: Construye un RAG simple con Amazon Bedrock Knowledge Bases.

TL;DR:
En este lab vas a construir, paso a paso, un RAG completo con Amazon Bedrock Knowledge Bases sobre tus propios PDFs en S3, usando Titan Embeddings para crear el índice vectorial y hacer consultas naturales con grounding en tus documentos. En ~25–35 minutos montas la arquitectura en us-east-1, validas respuestas, revisas costos, monitoreo y seguridad, y te llevas un blueprint sencillo para entender GenAI “de verdad” y poder explicarla a otros.

Veremos: Creación del bucket S3, ingestión de documentos, generación de embeddings, configuración del índice vectorial y consultas inteligentes.

Tiempo estimado: 25–35 min

Decidí crear este lab porque quiero entender GenAI de verdad —no solo para un examen, sino para poder explicarlo, documentarlo y ayudar a otros que están empezando como yo.

Este post es parte de mi proceso para crecer en AWS, reforzar mi base en IA, mejorar mi habilidad de enseñar y construir contenido útil para la comunidad técnica.


🧭 Metadatos rápidos

Campo Valor
Categoría CB AI/ML
Servicios AWS Amazon Bedrock, Knowledge Bases, Amazon S3, Titan Embeddings
Requisitos previos Cuenta AWS, permisos para Bedrock + S3, región us-east-1
Costos estimados Bajo (menos de \$0.50)
Arquitectura Ver diagrama abajo

🗺️ Tabla de contenidos (ToC)


💡 ¿Por qué importa?

Hoy casi todas las empresas quieren agregar IA generativa a sus aplicaciones, pero no basta con “preguntarle” a un modelo:

necesitan respuestas basadas en su propio conocimiento, documentos internos, políticas, PDFs, etc.

Eso es RAG.

AWS lo simplifica con Knowledge Bases for Amazon Bedrock, que hace por ti:

  • Extracción
  • Vectorización (Titan Embeddings)
  • Indexación
  • Orquestación de RAG
  • Consultas con grounding seguro

Mi motivación: Este fue uno de los labs que más me costaba crear con sandboxes. Así que lo reconstruí desde cero en una cuenta AWS Free Tier real, y quiero dejar los pasos exactos para que otros no sufran como yo.


🧰 Arquitectura / Qué vas a construir

Diagrama simple del flujo:

📄 **Documentos (PDF/Markdown/TXT)**  
⬇️  
🪣 **S3 Bucket (raw docs)**  
⬇️  
🧠 **Knowledge Base**  
- Titan Embeddings  
- Vector Index  
⬇️  
🤖 **Modelo en Amazon Bedrock** (ej. Claude 3 Haiku)  
⬇️  
💬 **Respuesta aumentada con contexto**
Enter fullscreen mode Exit fullscreen mode

Puntos clave

  • Titan hace los embeddings de forma automática.
  • No necesitas manejar el índice vectorial manualmente (AWS lo gestiona).
  • El modelo genera respuestas basadas en tus documentos, no solamente en lo que ya trae “pre-entrenado”.

✅ Prerrequisitos

  • Cuenta AWS Free Tier
  • Región: us-east-1
  • Amazon Bedrock habilitado (primer uso requiere activarlo)
  • Permisos IAM de laboratorio:
    • AmazonBedrockFullAccess
    • AmazonS3FullAccess

🛠️ Paso a paso

Este lab se realiza 100% desde la consola de AWS.


1) Crear un bucket S3

  1. En tu consola AWS, busca: S3
  2. Clic en Create bucket
  3. Configura:
  • Bucket name:

     kb-sina-rag-lab
    
  • Region: us-east-1

  • Block Public Access: todas ON

  • Versioning: opcional (dejalo off)

  • Encryption: Deja lo que viene por defecto (SSE-S3)

Captura de pantalla del panel de Amazon Bedrock Knowledge Bases mostrando un mensaje que indica la creación exitosa de un nuevo Knowledge Base y la opción para continuar con la configuración.

Captura de pantalla del panel de Amazon S3 mostrando la creación de un bucket nuevo, con campos para asignar el nombre del bucket, región y configuraciones opcionales de seguridad y versionado.


2) Subir documentos

  1. Ve a S3 en tu consola AWS
  2. Abre tu bucket: kb-sina-rag-lab
  3. Haz clic en Upload

Captura de pantalla de la consola de Amazon S3 mostrando un bucket recién creado con la sección “Objects” vacía, lista para subir archivos.

  1. Clic en Add files
  2. Selecciona tus 3 PDFs recién creados

Captura de pantalla de la consola de Amazon S3 mostrando la opción “Upload” dentro de un bucket, con botones para agregar archivos o carpetas y configurar las propiedades de la carga.

  1. Clic en Upload
  2. Espera a que todos aparezcan con “Upload succeeded”

Captura de pantalla del proceso de carga en Amazon S3 mostrando un archivo seleccionado para subir, incluyendo su nombre, tamaño y las opciones de permisos y propiedades antes de confirmar la subida.


3) Crear la Knowledge Base

  1. Ve a Amazon Bedrock en la consola
  2. En el menú lateral, selecciona: Knowledge bases
  3. Clic en Create knowledge base

3.1 Basic settings

  • Knowledge base name: En la pantalla de creación indica el nombre de tu Knowledge base
rag-lab-sina-kb
Enter fullscreen mode Exit fullscreen mode
  • Description: (opcional) RAG Knowledge Base para pruebas de GenAI usando mis documentos en S3.

Captura de pantalla de Amazon S3 mostrando el archivo subido dentro del bucket, con detalles como nombre, fecha de modificación, tamaño y tipo de almacenamiento.

3.2 Data source: Amazon S3.

Captura de pantalla del panel de Amazon Bedrock Knowledge Bases mostrando la sección para seleccionar el origen de datos desde Amazon S3, con opciones para elegir el bucket y configurar el acceso.

  • Bucket: Selecciona kb-sina-rag-lab. Clic next

Captura de pantalla de Amazon Bedrock mostrando la opción para seleccionar el bucket de S3 como fuente de datos, con un menú desplegable que permite elegir el bucket previamente creado.

3.3 Embeddings model: Titan Text Embeddings v2. Este modelo genera los embeddings para el vector store.

Captura de pantalla de Amazon Bedrock mostrando la configuración del rol IAM necesario para que Knowledge Bases acceda a los datos de S3, incluyendo el ARN del rol y las políticas asociadas.

3.4 Vector store: OpenSearch Serverless (auto-configurado). Y deja la configuración automática (es perfecta para este lab).

Captura de pantalla de Amazon Bedrock Knowledge Bases mostrando los detalles del rol IAM creado automáticamente, incluyendo su ARN, políticas adjuntas y permisos otorgados para acceder al bucket de S3.

Knowledge Base creado

Captura de pantalla de Amazon Bedrock mostrando la creación automática de un rol IAM exitoso, con un mensaje de confirmación y opciones para continuar configurando el Knowledge Base.


4) Sincronizar e indexar

  1. En tu pantalla actual, ve abajo a la sección: Data source (1)
  2. Click Sync

Captura de pantalla de Amazon Bedrock Knowledge Bases mostrando el paso para seleccionar el modelo de embeddings, con Titan Embeddings como opción destacada y configuraciones de índice vectorial.

Espera a que el estado cambie a:

  • Sync successful
  • Status: Up to date
  • o simplemente green check ✔️

⏳ Esto puede tardar entre 30 segundos y 2 minutos dependiendo del tamaño de los PDFs.

Captura de pantalla de Amazon Bedrock mostrando la selección del modelo Titan Embeddings y la configuración del tipo de almacenamiento para el índice vectorial dentro del Knowledge Base.


5) Probar tu RAG en la consola

Aquí vas a ver:

  • Cómo la KB busca contexto en tus documentos
  • Cómo selecciona los fragmentos relevantes
  • Cómo el modelo responde usando solo lo que tú subiste
  • Cero alucinaciones (si el documento está claro)

1. En tu pantalla actual (rag-lab-sina-kb)

Busca el botón:Test Knowledge Base (y haz clic). Esto te abrirá una consola de chat simple.

Captura de pantalla del panel de Amazon Bedrock Knowledge Bases mostrando la validación exitosa de la configuración, incluyendo el origen de datos en S3, el modelo de embeddings seleccionado y el tipo de índice vectorial.

📝 Nota importante Activar modelos generativos en Bedrock

Antes de probar la Knowledge Base, asegúrate de tener habilitado al menos un modelo generativo en Amazon Bedrock.

Para usar la pestaña Test de la Knowledge Base, necesitas seleccionar un modelo generativo. En cuentas nuevas de AWS (incluyendo Free Tier), los modelos Titan y Claude pueden no estar disponibles de inmediato.

La opción compatible y disponible por defecto es: Amazon Nova Micro

Captura de pantalla de Amazon Bedrock mostrando la opción “Retrieve and Generate”, con un campo para introducir una consulta y botones para ejecutar la búsqueda usando el Knowledge Base configurado.

Después de habilitarlo, ya podrás probar tus consultas.

2. Escribe un prompt como:

Que dicen los documentos acerca de Bedrock?
Enter fullscreen mode Exit fullscreen mode

Captura de pantalla de Amazon Bedrock Knowledge Bases mostrando el proceso de ingesta de datos en progreso, con indicadores que confirman que el bucket de S3 ha sido conectado y que el índice está siendo construido exitosamente.


3. Verifica que el modelo responde con grounding en tus archivos:

Captura de pantalla de Amazon Bedrock Knowledge Bases mostrando el estado del índice completado, indicando que la ingesta de datos terminó correctamente y que el Knowledge Base está listo para recibir consultas.

Captura de pantalla de Amazon Bedrock mostrando la consola de pruebas del Knowledge Base, con un cuadro de texto para enviar consultas y un área de resultados donde se muestran las respuestas generadas con contexto recuperado.


📊 Observabilidad (CloudWatch)

En este laboratorio trabajamos con OpenSearch Serverless, que es administrado por AWS. A diferencia de OpenSearch tradicional, esta versión no crea log groups automáticamente a menos que habilitemos políticas de logging específicas.

En CloudWatch → Log groups verás que no se generan logs por defecto, lo cual es normal para este tipo de servicio administrado y además ayuda a mantener el laboratorio dentro del Free Tier.

Sin embargo, sí podemos observar actividad del laboratorio en:

✔️ Bedrock Metrics

CloudWatch → Metrics → Bedrock
Aquí se registran las invocaciones del modelo y la latencia de cada llamada.

  • En AWS Console → escribe CloudWatch
  • Menú izquierdo → Metrics
  • Selecciona Bedrock
  • Luego seleccion All Models Lds

Captura de pantalla de la consola de Amazon Bedrock mostrando una prueba de consulta en el Knowledge Base, con una pregunta escrita por el usuario y una respuesta generada que incluye contexto recuperado desde el índice vectorial.

Captura de pantalla de Amazon Bedrock mostrando la sección de resultados de búsqueda del Knowledge Base, donde se visualizan documentos recuperados del bucket S3 junto con sus niveles de relevancia o puntuación.

  • Click en todas las metricas

Captura de pantalla de Amazon Bedrock mostrando la consola del Knowledge Base con opciones para ejecutar nuevas consultas, ver resultados recuperados y explorar el contenido indexado desde S3.

✔️ CloudTrail (auditoría)

En la consola busca CloudTrail

  • Entra en el servicio
  • En el menú izquierdo, selecciona:Event history
  • En la barra de filtros selecciona: Event Source
  • En el buscador escribe: bedrock.amazonaws.com

Captura de pantalla de Amazon Bedrock mostrando la vista final del Knowledge Base configurado, con detalles del estado, fuente de datos en S3, modelo de embeddings utilizado y opciones para realizar consultas y administrar la ingesta de datos.

Esto confirma que la KB está funcionando incluso si los logs de OpenSearch no se generan automáticamente.


🔐 Seguridad y buenas prácticas

Aunque este es un laboratorio simple, es importante seguir buenas prácticas desde el inicio. Aquí están las recomendaciones aplicables específicamente a una Knowledge Base de Bedrock:

  • Nunca expongas tu bucket (mantén Block Public Access ON).
  • Crea roles separados si piensas conectar la KB a aplicaciones.
  • Usa documentos en texto claro cuando sea posible (mejor chunking).

💸 Costos y optimización

Costo estimado del lab:

  • Titan Embeddings → unos centavos por la generación de embeddings (muy barato).
  • Bedrock – Invocations → solo un par de llamadas (menos de 1 centavo cada una).
  • OpenSearch Serverless (Vector Store) → modo on-demand, el costo mínimo posible.
  • Amazon S3 → almacenamiento muy pequeño (tus PDFs y TXT), prácticamente $0.
  • Total aproximado: $0.20–$0.50

🧯 Errores comunes

Síntoma Causa Solución
KB no sincroniza Ruta de S3 incorrecta Revisar bucket y prefijo
No aparecen documentos IAM insuficiente Revisar permisos en rol de KB
Respuestas sin grounding PDFs mal parseados Usar formato TXT/Markdown o PDFs limpios

🚀 Qué sigue

  • Conectar esta KB a un Bedrock Agent
  • Crear una API de RAG con Lambda + API Gateway
  • Integrar identidad con Amazon Cognito

📚 Recursos oficiales

Top comments (0)