mirror of
https://github.com/run-llama/notebookllama.git
synced 2026-06-30 22:17:57 -04:00
[PR #20] [MERGED] refactor: Restructure embedding CLI #28
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/run-llama/notebookllama/pull/20
Author: @nick-galluzzo
Created: 7/10/2025
Status: ✅ Merged
Merged: 7/10/2025
Merged by: @AstraBert
Base:
main← Head:refactor/custom-embeddings-cli📝 Commits (10+)
5e6ec53refactor(cli): introduce BaseEmbeddingApp to reduce code duplication5316489refactor(cli): consolidate CLI styles into single base stylesheet for DRY27a7fa7refactor(cli): improve styling and consistency840ca05refactor: migrate embedding config to screen based navigation4b55aberefactor: reorganize embedding config into modular structure9df958ffix: theme toggle7e0ce17refactor: remove unused default() function, add proper type hints and dodcumentation40b944drefactor: restructure embedding cli from single to multi-provider architecturee760d29refactor: remove reference to "other" embedding since we arent currently supporting that7730a58fix: add base screen bindings back to configuration screen📊 Changes
21 files changed (+650 additions, -476 deletions)
View changed files
📝
pyproject.toml(+1 -1)➕
tools/cli/config/__init__.py(+3 -0)➕
tools/cli/config/models.py(+12 -0)➕
tools/cli/embedding_app.py(+40 -0)➕
tools/cli/screens/__init__.py(+5 -0)➕
tools/cli/screens/base.py(+60 -0)➕
tools/cli/screens/embedding_provider.py(+62 -0)➕
tools/cli/screens/embedding_providers/__init__.py(+15 -0)➕
tools/cli/screens/embedding_providers/azure.py(+44 -0)➕
tools/cli/screens/embedding_providers/bedrock.py(+79 -0)➕
tools/cli/screens/embedding_providers/cohere.py(+49 -0)➕
tools/cli/screens/embedding_providers/gemini.py(+53 -0)➕
tools/cli/screens/embedding_providers/huggingface.py(+56 -0)➕
tools/cli/screens/embedding_providers/openai.py(+55 -0)➕
tools/cli/screens/initial.py(+44 -0)➕
tools/cli/stylesheets/base.tcss(+24 -0)➖
tools/cli/stylesheets/input.tcss(+0 -19)➖
tools/cli/stylesheets/select.tcss(+0 -19)📝
tools/cli/utils.py(+9 -274)📝
tools/create_llama_cloud_index.py(+38 -162)...and 1 more files
📄 Description
Hi! 👋
Thanks for implementing the embedding provider CLI from #12! I took a shot at refactoring the structure to improve the maintainability and extensibility.
I think this is an important refactor to allow for easier embedding model extensions so that
notebookllamacan eventually support any embedding model.What this refactor accomplishes
Architecture Configuration
BaseScreenandConfigurationScreenbase classesUnified UX
ctrl+qbinding with a more standardizedshift+enterwhen submittingMaintainability
Enhanced Features
The functionality remains almost identical, but the code is now more maintainable and extensible. Thanks again for the solid foundation! 🚀
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.