From 9bc174bae8b4be9bfe36fd4c06067876a5543668 Mon Sep 17 00:00:00 2001 From: Erika Pham Date: Tue, 9 Apr 2024 16:09:20 -0400 Subject: [PATCH] update rag diagram in readme --- README.md | 2 +- documentation/basic_RAG_pipeline.png | Bin 0 -> 33395 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 documentation/basic_RAG_pipeline.png diff --git a/README.md b/README.md index afb557a..538192d 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ This GitRepo provides an open-sourced implementation of a Retrival-Augmented Generation pipeline, using a graph data structure in place of a vector database.
- Diagram of a basic RAG pipeline + Diagram of a basic RAG pipeline
Diagram of a basic RAG pipeline
diff --git a/documentation/basic_RAG_pipeline.png b/documentation/basic_RAG_pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..9a9564c957f938a553ad920d1f1c9217e2e59277 GIT binary patch literal 33395 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