This Experimental project is a part of my effort at demystifying Retrieval-Augmented Generation (RAG) served as a desktop app.
This is a almost framework free, hands on implementation in Rust and a detailed and step-by-step guide to building this can be found in this series: Desktop App for Document QA with RAG. Here's the outline of what to expect:
- Part 1: Generating Embeddings: we implement a workflow to generate Embeddings from text data using Stella_en_1.5B_v5 and some context-aware text-splitting techniques using the crate
text-splitter
. - Part 2: Vector Storage we’ll build our own mini Vector Store inspired by Spotify’s ANNOY.
- Part 3: Document Layout Analysis, Text Extraction and Generation: we code up a pipeline to analyze and extract text from
.pdf
files and also set the foundation for text generation with a LLaMA Model. - **Part 4: Indexing and Search: we work on the
retrieve-and-answer
flow from our corpus. - Part 5: Techniques: we implement and evaluate some techniques for a better RAG.
rag-out.mp4
This video has been sped up
This is an Experiment and NOT a production ready system!
If you build something cool with this and/ or extend this for fun feel free to create a PR.
This project is licensed under either of Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0) MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT) at your option.