feat: Add feast rag retriver functionality#5405
Merged
franciscojavierarceo merged 1 commit intofeast-dev:masterfrom Jun 24, 2025
Merged
feat: Add feast rag retriver functionality#5405franciscojavierarceo merged 1 commit intofeast-dev:masterfrom
franciscojavierarceo merged 1 commit intofeast-dev:masterfrom
Conversation
0abf934 to
fc99dd0
Compare
069fe93 to
6873c84
Compare
ec5ba98 to
40dfde0
Compare
ntkathole
reviewed
Jun 6, 2025
ntkathole
reviewed
Jun 6, 2025
jyejare
reviewed
Jun 6, 2025
Collaborator
jyejare
left a comment
There was a problem hiding this comment.
Great Progress, few comments.
7980963 to
04fd031
Compare
Collaborator
|
LGTM. Please address @ntkathole comments and fix unit tests! |
04fd031 to
f98e50c
Compare
Contributor
Author
Thanks @jyejare I have addressed all comments now. I'm not sure if it is related to changes that I have made. Will look into it further. |
099ae82 to
6d4c12d
Compare
efazal
reviewed
Jun 18, 2025
7b3ad36 to
6a9708d
Compare
astefanutti
reviewed
Jun 19, 2025
ntkathole
reviewed
Jun 23, 2025
ntkathole
reviewed
Jun 23, 2025
Co-authored-by: Esa Fazal <[email protected]> Signed-off-by: Fiona Waters <[email protected]>
franciscojavierarceo
approved these changes
Jun 24, 2025
Member
franciscojavierarceo
left a comment
There was a problem hiding this comment.
This is great! Thank you @Fiona-Waters !! Can we add a link to this in the examples in the documentation? Can be done in a follow up PR.
3 tasks
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What this PR does / why we need it:
This PR adds a FeastRagRetriever that inherits from the HuggingFace Transformers RagRetriever class. It allows for integration with feast functionality allowing RAG to be performed more easily using the Feature Store.
The following has been added:
rag_retriever.py
This module implements a custom RAG retriever by combining Feast feature store capabilities with transformer-based models. The implementation provides:
vector_store.py
This module implements a FeastVectorStore class. The FeastVectorStore takes in a FeatureStore, FeatureView and features using these to query the store via the existing retrieve_online_documents_v2 function.
setup.py
Adding entries for RAG dependencies allowing for installation with
pip install feast[rag].init.py
Adding entries for new classes added in rag_retriever.py and vector_store.py
pyproject.toml
The dependencies required for the RAG implementation have been added here.
The relevant dependencies have also been added to the relevant requirements.txt files.
feature_store.py
Changes were made to the def _validate_vector_features function. The updated function now correctly validates the length of each individual vector within a specified DataFrame column, rather than checking the total number of DataFrame columns. This change ensures that every single vector matches its expected dimension, significantly improving data integrity and error reporting. This was improved following addition of unit tests.
Unit tests
Unit tests have been included to cover the added functionality, along with some minor changes in the existing example_feature_repo_1.py file.
examples/rag-retriever
An example has been added here including, feature_repo, README, low level design image and example notebook. This currently includes implementation on Red Hat OpenShift with a remote Milvus instance.
.github/workflows
The change here is a small update suggested by @ntkathole for torch installation and error handling.
Which issue(s) this PR fixes:
Related to #5391 but get_top_docs has not been implemented here as the FeastIndex is a dummy index - the retrieval functionality exists in the FeastRagRetriever via the FeastVector store which uses
retrieve_online_documents_v2.Misc