This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 🚀 Quickstart: RAG, Milvus, and Docling with Feast
This project demonstrates how to use **Feast** to power a **Retrieval-Augmented Generation (RAG)** application.
In particular, this example expands on the basic RAG demo to show:
1. How to transform PDFs into text data with [Docling](https://docling-project.github.io/docling/) that can be used by LLMs
2. How to use [Milvus](https://milvus.io/) as a vector database to store and retrieve embeddings for RAG
3. How to transform PDFs with Docling during ingestion
## 💡 Why Use Feast for RAG?
- **Online retrieval of features:** Ensure real-time access to precomputed document embeddings and other structured data.
- **Declarative feature definitions:** Define feature views and entities in a Python file and empower Data Scientists to easily ship scalabe RAG applications with all of the existing benefits of Feast.
- **Vector search:** Leverage Feast’s integration with vector databases like **Milvus** to find relevant documents based on a similarity metric (e.g., cosine).
- **Structured and unstructured context:** Retrieve both embeddings and traditional features, injecting richer context into LLM prompts.
- **Versioning and reusability:** Collaborate across teams with discoverable, versioned feature transformations.
---
## 📂 Project Structure
- **`data/`**: Contains the demo data, including Wikipedia summaries of cities with sentence embeddings stored in a Parquet file.
- Note, you ahave to use the docling-demo.ipynb to construct the `docling_samples.parquet` file, the `metadata_samples.parquet` file are provided for you.
- **`example_repo.py`**: Defines the feature views and entity configurations for Feast.
- **`feature_store.yaml`**: Configures the offline and online stores (using local files and Milvus Lite in this demo).
The project has two main notebooks:
1. [`docling-demo.ipynb`](./docling-demo.ipynb): Demonstrates how to use Docling to extract text from PDFs and store the text in a Parquet file.
2. [`docling-quickstart.ipynb`](./docling-quickstart.ipynb): Shows how to use Feast to ingest the text data and store and retrieve it from the online store.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
feat: Adding Docling RAG demo #5109
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
feat: Adding Docling RAG demo #5109
Filter by extension
Viewed files
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
Uh oh!
There was an error while loading. Please reload this page.