Semana 3 · Módulo 3 de 11

Recuperación aumentada (RAG) a fondo

Aprenderás a diseñar el mecanismo de recuperación que alimenta a un modelo con tus propios datos: chunking, embeddings, búsqueda semántica e híbrida, filtros de metadatos, reranking, transformación de consultas y GraphRAG, con Amazon Bedrock Knowledge Bases como pieza central. Es el task statement 1.5 y uno de los temas que más preguntas genera en el examen.

⏱ ~16 h de estudioTask statements: 1.5
Al terminar este módulo sabrás:
  • Explicar el flujo RAG completo, de la ingesta a las citas, y decidir entre RAG, fine-tuning y prompt largo
  • Elegir estrategia de chunking y modelo de embeddings según el contenido y el almacén vectorial
  • Configurar Amazon Bedrock Knowledge Bases (gestionada y del cliente), sus fuentes de datos y su sincronización
  • Usar Retrieve y RetrieveAndGenerate con filtros de metadatos, búsqueda híbrida, reranking y descomposición de consultas
  • Reconocer cuándo aplicar GraphRAG con Amazon Neptune Analytics y qué ha pasado con Amazon Kendra y Amazon Q Business
  • Exponer la recuperación de forma estándar mediante function calling, MCP y APIs
Índice del módulo

Reparto de la semana

Día Qué hacer Tiempo
Lunes Secciones 1-3: qué es RAG, el flujo completo y la tabla RAG / fine-tuning / prompt largo 2 h
Martes Secciones 4-6: chunking, embeddings y almacenes vectoriales para recuperación 2,5 h
Miércoles Sección 7 (7.1-7.6): Knowledge Bases, fuentes, sincronización, parsing y APIs 2,5 h
Jueves Lab 05: Knowledge Base con S3 Vectors 2 h
Viernes Sección 7 (7.7-7.10): filtros, búsqueda híbrida, reranking y consultas; secciones 8-12 2,5 h
Sábado Lab 06: RAG avanzado (metadatos, reranking, descomposición y evaluación rápida) 2,5 h
Domingo Test del módulo, tarjetas y repaso de las «Trampas típicas» 2 h

Por qué importa

Un modelo fundacional (FM, foundation model) solo sabe lo que vio durante su entrenamiento: no conoce tus manuales internos, ni el catálogo de hoy, ni la normativa que cambió el mes pasado. Si le preguntas por ello, o dice que no lo sabe o, peor, se lo inventa con total seguridad (una alucinación, hallucination).

RAG (Retrieval Augmented Generation, generación aumentada por recuperación) resuelve eso sin reentrenar el modelo: antes de preguntar al modelo, buscas los fragmentos relevantes de tus documentos y se los pegas en el prompt como contexto. El modelo responde apoyándose en ellos y puede citar de dónde sale cada afirmación.

El task statement 1.5 (Design retrieval mechanisms for FM augmentation) pide seis habilidades: segmentar documentos, elegir embeddings, desplegar búsqueda vectorial, construir búsquedas avanzadas (híbrida, reranking), tratar consultas complejas y ofrecer un acceso estándar a la recuperación. Además, RAG reaparece en seguridad (grounding para reducir alucinaciones, 3.1.3), en rendimiento (4.2.2), en evaluación (5.1.5-5.1.6) y en troubleshooting (5.2.4). Si dominas este módulo, tienes una parte grande del examen encarrilada.

1. RAG desde cero: vocabulario imprescindible

Antes de ver servicios, fija estos términos. Aparecerán en inglés en el examen.

Término Qué es Ejemplo
Chunk (fragmento) Trozo de un documento que se indexa y se recupera por separado Un párrafo de 300 tokens del manual de vacaciones
Chunking / document segmentation Proceso de partir documentos en chunks Cortar cada 300 tokens con un 20 % de solapamiento
Token Unidad mínima que procesa el modelo (≈ ¾ de palabra en inglés; en español algo menos) «vacaciones» puede ser 2-3 tokens
Embedding Vector de números que representa el significado de un texto [0,012, -0,33, …] con 1.024 posiciones
Embedding model Modelo que convierte texto (o imagen) en embeddings Amazon Titan Text Embeddings V2
Vector store / vector index Base de datos que guarda vectores y busca los más parecidos Amazon S3 Vectors, OpenSearch, Aurora con pgvector
Similarity search / semantic search Buscar vectores cercanos (coseno, euclídea) al vector de la pregunta «días libres» encuentra «vacaciones»
Keyword search / lexical search Buscar por coincidencia de palabras (BM25) Encuentra el código exacto «ERR-4012»
Hybrid search Combina semántica y palabras clave Útil con jerga + códigos
Top-k / numberOfResults Cuántos chunks se recuperan 5 por defecto en Knowledge Bases
Reranking Segunda ordenación de los resultados con un modelo más preciso Amazon Rerank 1.0, Cohere Rerank 3.5
Grounding Anclar la respuesta del modelo a fuentes concretas Responder «solo con el contexto»
Citations / source attribution Referencias a los documentos usados URI de S3 del PDF y fragmento
Context window Máximo de tokens (entrada + salida) que el modelo puede manejar Nova Micro: 128K tokens

La idea clave: un embedding coloca textos con significado parecido cerca en un espacio de muchas dimensiones. «¿Cuántos días libres tengo?» y «Política de vacaciones: 23 días laborables» quedan próximos aunque no compartan palabras. Eso es lo que la búsqueda por palabras clave no consigue.

2. El flujo RAG completo

RAG tiene dos fases que ocurren en momentos distintos: la ingesta (ingestion, en diferido, cada vez que cambian los documentos) y la consulta (query time, en cada pregunta del usuario).

flowchart LR
  subgraph ING["Ingesta (offline, al sincronizar)"]
    A["Documentos en S3, SharePoint, Confluence..."] --> B["Parsing: extraer texto, tablas e imágenes"]
    B --> C["Chunking: partir en fragmentos"]
    C --> D["Embeddings: modelo de embeddings"]
    D --> E[("Índice vectorial + texto + metadatos")]
  end
  subgraph QRY["Consulta (online, en cada pregunta)"]
    Q["Pregunta del usuario"] --> QT["Transformación de la consulta (opcional)"]
    QT --> QE["Embedding de la pregunta"]
    QE --> R["Recuperación top-k + filtros de metadatos"]
    E -.-> R
    R --> RR["Reranking (opcional)"]
    RR --> AU["Aumentación: prompt = instrucciones + chunks + pregunta"]
    AU --> G["Generación con el FM"]
    G --> CI["Respuesta con citas"]
  end

Paso a paso, con lo que puede fallar en cada uno:

  1. Ingesta de fuentes. Un conector lee los documentos (S3, SharePoint, Confluence, web…). Fallo típico: documentos sin permisos o formatos no admitidos que se saltan en silencio.
  2. Parsing. Se extrae el texto. Un PDF escaneado o con tablas complejas necesita un parser avanzado (un FM o Bedrock Data Automation); el parser por defecto solo saca texto.
  3. Chunking. Se corta en fragmentos. Si los chunks son enormes, diluyes la relevancia y gastas tokens; si son diminutos, pierdes contexto.
  4. Embeddings. Cada chunk se convierte en un vector con el mismo modelo que luego usarás para la pregunta. Cambiar de modelo obliga a reindexar todo.
  5. Índice. Se guarda vector + texto + metadatos (fecha, departamento, cliente…). Los metadatos permiten filtrar después.
  6. Recuperación. La pregunta se convierte en vector y se buscan los k chunks más cercanos, opcionalmente filtrando por metadatos y combinando con palabras clave (híbrida).
  7. Reranking. Un modelo reranker reordena los candidatos leyendo pregunta y chunk juntos; mejora la precisión de los primeros puestos.
  8. Aumentación. Se construye el prompt: instrucciones («responde solo con el contexto; si no está, dilo»), los chunks recuperados y la pregunta.
  9. Generación. El FM redacta la respuesta.
  10. Citas. Se devuelven las referencias (documento, ubicación, fragmento) para que el usuario verifique. Es la base de la transparencia (3.4.1) y de la verificación de exactitud (3.1.3).

3. RAG, fine-tuning o prompt largo: tabla de decisión

Hay tres formas de que un modelo «sepa» algo que no sabía. El examen las enfrenta constantemente.

  • Prompt largo (long context o context stuffing): metes el documento entero en el prompt en cada llamada. Sencillo, pero pagas todos esos tokens cada vez y está limitado por la ventana de contexto.
  • RAG: recuperas solo lo relevante y lo pegas en el prompt. Conocimiento actualizable al instante (basta con reindexar), con citas.
  • Fine-tuning (ajuste fino) o destilación: reentrenas el modelo con ejemplos para cambiar su comportamiento: estilo, formato, tono, vocabulario de dominio, tarea muy específica. No es buena forma de meter hechos que cambian.
Criterio Prompt largo RAG Fine-tuning
Datos que cambian a diario Posible, pero caro Sí, ideal No (hay que reentrenar)
Volumen de conocimiento Pequeño (cabe en la ventana) Grande (miles o millones de documentos) Grande, pero «difuminado» en pesos
Citas y trazabilidad Parcial Sí, nativas No
Permisos por usuario o cliente Tú filtras qué metes Sí, filtros de metadatos o ACL No (el modelo lo «sabe» todo)
Cambiar estilo, tono o formato fijo Con instrucciones No es su objetivo Sí, ideal
Coste inicial Nulo Bajo-medio (indexar) Alto (datos etiquetados, entrenamiento, alojamiento)
Coste por consulta Alto (muchos tokens) Medio Bajo en tokens, pero el modelo personalizado suele requerir despliegue específico
Operativa Mínima Baja con servicio gestionado Alta (pipelines, versiones, evaluación)
Riesgo de alucinación sobre hechos Bajo si cabe todo Bajo, con grounding Medio-alto

Reglas rápidas para el examen:

  • «Documentos internos que cambian con frecuencia», «sin reentrenar», «respuestas con fuentes» → RAG.
  • «El modelo debe adoptar el estilo de la marca» o «formato de salida muy específico que el prompt no consigue» → fine-tuning (se ve en el módulo 06).
  • «Pocos documentos pequeños, prototipo rápido, un único usuario» → prompt largo o chat with your document de Knowledge Bases (sin configurar almacén).
  • Combinaciones válidas: fine-tuning para el tono + RAG para los hechos.

4. Segmentación de documentos (chunking)

Skill 1.5.1. El tamaño y la forma del chunk deciden la calidad de la recuperación más que casi cualquier otro ajuste.

4.1 Por qué importa el tamaño

  • Chunk pequeño: embedding muy preciso (habla de una sola cosa), pero puede faltar contexto para responder («el plazo es de 30 días»… ¿de qué?).
  • Chunk grande: más contexto, pero el embedding mezcla varios temas y «pierde nitidez»; además, cada chunk recuperado consume más tokens del prompt.
  • Solapamiento (overlap): repetir un trozo del final del chunk anterior al inicio del siguiente evita cortar una idea por la mitad.

4.2 Estrategias de Amazon Bedrock Knowledge Bases

Estrategia (API) Cómo funciona Cuándo elegirla Ojo
Por defecto Chunks de unos 300 tokens respetando frases completas Empezar; texto general Poco control
FIXED_SIZE Tú fijas maxTokens y overlapPercentage Documentos homogéneos; quieres control predecible Puede cortar secciones lógicas
HIERARCHICAL Chunks hijo pequeños para buscar; al recuperar se sustituyen por su chunk padre, más grande Manuales largos y estructurados: precisión al buscar + contexto al generar Devuelve menos resultados de los pedidos (varios hijos comparten padre); no recomendado con S3 Vectors por el límite de metadatos
SEMANTIC Corta donde cambia el significado entre frases (parámetros: tokens máximos, buffer size, breakpoint percentile threshold) Textos sin estructura clara, con cambios de tema Coste extra: usa un FM durante la ingesta
NONE Cada fichero es un chunk Ya has troceado tú (p. ej., una FAQ por fichero) o usas una Lambda de chunking propia Sin número de página en citas

Detalles verificados que suelen preguntarse:

  • La estrategia de chunking no se puede cambiar después de crear la fuente de datos (data source). Hay que crear otra fuente o reindexar.
  • Con chunking jerárquico, numberOfResults se refiere a los chunks hijo; como varios hijos se sustituyen por el mismo padre, puedes recibir menos resultados.
  • Para contenido multimodal (audio, vídeo, imágenes) con Nova Multimodal Embeddings, el troceado ocurre en el modelo de embeddings (duración de segmento configurable); con el parser de BDA, primero se convierte a texto y luego se aplica el chunking de texto.

4.3 Chunking personalizado con Lambda

Si ninguna estrategia te sirve (por ejemplo, quieres cortar un contrato por cláusulas numeradas, o un código fuente por funciones), Knowledge Bases permite una transformación personalizada con Lambda (custom transformation) en el paso POST_CHUNKING:

  • Eliges NONE como estrategia y tu Lambda hace todo el chunking; o
  • Eliges una estrategia nativa y tu Lambda solo añade metadatos por chunk (los metadatos de chunk prevalecen sobre los de fichero si coinciden).
  • La Lambda lee y escribe los lotes en un bucket S3 intermedio (intermediateStorage).
"vectorIngestionConfiguration": {
  "chunkingConfiguration": { "chunkingStrategy": "NONE" },
  "customTransformationConfiguration": {
    "intermediateStorage": { "s3Location": { "uri": "s3://mi-bucket-intermedio/" } },
    "transformations": [{
      "stepToApply": "POST_CHUNKING",
      "transformationFunction": {
        "transformationLambdaConfiguration": { "lambdaArn": "arn:aws:lambda:eu-central-1:111122223333:function:chunker-clausulas" }
      }
    }]
  }
}

Si montas tu propio pipeline sin Knowledge Bases (por ejemplo, Step Functions + Lambda + OpenSearch), el chunking de tamaño fijo en Lambda es una función de pocas líneas; el jerárquico basado en estructura se implementa leyendo encabezados (Markdown, HTML, estructura que devuelve Textract o BDA) y generando chunks padre-hijo con un identificador común en los metadatos.

4.4 Tabla de decisión de chunking

Contenido Estrategia recomendada
FAQ: una pregunta-respuesta por entrada Una entrada por fichero + NONE, o fijo pequeño
Manuales técnicos largos con capítulos HIERARCHICAL (salvo en S3 Vectors) o Lambda por secciones
Transcripciones de reuniones, correos SEMANTIC o fijo con solapamiento
Contratos con cláusulas numeradas Lambda personalizada por cláusula
Tablas y PDF con gráficos Parser avanzado (FM o BDA) + chunking estándar
Prototipo rápido Por defecto

5. Embeddings: elegir y configurar el modelo

Skill 1.5.2. El modelo de embeddings determina qué significa «parecido».

5.1 Modelos de embeddings admitidos por Knowledge Bases

Modelo Dimensiones Tipo de vector Notas
Amazon Titan Text Embeddings V2 (amazon.titan-embed-text-v2:0) 256, 512 o 1.024 float o binario Opción por defecto en muchas regiones; barato
Amazon Titan Embeddings G1 - Text 1.536 float Anterior; solo algunas regiones
Cohere Embed English v3 / Multilingual v3 1.024 float o binario Multilingual para corpus en varios idiomas
Cohere Embed v4 — — Disponible en Bedrock; admitido como embedding personalizado en la Managed Knowledge Base
Amazon Titan Multimodal Embeddings G1 1.024 float Imágenes + texto
Amazon Nova Multimodal Embeddings 1.024 float Texto, imagen, audio y vídeo; a 1 de octubre de 2026 solo está en us-east-1 (y GovCloud), no en regiones de la UE

Criterios de elección (el ejemplo del temario habla de «dimensionalidad y encaje de dominio»):

  • Dimensiones. Más dimensiones capturan más matices, pero ocupan más almacenamiento y memoria y hacen la búsqueda algo más lenta. Titan V2 a 256 dimensiones reduce el tamaño del índice a una cuarta parte frente a 1.024 con una pérdida de precisión que debes medir.
  • Binario frente a float. Los vectores binarios reducen mucho el almacenamiento, pero solo los admiten OpenSearch Serverless y OpenSearch Managed Clusters. S3 Vectors solo admite float32.
  • Idioma y dominio. Para un corpus mezclado español-inglés, un modelo multilingüe. Evalúa con tus preguntas reales: el ranking público no sustituye a tu conjunto de prueba.
  • Coherencia. Documentos y preguntas con el mismo modelo y las mismas dimensiones. El índice se crea con una dimensión fija: en S3 Vectors, la dimensión, la métrica y las claves no filtrables no se pueden cambiar tras crear el índice.

5.2 Generar embeddings a escala

Knowledge Bases genera los embeddings por ti durante la ingesta. Si construyes tu pipeline:

  • Lambda por lotes (ejemplo del temario): una Lambda lee N chunks de SQS o S3, llama a InvokeModel con el modelo de embeddings y escribe en el almacén (PutVectors en S3 Vectors admite lotes; conviene insertar en lotes grandes).
  • Batch inference de Bedrock para volúmenes enormes y sin urgencia (más barato que on-demand; se ve en el módulo 09).
  • Controla el throttling del modelo de embeddings (cuotas de tokens por minuto) con reintentos y backoff.
import boto3, json
bedrock = boto3.client("bedrock-runtime", region_name="eu-central-1")

def embed(texto: str, dims: int = 1024) -> list[float]:
    body = {"inputText": texto, "dimensions": dims, "normalize": True}
    r = bedrock.invoke_model(modelId="amazon.titan-embed-text-v2:0", body=json.dumps(body))
    return json.loads(r["body"].read())["embedding"]

6. Almacenes vectoriales al servicio de la recuperación

Skill 1.5.3. El diseño a fondo de almacenes vectoriales es del módulo 02 (task 1.4); aquí nos interesa qué capacidades de recuperación te da cada uno cuando lo usas con Knowledge Bases.

Almacén (Customer-managed KB) Búsqueda híbrida Vectores binarios Filtros Cuándo
Amazon OpenSearch Serverless Sí (con campo de texto filtrable) Sí Todos, incluido startsWith y stringContains Máxima funcionalidad de búsqueda; ojo al coste mínimo de OCU
Amazon OpenSearch Service (Managed Clusters) Según configuración Sí (versión 2.16+) Sí Ya tienes un dominio OpenSearch; el dominio debe tener acceso público para KB
Amazon S3 Vectors No (solo semántica) No Sí, salvo startsWith y stringContains; hasta 1 KB y 35 claves de metadatos por vector Coste mínimo, consultas poco frecuentes, labs
Amazon Aurora PostgreSQL (pgvector) — tipo RDS Sí (índice GIN sobre el texto) No Sí (columna JSONB con índice GIN recomendada) Ya usas PostgreSQL; Aurora Serverless v2 puede escalar a 0 ACU
Amazon Neptune Analytics GraphRAG No Sí (in, notIn mejor soportados aquí y en OpenSearch Serverless) Relaciones entre entidades y razonamiento multisalto
MongoDB Atlas Sí (con índice de texto) — Requiere configurar filtros en el índice Ya usas MongoDB Atlas
Pinecone, Redis Enterprise Cloud — — Sí Proveedor externo ya contratado

Fuera de Knowledge Bases, el temario cita OpenSearch Service con capacidades vectoriales (k-NN, y el neural plugin que llama a Bedrock para generar embeddings dentro de OpenSearch) y Aurora con pgvector como opciones de búsqueda semántica «hechas por ti». Elígelas cuando necesites control total del índice (shards, algoritmo HNSW, puntuación personalizada) o integrar búsqueda vectorial en una base de datos que ya existe.

7. Amazon Bedrock Knowledge Bases a fondo

Amazon Bedrock Knowledge Bases es el servicio gestionado de RAG de AWS: conecta fuentes, trocea, genera embeddings, indexa y ofrece APIs de recuperación y de generación con citas.

7.1 Tipos de Knowledge Base (estado octubre de 2026)

Desde marzo de 2026 hay dos grandes tipos, y AWS recomienda la gestionada para casos nuevos:

Característica Managed Knowledge Base (type: MANAGED) Customer-managed Knowledge Base (type: VECTOR)
Almacén Lo gestiona Bedrock por completo (escala solo) Lo eliges, aprovisionas y mantienes tú
Embeddings Modelo gestionado sin coste extra, o uno de Bedrock (float32, 1.024 dims) Cualquier modelo de embeddings de Bedrock admitido
Búsqueda Siempre híbrida (semántica + palabras clave), más recuperación agéntica Eliges estrategia según el almacén
Reranking Reranker gestionado por defecto sin coste extra (rerankingModelType: MANAGED, CUSTOM o NONE) Opcional, con un modelo de reranking de Bedrock
Recuperación agéntica (agentic retrieval) Sí: descompone la consulta, recupera en varios saltos, comprueba si basta No
Conectores Siete nativos: S3, SharePoint, Confluence, Google Drive, OneDrive, Web Crawler y Custom S3 y Custom para fuentes nuevas: desde el 30/09/2026 ya no se pueden crear conectores nuevos de SharePoint, Confluence, Salesforce ni Web Crawler en una KB del cliente (las fuentes que ya existían siguen funcionando)
Chunking Por defecto, tamaño fijo, jerárquico o sin chunking; no admite el semántico Todas las estrategias (sección 4)
Permisos por documento (ACL) Sí (salvo Web Crawler) No
Parsing Parser gestionado multimodal (smart parsing) Por defecto, FM o Bedrock Data Automation
Integración con AgentCore Gateway (MCP) y Amazon Quick Nativa Tienes que construirla
Consulta Retrieve con managedSearchConfiguration Retrieve / RetrieveAndGenerate con vectorSearchConfiguration
Regiones UE eu-central-1, eu-west-1, eu-west-2 Casi todas las regiones con Bedrock, incluida eu-south-2

Además existen tres variantes especiales de la Customer-managed:

  • Datos estructurados (type: SQL): la KB traduce lenguaje natural a SQL (NL2SQL) sobre un almacén estructurado y ejecuta la consulta. La API GenerateQuery te devuelve solo el SQL generado para que lo metas en tu flujo. Encaja con el ejemplo del temario de text-to-SQL para resultados deterministas (3.1.2).
  • Amazon Kendra GenAI index (type: KENDRA): usa un índice de Kendra como recuperador. Kendra está cerrado a clientes nuevos (sección 11).
  • GraphRAG con Neptune Analytics (sección 8).

7.2 Plano de control y plano de datos

Como en otros servicios de AWS, las APIs se reparten en dos clientes de SDK:

Cliente boto3 Operaciones Para qué
bedrock-agent (build-time) CreateKnowledgeBase, CreateDataSource, StartIngestionJob, GetIngestionJob, IngestKnowledgeBaseDocuments, DeleteKnowledgeBaseDocuments Crear y mantener la KB
bedrock-agent-runtime (runtime) Retrieve, RetrieveAndGenerate, RetrieveAndGenerateStream, GenerateQuery, Rerank Consultar en producción

Permisos: la KB tiene un rol de servicio que Bedrock asume (bedrock.amazonaws.com) para leer S3, invocar el modelo de embeddings y escribir en el almacén. Tu aplicación necesita bedrock:Retrieve y/o bedrock:RetrieveAndGenerate sobre la KB, más bedrock:InvokeModel sobre el modelo de generación.

7.3 Fuentes de datos y conector de S3

Lo que debes saber del conector de S3 (el más preguntado):

  • Solo buckets de uso general (General Purpose) y en la misma región que la KB (puede ser de otra cuenta con la política de bucket adecuada).
  • Prefijos de inclusión (inclusion prefixes): indexa solo documentos/ en vez del bucket entero.
  • Metadatos por documento: un fichero nombre.ext.metadata.json junto al documento, de 10 KB como máximo.
  • Tamaño máximo por documento de texto estándar: 50 MB (consulta la página de cuotas para multimodal).
  • Sincronización incremental: en cada sync se procesan solo los ficheros nuevos, modificados o borrados.
  • Política de borrado (dataDeletionPolicy): DELETE elimina los vectores al borrar la fuente; RETAIN los conserva.

Formato del fichero de metadatos (va siempre en un bloque de código, nunca en texto):

{
  "metadataAttributes": {
    "departamento": { "value": { "type": "STRING", "stringValue": "rrhh" }, "includeForEmbedding": false },
    "anio": { "value": { "type": "NUMBER", "numberValue": 2026 }, "includeForEmbedding": false },
    "confidencial": { "value": { "type": "BOOLEAN", "booleanValue": false }, "includeForEmbedding": false }
  }
}

includeForEmbedding: true concatena el par clave-valor al texto antes de calcular el embedding (mejora la relevancia si la pregunta menciona ese valor); con false el metadato solo sirve para filtrar. El formato simplificado "metadataAttributes": { "clave": "valor" } equivale a false.

Esto conecta con la skill 1.4.2 (marcos de metadatos: fechas desde metadatos de S3, autoría, clasificación por dominio) y con la 3.3.2 (atribución de fuentes).

7.4 Sincronización y mantenimiento del índice

Un RAG con datos viejos responde mal con mucha seguridad. Opciones:

Mecanismo Cómo Cuándo
Sync manual o programado StartIngestionJob (consola: Sync); programar con EventBridge Scheduler que llama a la API Cambios diarios o semanales; lo más sencillo
Sync dirigido por eventos Evento de S3 (ObjectCreated/ObjectRemoved) → EventBridge → Lambda que lanza StartIngestionJob (agrupando cambios para no lanzar un job por fichero) Cambios frecuentes y dispersos
Ingesta directa IngestKnowledgeBaseDocuments / DeleteKnowledgeBaseDocuments: indexa documentos al momento, sin sync Casi tiempo real (p. ej., un ticket nuevo). Con fuente S3, replica luego el cambio en S3 o el siguiente sync lo pisará
Fuente Custom Tu aplicación empuja documentos con la ingesta directa Datos que no están en S3 ni en un conector

Reglas verificadas: la primera vez con una fuente S3 debes hacer un sync completo; no lances IngestKnowledgeBaseDocuments y StartIngestionJob a la vez.

flowchart LR
  S3["Bucket S3 de documentos"] -- "ObjectCreated / ObjectRemoved" --> EB["Amazon EventBridge"]
  EB --> SQS["Cola SQS (agrupa cambios)"]
  SQS --> L["Lambda: StartIngestionJob"]
  SCH["EventBridge Scheduler (cada noche)"] --> L
  L --> KB["Knowledge Base"]
  KB --> CW["CloudWatch: estado del job y estadísticas"]

GetIngestionJob devuelve estadísticas (documentos escaneados, indexados, fallidos, borrados). Alarmar sobre documentos fallidos es parte del mantenimiento de almacenes vectoriales (1.4.5, 4.3.5).

7.5 Parsing avanzado

Parser Qué extrae Coste Cuándo
Por defecto Solo texto de .txt, .md, .html, .doc/.docx, .xls/.xlsx, .pdf Sin cargo Documentos de texto puro
Foundation model (Claude, Nova o Llama 4 con visión) Texto + tablas, gráficos e imágenes; prompt de extracción personalizable Tokens del FM PDF con tablas o gráficos; quieres controlar cómo se describen
Bedrock Data Automation (BDA) Multimodal sin prompt: documentos, imágenes, audio y vídeo convertidos a texto Por página o imagen Procesamiento gestionado sin ajustar prompts. En la documentación de KB aparece en preview y en us-west-2

Ojo: si eliges FM o BDA, se usan para todos los PDF de la fuente, aunque sean solo texto, y se cobran. Con parser FM, el tamaño total de ficheros no puede superar 100 GB. La Managed KB usa un parser gestionado que elige estrategia por tipo de fichero.

7.6 Retrieve frente a RetrieveAndGenerate

Retrieve RetrieveAndGenerate
Devuelve Chunks: content, location, score, metadata Texto generado + citations + sessionId
Quién genera Tú (Converse, un agente, otro modelo) Bedrock, con el modelo o perfil de inferencia que indiques
Control del prompt Total Plantilla con marcadores $search_results$, $query$, $output_format_instructions$ (necesario para citas), $current_time$
Conversación multiturno La gestionas tú sessionId mantiene el contexto entre turnos
Streaming — RetrieveAndGenerateStream
Guardrails En tu llamada de generación guardrailConfiguration dentro de generationConfiguration
Descomposición de consultas La implementas tú orchestrationConfiguration.queryTransformationConfiguration.type = QUERY_DECOMPOSITION
Úsalo cuando Necesitas lógica propia, varios almacenes, un agente, caché, o un modelo no admitido Quieres RAG con citas con mínimo código

Ejemplo Retrieve con boto3 (Customer-managed KB):

import boto3
rt = boto3.client("bedrock-agent-runtime", region_name="eu-central-1")

resp = rt.retrieve(
    knowledgeBaseId="KBID123456",
    retrievalQuery={"text": "¿Cuántos días de teletrabajo tengo a la semana?"},
    retrievalConfiguration={"vectorSearchConfiguration": {"numberOfResults": 5}},
)
for r in resp["retrievalResults"]:
    print(round(r["score"], 3), r["location"]["s3Location"]["uri"], r["content"]["text"][:80])

Ejemplo RetrieveAndGenerate con un perfil de inferencia europeo:

cuenta = boto3.client("sts").get_caller_identity()["Account"]
modelo = f"arn:aws:bedrock:eu-central-1:{cuenta}:inference-profile/eu.amazon.nova-micro-v1:0"

resp = rt.retrieve_and_generate(
    input={"text": "¿Cuántos días de teletrabajo tengo a la semana?"},
    retrieveAndGenerateConfiguration={
        "type": "KNOWLEDGE_BASE",
        "knowledgeBaseConfiguration": {"knowledgeBaseId": "KBID123456", "modelArn": modelo},
    },
)
print(resp["output"]["text"])
for c in resp["citations"]:
    for ref in c["retrievedReferences"]:
        print("Fuente:", ref["location"]["s3Location"]["uri"])

Para la Managed KB la consulta es Retrieve con managedSearchConfiguration (no vectorSearchConfiguration). Si pides más contexto del que cabe y la generación falla por longitud, la documentación propone: reducir numberOfResults, usar chunks más pequeños, acortar la plantilla o la pregunta.

7.7 Filtros de metadatos

Los filtros restringen la búsqueda a chunks cuyos metadatos cumplen una condición. Son la herramienta para multi-tenant, vigencia temporal y precisión por dominio.

Operador (API) Tipos Notas
equals, notEquals string, number, boolean
greaterThan, greaterThanOrEquals, lessThan, lessThanOrEquals number Fechas como número (p. ej. epoch o 20260115)
in, notIn lista de strings Mejor soportados en OpenSearch Serverless y Neptune
startsWith string Solo OpenSearch Serverless
stringContains, listContains string / lista Mejor soportados en OpenSearch Serverless
andAll, orAll combinan hasta 5 expresiones Un nivel de anidamiento de grupos

No admiten startsWith ni stringContains: S3 Vectors y la Managed KB. En la Managed KB, los campos reservados empiezan por guion bajo (_source_uri); en la Customer-managed, por x-amz-bedrock (p. ej. x-amz-bedrock-kb-document-page-number en PDF con OpenSearch Serverless o Aurora).

filtro = {
    "andAll": [
        {"equals": {"key": "departamento", "value": "rrhh"}},
        {"greaterThanOrEquals": {"key": "anio", "value": 2025}},
    ]
}
resp = rt.retrieve(
    knowledgeBaseId="KBID123456",
    retrievalQuery={"text": "política de gastos de viaje"},
    retrievalConfiguration={"vectorSearchConfiguration": {"numberOfResults": 5, "filter": filtro}},
)

Filtrado implícito (implicit metadata filtering): con implicitFilterConfiguration describes el esquema de metadatos (clave, tipo, descripción) y un modelo genera el filtro a partir de la pregunta («políticas de 2025 de RR. HH.» → filtro por año y departamento). Está soportado con modelos Anthropic Claude.

7.8 Búsqueda semántica, por palabras clave e híbrida

Skill 1.5.4.

  • Semántica (vectores): entiende sinónimos y paráfrasis, pero falla con identificadores exactos, siglas raras o números de pieza («ERR-4012», «RD 1/2026»).
  • Por palabras clave (léxica, BM25): encuentra coincidencias exactas, pero no entiende que «coche» y «automóvil» son lo mismo.
  • Híbrida: ejecuta ambas y fusiona las puntuaciones. Es la mejor opción por defecto cuando hay jerga, códigos de producto o nombres propios.

En Knowledge Bases, overrideSearchType acepta HYBRID o SEMANTIC; si no lo indicas, decide Bedrock. La híbrida solo está disponible en Customer-managed con Amazon RDS (Aurora PostgreSQL), OpenSearch Serverless y MongoDB que tengan un campo de texto filtrable; en el resto (por ejemplo, S3 Vectors) la consulta es semántica. En la Managed KB la búsqueda es siempre híbrida.

Si construyes la búsqueda tú mismo con OpenSearch, la híbrida se implementa con una consulta compuesta (k-NN + match) y un search pipeline de normalización y combinación de puntuaciones, que es donde entra la «puntuación personalizada» de la skill 4.2.2.

7.9 Reranking

Skill 1.5.4 (ejemplo «Amazon Bedrock reranker models»).

La recuperación vectorial es rápida porque compara vectores precalculados, pero es aproximada. Un reranker (cross-encoder) lee la pregunta y cada chunk juntos y puntúa su relevancia con más precisión. El patrón es de dos etapas: recuperas muchos candidatos (p. ej. 20-50) y el reranker se queda con los mejores (p. ej. 5).

Modelo ID Regiones in-region (UE)
Amazon Rerank 1.0 amazon.rerank-v1:0 eu-central-1 (no disponible en us-east-1)
Cohere Rerank 3.5 cohere.rerank-v3-5:0 eu-central-1 (también us-east-1)

Configuración en Retrieve/RetrieveAndGenerate (Customer-managed):

"vectorSearchConfiguration": {
  "numberOfResults": 20,
  "rerankingConfiguration": {
    "type": "BEDROCK_RERANKING_MODEL",
    "bedrockRerankingConfiguration": {
      "numberOfRerankedResults": 5,
      "modelConfiguration": { "modelArn": "arn:aws:bedrock:eu-central-1::foundation-model/amazon.rerank-v1:0" }
    }
  }
}

Si numberOfRerankedResults supera numberOfResults, se devuelven como mucho numberOfResults (salvo con descomposición de consultas, donde puede ser hasta cinco veces más). También existe la API independiente Rerank para reordenar documentos que no están en una KB. Coste: el reranking se factura por search units (1 USD por 1.000 en Fráncfort según la API oficial de precios a 1 de octubre de 2026; consulta https://aws.amazon.com/bedrock/pricing/). En la Managed KB el reranker gestionado viene activado y sin coste extra si usas el embedding gestionado.

7.10 Tratamiento de consultas: reformulación, expansión y descomposición

Skill 1.5.5. Las preguntas de los usuarios son cortas, ambiguas o compuestas. Tres técnicas:

Técnica Qué hace Ejemplo En AWS
Reformulación (query rewriting/reformulation) Reescribe la pregunta en forma autónoma y precisa, usando el historial «¿Y en Portugal?» → «¿Cuántos días de vacaciones tienen los empleados en Portugal?» Plantilla de orquestación de RetrieveAndGenerate; o un FM de Bedrock antes de Retrieve
Expansión (query expansion) Añade sinónimos, términos relacionados o varias versiones de la pregunta y fusiona resultados «baja» → «baja médica, incapacidad temporal, IT» Un FM de Bedrock genera variantes; se lanzan varios Retrieve en paralelo
Descomposición (query decomposition) Parte una pregunta compleja en subpreguntas y recupera para cada una «¿Quién tiene más días libres, Madrid o Lisboa?» → dos subconsultas QUERY_DECOMPOSITION en RetrieveAndGenerate; Lambda para descomposición propia; Step Functions (estado Map) para orquestar varias transformaciones y recuperaciones en paralelo
"retrieveAndGenerateConfiguration": {
  "type": "KNOWLEDGE_BASE",
  "knowledgeBaseConfiguration": {
    "knowledgeBaseId": "KBID123456",
    "modelArn": "arn:aws:bedrock:eu-central-1:111122223333:inference-profile/eu.amazon.nova-micro-v1:0",
    "orchestrationConfiguration": {
      "queryTransformationConfiguration": { "type": "QUERY_DECOMPOSITION" }
    }
  }
}

Técnicas adicionales que conviene reconocer por el nombre:

  • HyDE (Hypothetical Document Embeddings): el FM genera una respuesta hipotética y se busca con su embedding; ayuda cuando la pregunta es muy corta.
  • Recuperación agéntica (Managed KB): un agente planifica varias recuperaciones, evalúa si tiene suficiente y vuelve a buscar (razonamiento multisalto).
  • Enrutado de consultas: una Lambda o un FM clasifica la pregunta y la envía a la KB adecuada (RR. HH., legal, producto) o a un almacén estructurado.
flowchart TD
  U["Pregunta del usuario + historial"] --> SF["Step Functions"]
  SF --> RW["Bedrock: reformular pregunta autónoma"]
  RW --> DEC["Lambda: ¿pregunta compuesta?"]
  DEC -- "No" --> R1["Retrieve"]
  DEC -- "Sí" --> MAP["Map: una Retrieve por subpregunta"]
  MAP --> FUS["Fusión y deduplicado de chunks"]
  R1 --> RR["Rerank"]
  FUS --> RR
  RR --> GEN["Converse: respuesta con citas"]

7.11 Seguridad y calidad en Knowledge Bases (avance)

  • Guardrails: se aplican a la entrada y a la respuesta generada, no a los chunks recuperados. Detalles en el módulo 07.
  • Contextual grounding check de Guardrails: bloquea respuestas no sustentadas por el contexto recuperado (3.1.3).
  • Cifrado: KMS para la KB, las fuentes, el almacenamiento transitorio de ingesta y el almacén (S3 Vectors admite SSE-S3 o SSE-KMS, elegido al crear el bucket e inmutable).
  • Evaluación de RAG: Amazon Bedrock Evaluations tiene evaluación de recuperación y de recuperación + generación (módulo 10).

8. GraphRAG con Amazon Neptune Analytics

El RAG vectorial encuentra chunks parecidos a la pregunta, pero falla cuando la respuesta exige conectar hechos repartidos en varios documentos: «¿Qué proveedores de los proyectos que dirige Ana tienen contratos que vencen este año?». Ningún chunk contiene todo eso.

GraphRAG en Knowledge Bases combina vectores y grafo:

  1. Durante la ingesta, un FM que eliges (graph construction model) extrae entidades y relaciones de los documentos y construye un grafo en Amazon Neptune Analytics, junto con el índice vectorial. Elegir el modelo de construcción activa el enriquecimiento contextual.
  2. En la consulta, primero hace una búsqueda vectorial de nodos relevantes, luego recorre el grafo para traer chunks relacionados y responde con ese contexto enriquecido.
Aspecto Dato verificado
Almacén Grafo vacío de Neptune Analytics con índice vectorial (la dimensión se fija al crear el grafo y debe coincidir con el embedding)
Fuente de datos Solo Amazon S3
Límite 1.000 ficheros por fuente de datos (ampliable hasta 10.000)
Personalización del grafo No se puede configurar cómo se construye
Autoescalado Neptune Analytics no autoescala en esta integración
Chunking jerárquico GraphRAG devuelve solo chunks hijo (no los sustituye por el padre)
Regiones UE Fráncfort, Londres e Irlanda
Limpieza Borrar la KB no borra el grafo: hay que borrarlo aparte o seguirá facturando

Cuándo elegirlo: preguntas multisalto (multi-hop), dominios con muchas entidades relacionadas (cadena de suministro, fraude, investigación, normativa con referencias cruzadas) y requisitos de razonamiento entre documentos. No lo elijas para una FAQ simple: añade coste (capacidad m-NCU de Neptune) y un FM en la ingesta.

9. Acceso estándar a la recuperación: function calling, MCP y APIs

Skill 1.5.6: create consistent access mechanisms to enable seamless integration with FMs. La recuperación no siempre la invoca tu código: cada vez más la invoca el propio modelo cuando la necesita.

Mecanismo Cómo funciona Cuándo
Function calling / tool use Declaras una herramienta buscar_documentos(consulta, filtros) en toolConfig de Converse; el modelo decide llamarla y tu código ejecuta Retrieve El modelo debe decidir si y qué buscar (preguntas mixtas)
MCP (Model Context Protocol) Protocolo abierto cliente-servidor para exponer herramientas y datos a agentes. AWS publica un servidor MCP oficial para consultar Knowledge Bases (bedrock-kb-retrieval-mcp-server en awslabs/mcp), y la Managed KB se integra de forma nativa con AgentCore Gateway, que la expone como herramienta MCP Varios agentes o frameworks deben usar la misma KB sin código a medida
API estándar de recuperación API Gateway + Lambda que encapsula Retrieve con contrato fijo (petición, filtros permitidos, formato de respuesta, autenticación) Varios equipos consumen RAG; quieres gobernar filtros, cuotas y logs en un único sitio
Nodo de KB en Bedrock Flows Nodo Knowledge base que devuelve resultados o respuesta generada Flujos sin código (módulo 04)

Declaración de la herramienta de búsqueda para el modelo (el bucle completo de tool use se ve en el módulo 04):

{
  "toolSpec": {
    "name": "buscar_documentacion_interna",
    "description": "Busca en la documentación interna de RR. HH. y devuelve fragmentos con su fuente.",
    "inputSchema": {
      "json": {
        "type": "object",
        "properties": {
          "consulta": { "type": "string", "description": "Pregunta autónoma y precisa" },
          "departamento": { "type": "string", "enum": ["rrhh", "legal", "ventas"] }
        },
        "required": ["consulta"]
      }
    }
  }
}

10. ¿Knowledge Bases o RAG a medida?

Situación Elige
RAG sobre S3/SharePoint/Confluence con mínima operativa, citas y ACL Managed Knowledge Base
Necesitas un almacén concreto (coste con S3 Vectors, Aurora existente, OpenSearch con híbrida) pero sin programar el pipeline Customer-managed Knowledge Base
Control total: índices por dominio, sharding propio, puntuación híbrida personalizada, embeddings dentro de OpenSearch con el neural plugin RAG a medida con OpenSearch Service + Lambda/Step Functions
Preguntas sobre tablas y bases de datos KB de datos estructurados (NL2SQL) o GenerateQuery
Relaciones entre entidades, multisalto GraphRAG con Neptune Analytics
Un único documento subido por el usuario Chat with your document

11. Amazon Kendra, Amazon Q Business y Amazon Quick: estado actual

La guía oficial sigue listando estos servicios como in-scope, así que pueden salir. Pero su estado ha cambiado (fuentes en docs/investigacion.md):

Servicio Qué es Estado (octubre de 2026) Alternativa recomendada por AWS
Amazon Kendra Búsqueda empresarial inteligente con conectores y permisos por documento; su GenAI index podía servir de recuperador para Knowledge Bases Modo mantenimiento desde el 30/06/2026; cerrado a clientes nuevos desde el 30/07/2026 Bedrock Managed Knowledge Base
Amazon Q Business y Q Business Apps Asistente de IA generativa «llave en mano» para empleados, con conectores empresariales y apps ligeras sin código Cerrado a clientes nuevos; solo correcciones de errores y seguridad Amazon Quick
Amazon Quick (antes Quick Suite) Espacio de trabajo con agentes, investigación, flujos y BI (incluye Amazon Quick Sight) Activo —

Cómo razonar en el examen:

  • Si el enunciado pide «asistente de empresa listo para usar, sin desarrollo, para que los empleados pregunten a SharePoint y Confluence respetando permisos», la respuesta de la guía era Q Business; hoy la vigente es Amazon Quick (que puede asociar una Managed KB de forma nativa).
  • Si pide «búsqueda empresarial con conectores y ACL como recuperador de un RAG propio», antes era Kendra; hoy es la Managed Knowledge Base.
  • Amazon Q Business Apps (Q Apps) permitían a los empleados crear, describiéndolas en lenguaje natural o a partir de una conversación con Q Business, pequeñas aplicaciones de IA generativa (formularios que generan un borrador, un resumen o una checklist) y compartirlas sin programar. Si el enunciado pide «que usuarios de negocio sin programar creen y compartan pequeñas herramientas de IA», esa era la respuesta de la guía; hoy el equivalente está en Amazon Quick (sus flujos y agentes).
  • Si una opción propone Kendra o Q Business para una cuenta nueva, sabes que no es viable en la práctica; si la pregunta es conceptual («qué servicio ofrece…»), puede seguir siendo la respuesta esperada. Lee con atención.

12. Diagnóstico de problemas de RAG (avance de 5.2.4)

Síntoma Causa probable Solución
Responde con datos antiguos Falta sincronizar o el job falló Revisar GetIngestionJob; automatizar sync; ingesta directa para urgentes
No encuentra códigos exactos o siglas Solo búsqueda semántica Búsqueda híbrida (almacén compatible o Managed KB)
El documento correcto sale, pero abajo Ranking vectorial aproximado Reranking; aumentar numberOfResults antes de rerankear
Respuestas incompletas en manuales largos Chunks demasiado pequeños Jerárquico o chunks mayores con solapamiento
Mezcla información de otros clientes Sin filtro de tenant Filtro de metadatos obligatorio en backend o KBs separadas
Preguntas compuestas mal respondidas Una sola búsqueda Descomposición de consultas o recuperación agéntica
Tablas y gráficos ignorados Parser por defecto Parser FM o BDA
Error de ingesta con S3 Vectors Metadatos por encima de 1 KB o 35 claves; jerárquico con muchos tokens Reducir metadatos; chunking fijo
Error de longitud al generar Demasiado contexto Menos chunks, chunks más pequeños, plantilla más corta
Resultados raros tras cambiar de modelo de embeddings Índice con vectores del modelo anterior Reindexar todo con el nuevo modelo

Trampas típicas del examen

  • «Datos que cambian a diario, sin reentrenar, con citas» → RAG con Knowledge Bases, nunca fine-tuning.
  • «Códigos de producto, referencias legales, números de pieza» → búsqueda híbrida. Si la opción usa S3 Vectors con HYBRID, es incorrecta: S3 Vectors solo hace semántica.
  • «Los resultados relevantes aparecen pero mal ordenados» → reranking, no cambiar de modelo de generación.
  • «Aislar datos por cliente con un único índice» → filtro de metadatos aplicado por el backend. Desconfía de opciones que dejan al cliente elegir el filtro.
  • «Preguntas que combinan varias partes» → descomposición de consultas (QUERY_DECOMPOSITION) o recuperación agéntica.
  • «Relaciones entre entidades a través de muchos documentos» → GraphRAG con Neptune Analytics (y recuerda: solo fuente S3).
  • Cambiar la estrategia de chunking de una fuente existente no se puede: nueva fuente o reindexado.
  • Vectores binarios → solo OpenSearch. S3 Vectors → solo float32, sin startsWith/stringContains, 1 KB y 35 claves de metadatos, sin jerárquico recomendado.
  • Reranking en Europa → eu-central-1. Amazon Rerank 1.0 no está en us-east-1.
  • Guardrails no filtran los chunks recuperados, solo entrada y respuesta.
  • Kendra y Q Business: explicables, pero cerrados a clientes nuevos; alternativas actuales: Managed KB y Amazon Quick.
  • «Conectar SharePoint o Confluence a una Knowledge Base nueva» → Managed KB. Desde el 30/09/2026 una KB del cliente ya no admite conectores nuevos de esas fuentes: si el enunciado exige un almacén propio, lleva los documentos a S3 (AppFlow, Lambda) o usa la fuente Custom.
  • Chunking semántico en la Managed KB: no está disponible; si el enunciado lo exige, es una KB del cliente.
  • Borrar una KB con GraphRAG no borra el grafo de Neptune (coste residual).
  • Palabras clave: ground responses, reduce hallucinations, source attribution, up-to-date information, LEAST operational overhead, MOST relevant results, multi-hop reasoning, semantic search beyond keyword matching.

Resumen

  • RAG = recuperar fragmentos relevantes y añadirlos al prompt; se separa en ingesta (parse, chunk, embed, index) y consulta (transformar, recuperar, rerankear, aumentar, generar, citar).
  • RAG para hechos cambiantes y citas; fine-tuning para comportamiento y estilo; prompt largo para poco contenido.
  • El chunking decide la calidad: por defecto, fijo, jerárquico, semántico, ninguno o Lambda personalizada. No se cambia después.
  • El modelo de embeddings y su dimensión se fijan al crear el índice; mismo modelo para documentos y preguntas.
  • Knowledge Bases: Managed (recomendada, híbrida, reranker y ACL gestionados, conectores, recuperación agéntica) o Customer-managed (tú eliges el almacén: S3 Vectors, OpenSearch, Aurora, Neptune…).
  • Retrieve devuelve chunks; RetrieveAndGenerate devuelve respuesta con citas y admite descomposición, plantillas, guardrails y sesiones.
  • Filtros de metadatos para multi-tenant y vigencia; híbrida para términos exactos; reranking para ordenar mejor; transformación de consultas para preguntas complejas.
  • GraphRAG con Neptune Analytics para razonamiento entre entidades.
  • Acceso estándar mediante tool use, MCP (servidor oficial y AgentCore Gateway) o una API propia.
  • Kendra y Q Business están cerrados a clientes nuevos: Managed KB y Amazon Quick son las alternativas.

Cobertura del temario

Task statement Skill Dónde se trata en este módulo
1.5 1.5.1 Segmentación de documentos (chunking de Bedrock, Lambda de tamaño fijo, jerárquico por estructura) Sección 4 completa (4.2 estrategias de KB, 4.3 Lambda y jerárquico por estructura, 4.4 tabla de decisión); lab 05
1.5 1.5.2 Soluciones de embeddings (Titan por dimensión y dominio, evaluar modelos de Bedrock, Lambda para generar por lotes) Sección 5 (5.1 modelos y criterios, 5.2 Lambda por lotes y batch); lab 05
1.5 1.5.3 Búsqueda vectorial (OpenSearch con vectores, Aurora pgvector, KB con almacén gestionado) Sección 6 (tabla de almacenes), 7.1 (Managed KB), 10 (RAG a medida); lab 05 con S3 Vectors
1.5 1.5.4 Arquitecturas de búsqueda avanzada (OpenSearch semántico, híbrida, rerankers de Bedrock) Secciones 7.8 (semántica, léxica, híbrida) y 7.9 (reranking); lab 06
1.5 1.5.5 Tratamiento de consultas (expansión con Bedrock, descomposición con Lambda, transformación con Step Functions) Sección 7.10 (reformulación, expansión, descomposición, HyDE, recuperación agéntica, diagrama con Step Functions); lab 06
1.5 1.5.6 Mecanismos de acceso coherentes (function calling para búsqueda vectorial, clientes MCP, APIs estándar) Sección 9
Servicios in-scope Amazon Bedrock Knowledge Bases, Amazon Kendra, Amazon Q Business, Amazon Q Business Apps, Amazon Quick, Amazon Neptune, Amazon OpenSearch Service, Amazon Aurora Secciones 7 (tipos de KB, conectores y chunking de cada tipo), 8, 6, 10 y 11 (estado de Kendra y Q Business, qué eran las Q Business Apps)
Relacionados (otros módulos) 1.4.2 metadatos, 1.4.5 sincronización, 3.1.3 grounding, 4.2.2 rendimiento de recuperación, 5.2.4 troubleshooting de recuperación Secciones 7.3, 7.4, 7.11 y 12 (avance; los módulos 02, 07, 09 y 10 los desarrollan)

Practica lo aprendido

Hacer el test (29 preguntas)Repasar tarjetas (30)

Documentación oficial para ampliar