Repository navigation
feat(cli): Updated feast init demo by adding rag template - #5946
Conversation
| help="Directory path where the repository will be created (default: create subdirectory with project name)", | ||
| ) | ||
| def init_command(project_directory, minimal: bool, template: str, repo_path: str): | ||
| @click.option( |
There was a problem hiding this comment.
IMO, we should just add rag to the default template and not do scenarios.
There was a problem hiding this comment.
suggestion are addressed, may be I can make one more PR for recommendation engine one, will keep this PR scope small as of now, thanks !
There was a problem hiding this comment.
@franciscojavierarceo The ideology of scenario is coming from #5264. The template are backend-based and without much of user context to it WHEREAS scenarios are real production-like deployments that customers can directly try and gain experience of feast usage with given Notebooks/Readme in deployment scenarios. So I would prefer to go with scenario and templates as two different options.
The plan also to design a feast-lab(within feast OR outside) with multiple scenarios to try out like banking/RAG/recommendation etc and hence by using -s OR --scenario we could have directly pull those feat-labs scenarios.
What do you think on this ?
There was a problem hiding this comment.
I guess I think we could put them all in one bc they're lightweight examples
There was a problem hiding this comment.
Thanks for the review!
Regarding the current scope: I’ve implemented the RAG template (City Wikipedia) and merged it with the driver example. As of now, running feast init <project_name> will create both projects in the same directory, allowing users to navigate to either and explore the demos.
I deliberately held off on adding the Recommendation System in this PR to keep the changes focused and easier to review.
Plan for immediate follow-up PRs is:
- Add the Recommendation System (so feast init will eventually generate three demos).
- Extend the driver demos to include ODFV transforms.
left a comment
•
There was a problem hiding this comment.
LGTM, just a concern about template vs scenario raised at #5946 (comment) before we merge it.
| ), | ||
| ], | ||
| source=city_summaries_source, | ||
| ttl=timedelta(hours=2), |
There was a problem hiding this comment.
I think for RAG use case TTL could be in days than hours, wdyt ?
79b5552 to
5554f43
Compare
1e1363d to
dc75cf5
Compare
commented
Mar 3, 2026
|
@Vperiodt Nice! Could you please paste the |
5621840 to
993449e
Compare
commented
Mar 6, 2026
|
One of the big disadvantage I am seeing with this change is RAG template won't work without additional dependencies (pymilvus, torch, transformers). This could affect getting-started experience. Thoughts @franciscojavierarceo ? |
| repo_dir = temp_path / project_name | ||
| data_dir = repo_dir / "data" | ||
| repo_config = repo_dir / "feature_store.yaml" | ||
| repo_config = repo_dir / "feature_repo" / "feature_store.yaml" |
There was a problem hiding this comment.
@Vperiodt This breaks operator functioning.
With this PR, feast init sample_init (no -t flag) creates:
sample_init/
├── driver/feature_repo/...
├── rag/feature_repo/...
But the operator expects:
sample_init/
├── feature_repo/... <-- DOES NOT EXIST
There was a problem hiding this comment.
regarding this particular test we use feast init repo_name --template local, so we get a single feature_repo/ and the test overwrites that file to check that feast apply fails for invalid project names.
commented
Mar 6, 2026
may be instead of changing default scenario of feast init, we can make multi-demo flow to be opt-in with new option |
|
@Vperiodt After reviewing the concerns raised by @ntkathole around operator breakage and heavy dependencies (pymilvus, torch, transformers) affecting the default getting-started experience, here's are my thoughts: The RAG template should be opt-in, not the default The default This means:
Could you please:
Once rebased and updated, we can get this across the line quickly. Thanks! |
left a comment
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
🐛 1 issue in files not directly in the diff
🐛 Integration test not updated for new default feast init multi-demo directory structure (sdk/python/tests/integration/online_store/test_remote_online_store.py:229-231)
The PR changes feast init (without --template) to create a multi-demo layout ({project}/driver/feature_repo/ and {project}/rag/feature_repo/) instead of the previous single-repo layout ({project}/feature_repo/). However, _create_remote_client_feature_store at sdk/python/tests/integration/online_store/test_remote_online_store.py:229 still calls runner.run(["init", project_name]) without --template "local", then on line 231 constructs repo_path = os.path.join(temp_dir, project_name, "feature_repo") — a path that no longer exists under the new default behavior. This will cause the test to fail because _overwrite_remote_client_feature_store_yaml will try to write to a nonexistent directory, and FeatureStore(repo_path=repo_path) on line 252 will fail. All other test call sites (e.g., test_cli_chdir.py:30, test_offline_server.py:73, auth_permissions_util.py:39, test_repo_operations.py:187) were correctly updated to pass --template "local", but this one was missed.
View 15 additional findings in Devin Review.
Add a new RAG (Retrieval-Augmented Generation) template that can be selected via `feast init -t rag`. The template provides a City Q&A demo using Feast for feature management and Milvus for vector search. The default `feast init` behavior is unchanged — it continues to use the local template, preserving operator compatibility and avoiding heavy dependencies (pymilvus, torch, transformers) in the default getting-started flow. Fixes feast-dev#5264 Signed-off-by: Vanshika Vanshika <[email protected]> rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED
caffc46 to
f568630
Compare
commented
May 11, 2026
|
hello ! @jyejare , ready for review |
commented
Jul 23, 2026
|
@Vperiodt Please resolve conflicts and will merge |
Resolve cli.py conflict by keeping master's modular CLI and re-adding the opt-in `rag` template choice for feast init. Signed-off-by: Vanshika Vanshika <[email protected]> rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #5946 +/- ##
==========================================
+ Coverage 46.44% 46.46% +0.01%
==========================================
Files 414 414
Lines 50134 50138 +4
Branches 7173 7173
==========================================
+ Hits 23285 23295 +10
+ Misses 25212 25204 -8
- Partials 1637 1639 +2
... and 2 files with indirect coverage changes Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
commented
Jul 27, 2026
done! |
commented
Jul 29, 2026
|
Again there are conflicts @Vperiodt |
Rebase failed
What this PR does / why we need it:
demos.mov
Which issue(s) this PR fixes:
Fixes : #5264