# aws-samples/rag-workshop-amazon-bedrock-knowledge-bases architecture

> Architecture diagram of the GitHub repository aws-samples/rag-workshop-amazon-bedrock-knowledge-bases, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases
- Repository: https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases

## Overview

This repository is a collection of Amazon Bedrock RAG examples, notebooks, and supporting Python utilities—not a standalone application. Its main workflow is to prepare and ingest documents into a knowledge base, retrieve relevant context, and generate answers; companion examples explore evaluation and accuracy improvements. Separate branches cover responsible AI, multimodal, structured, and graph RAG. The tree and sampled utilities support these capabilities, but notebook contents were not sampled, so detailed notebook-to-utility wiring is not asserted.

Main entry points: [`01-rag-concepts/01_create_ingest_documents_test_kb_multi_ds.ipynb`](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/01_create_ingest_documents_test_kb_multi_ds.ipynb) (Ingest documents), [`synthetic_dataset`](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/tree/main/synthetic_dataset) (Sample media), [`01-rag-concepts/02_managed_retreiveandgenerate_and_streamapi.ipynb`](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/02_managed_retreiveandgenerate_and_streamapi.ipynb) (Managed retrieval), [`01-rag-concepts/03_customized_rag_retreive_api_hybrid_search_langchain.ipynb`](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/03_customized_rag_retreive_api_hybrid_search_langchain.ipynb) (Hybrid search)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_foundations["RAG foundations"]
  node_ingest["Ingest documents"]
  node_managed["Managed retrieval"]
  node_hybrid["Hybrid search"]
  node_evaluation["RAG evaluation"]
  node_doc_level["Document ingestion"]
end

subgraph group_quality["Retrieval quality"]
  node_chunking["Chunking options"]
  node_metadata["Metadata filters"]
  node_auto_metadata["Generated metadata"]
  node_csv_metadata["CSV metadata"]
  node_reformulation["Query reformulation"]
  node_reranking["Result reranking"]
end

subgraph group_extensions["RAG extensions"]
  node_grounding["Context grounding"]
  node_av_prep["Audio/video prep"]
  node_av_rag["Audio/video RAG"]
  node_image_rag["Text/image RAG"]
  node_structured_rag["Structured RAG"]
  node_graph_rag["Graph RAG"]
end

subgraph group_runtime["Shared utilities"]
  node_kb["Knowledge base setup<br/>[knowledge_base.py]"]
  node_operators["KB operations"]
  node_managed_kb["Managed KB helper"]
  node_structured_kb["Structured KB helper"]
  node_eval_helper["Evaluation helper<br/>[evaluation.py]"]
end

node_learner(("Notebook user"))
node_bedrock["AWS Bedrock"]
node_source_data["Sample media"]

node_learner -->|"explores ingestion"| node_ingest
node_learner -->|"explores retrieval"| node_managed
node_learner -->|"explores search"| node_hybrid
node_learner -->|"runs evaluation"| node_evaluation
node_source_data -->|"provides media"| node_av_prep
node_source_data -->|"provides documents"| node_ingest
node_ingest -->|"creates knowledge base"| node_bedrock
node_managed -->|"retrieves and generates"| node_bedrock
node_hybrid -->|"retrieves context"| node_bedrock
node_evaluation -->|"evaluates answers"| node_bedrock
node_doc_level -->|"ingests documents"| node_bedrock
node_chunking -->|"configures chunking"| node_bedrock
node_metadata -->|"filters retrieval"| node_bedrock
node_auto_metadata -->|"generates metadata"| node_bedrock
node_csv_metadata -->|"customizes metadata"| node_bedrock
node_reformulation -->|"reformulates queries"| node_bedrock
node_reranking -->|"reranks results"| node_bedrock
node_grounding -->|"checks grounding"| node_bedrock
node_av_prep -->|"prepares media"| node_bedrock
node_av_rag -->|"retrieves media context"| node_bedrock
node_image_rag -->|"retrieves image context"| node_bedrock
node_structured_rag -->|"queries structured data"| node_bedrock
node_graph_rag -->|"uses graph retrieval"| node_bedrock
node_kb -->|"creates KB resources"| node_bedrock
node_managed_kb -->|"creates managed KB"| node_bedrock
node_structured_kb -->|"creates structured KB"| node_bedrock
node_eval_helper -->|"retrieves and evaluates"| node_bedrock

click node_source_data "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/tree/main/synthetic_dataset"
click node_ingest "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/01_create_ingest_documents_test_kb_multi_ds.ipynb"
click node_managed "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/02_managed_retreiveandgenerate_and_streamapi.ipynb"
click node_hybrid "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/03_customized_rag_retreive_api_hybrid_search_langchain.ipynb"
click node_evaluation "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/04_customized_rag_retreive_api_langchain_evaluation_ragas.ipynb"
click node_doc_level "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/05_document_level_kb_ingestion.ipynb"
click node_chunking "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/02-optimizing-accuracy-retrieved-results/advanced_chunking_options.ipynb"
click node_metadata "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/02-optimizing-accuracy-retrieved-results/metadata_filtering.ipynb"
click node_auto_metadata "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/02-optimizing-accuracy-retrieved-results/autogenerated_metadata_filters.ipynb"
click node_csv_metadata "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/02-optimizing-accuracy-retrieved-results/csv_metadata_customization.ipynb"
click node_reformulation "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/02-optimizing-accuracy-retrieved-results/query_reformulation.ipynb"
click node_reranking "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/02-optimizing-accuracy-retrieved-results/re_ranking_using_kb.ipynb"
click node_grounding "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/03-responsible-ai/contextual_grounding.ipynb"
click node_av_prep "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/04-multi-modal-rag/audio-video-rag-using-kb/01_data_prep_using_bda.ipynb"
click node_av_rag "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/04-multi-modal-rag/audio-video-rag-using-kb/02_audio_video_rag_using_kb.ipynb"
click node_image_rag "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/04-multi-modal-rag/text-images-rag-using-kb/text_images_rag_using_kb.ipynb"
click node_structured_rag "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/05-structured-rag/structured_rag_using_kb.ipynb"
click node_graph_rag "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/06-graph-rag/01-graph-rag-using-kb.ipynb"
click node_kb "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/utils/knowledge_base.py"
click node_operators "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/utils/knowledge_base_operators.py"
click node_managed_kb "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/utils/managed_knowledge_base.py"
click node_structured_kb "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/utils/structured_knowledge_base.py"
click node_eval_helper "https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/utils/evaluation.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ingest,node_managed,node_hybrid,node_evaluation,node_doc_level,node_learner toneBlue
class node_chunking,node_metadata,node_auto_metadata,node_csv_metadata,node_reformulation,node_reranking toneAmber
class node_grounding,node_av_prep,node_av_rag,node_image_rag,node_structured_rag,node_graph_rag toneMint
class node_kb,node_operators,node_managed_kb,node_structured_kb,node_eval_helper toneRose
class node_bedrock toneIndigo
class node_source_data toneTeal
```

## Components

### RAG foundations

- [Ingest documents](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/01_create_ingest_documents_test_kb_multi_ds.ipynb): `01-rag-concepts/01_create_ingest_documents_test_kb_multi_ds.ipynb`
- [Managed retrieval](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/02_managed_retreiveandgenerate_and_streamapi.ipynb): `01-rag-concepts/02_managed_retreiveandgenerate_and_streamapi.ipynb`
- [Hybrid search](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/03_customized_rag_retreive_api_hybrid_search_langchain.ipynb): `01-rag-concepts/03_customized_rag_retreive_api_hybrid_search_langchain.ipynb`
- [RAG evaluation](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/04_customized_rag_retreive_api_langchain_evaluation_ragas.ipynb): `01-rag-concepts/04_customized_rag_retreive_api_langchain_evaluation_ragas.ipynb`
- [Document ingestion](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/01-rag-concepts/05_document_level_kb_ingestion.ipynb): `01-rag-concepts/05_document_level_kb_ingestion.ipynb`

### Retrieval quality

- [Chunking options](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/02-optimizing-accuracy-retrieved-results/advanced_chunking_options.ipynb): `02-optimizing-accuracy-retrieved-results/advanced_chunking_options.ipynb`
- [Metadata filters](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/02-optimizing-accuracy-retrieved-results/metadata_filtering.ipynb): `02-optimizing-accuracy-retrieved-results/metadata_filtering.ipynb`
- [Generated metadata](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/02-optimizing-accuracy-retrieved-results/autogenerated_metadata_filters.ipynb): `02-optimizing-accuracy-retrieved-results/autogenerated_metadata_filters.ipynb`
- [CSV metadata](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/02-optimizing-accuracy-retrieved-results/csv_metadata_customization.ipynb): `02-optimizing-accuracy-retrieved-results/csv_metadata_customization.ipynb`
- [Query reformulation](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/02-optimizing-accuracy-retrieved-results/query_reformulation.ipynb): `02-optimizing-accuracy-retrieved-results/query_reformulation.ipynb`
- [Result reranking](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/02-optimizing-accuracy-retrieved-results/re_ranking_using_kb.ipynb): `02-optimizing-accuracy-retrieved-results/re_ranking_using_kb.ipynb`

### RAG extensions

- [Context grounding](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/03-responsible-ai/contextual_grounding.ipynb): `03-responsible-ai/contextual_grounding.ipynb`
- [Audio/video prep](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/04-multi-modal-rag/audio-video-rag-using-kb/01_data_prep_using_bda.ipynb): `04-multi-modal-rag/audio-video-rag-using-kb/01_data_prep_using_bda.ipynb`
- [Audio/video RAG](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/04-multi-modal-rag/audio-video-rag-using-kb/02_audio_video_rag_using_kb.ipynb): `04-multi-modal-rag/audio-video-rag-using-kb/02_audio_video_rag_using_kb.ipynb`
- [Text/image RAG](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/04-multi-modal-rag/text-images-rag-using-kb/text_images_rag_using_kb.ipynb): `04-multi-modal-rag/text-images-rag-using-kb/text_images_rag_using_kb.ipynb`
- [Structured RAG](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/05-structured-rag/structured_rag_using_kb.ipynb): `05-structured-rag/structured_rag_using_kb.ipynb`
- [Graph RAG](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/06-graph-rag/01-graph-rag-using-kb.ipynb): `06-graph-rag/01-graph-rag-using-kb.ipynb`

### Shared utilities

- [Knowledge base setup](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/utils/knowledge_base.py): `utils/knowledge_base.py`
- [KB operations](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/utils/knowledge_base_operators.py): `utils/knowledge_base_operators.py`
- [Managed KB helper](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/utils/managed_knowledge_base.py): `utils/managed_knowledge_base.py`
- [Structured KB helper](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/utils/structured_knowledge_base.py): `utils/structured_knowledge_base.py`
- [Evaluation helper](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/blob/main/utils/evaluation.py): `utils/evaluation.py`

### Other components

- **Notebook user**
- **AWS Bedrock**
- [Sample media](https://github.com/aws-samples/rag-workshop-amazon-bedrock-knowledge-bases/tree/main/synthetic_dataset): `synthetic_dataset`

## Connections

- Notebook user → Ingest documents: explores ingestion
- Notebook user → Managed retrieval: explores retrieval
- Notebook user → Hybrid search: explores search
- Notebook user → RAG evaluation: runs evaluation
- Sample media → Audio/video prep: provides media
- Sample media → Ingest documents: provides documents
- Ingest documents → AWS Bedrock: creates knowledge base
- Managed retrieval → AWS Bedrock: retrieves and generates
- Hybrid search → AWS Bedrock: retrieves context
- RAG evaluation → AWS Bedrock: evaluates answers
- Document ingestion → AWS Bedrock: ingests documents
- Chunking options → AWS Bedrock: configures chunking
- Metadata filters → AWS Bedrock: filters retrieval
- Generated metadata → AWS Bedrock: generates metadata
- CSV metadata → AWS Bedrock: customizes metadata
- Query reformulation → AWS Bedrock: reformulates queries
- Result reranking → AWS Bedrock: reranks results
- Context grounding → AWS Bedrock: checks grounding
- Audio/video prep → AWS Bedrock: prepares media
- Audio/video RAG → AWS Bedrock: retrieves media context
- Text/image RAG → AWS Bedrock: retrieves image context
- Structured RAG → AWS Bedrock: queries structured data
- Graph RAG → AWS Bedrock: uses graph retrieval
- Knowledge base setup → AWS Bedrock: creates KB resources
- Managed KB helper → AWS Bedrock: creates managed KB
- Structured KB helper → AWS Bedrock: creates structured KB
- Evaluation helper → AWS Bedrock: retrieves and evaluates
