Localume A modern desktop application for semantic file search and real-time monitoring using vector embeddings and LLM-powered search optimization.
Localume is a powerful desktop application that enables semantic search across your documents using advanced vector embeddings and retrieval technology. The application monitors specified directories in real-time, automatically indexing new and modified files to maintain an up-to-date searchable database.
-
Semantic Search: Find documents based on meaning, not just keywords
-
Real-time Monitoring: Automatic indexing of new and modified files
-
Multiple File Support: Handles PDF, TXT, and Markdown files
-
Modern UI: Clean, intuitive interface with light/dark theme support
-
System Tray Integration: Runs quietly in the background
-
LLM-Powered: Query optimization using Google's Gemini API (Optional)
-
Python 3.8+
-
Windows 11 (64-bit) (tested on windows for the moment)
-
Google Gemini API key(Optional)
- Clone the repository:
git clone https://github.com/yourusername/smart-file-search.git
cd smart-file-search
- Create and activate a virtual environment:
python -m venv venv
.\venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Start the application:
cd ui
python3 gui_app.py
-
Add folders to monitor:
- Click "Add Folder" button
- Select directories containing documents to index
- The application will begin scanning and indexing files
-
Search for documents:
- Enter your search query in natural language
- Results will be displayed with relevant metadata
- Double-click results to open files
The application uses a modular architecture. Here's an example of performing a search:
from core.search.search_engine import SearchEngine
from core.embeddings.embedding_generator import EmbeddingModel
from core.embeddings.vector_store import VectorStore
# Initialize components
vector_store = VectorStore(dimension=384)
embedding_model = EmbeddingModel()
search_engine = SearchEngine(vector_store, embedding_model)
# Perform search
results = search_engine.search("documents about project requirements", top_k=10)
The project follows a clean, modular architecture:
smart-file-search/
├── core/
│ ├── embeddings/ # Vector embedding generation and storage
│ ├── scanner/ # File monitoring and content extraction
│ ├── search/ # Search engine implementation
│ ├── llm/ # LLM service integration
│ └── utils/ # Shared utilities
│
├── data/
│ ├── faiss.index # stores document vector embeddings
│ └── id_map.pkl # stores a mapping between document IDs and their metadata
│
├── ui/ # Desktop GUI implementation
Contributions are welcome!
- Follow PEP 8 style guide
- Add type hints to all functions
- Include docstrings for classes and methods
- Write unit tests for new features
- Update documentation as needed
This project is licensed under the GNU General Public License (GPL-3.0) License - see the LICENSE file for details.
- Azure Theme for the modern UI
- sentence-transformers for text embeddings
- Google's Gemini API for query optimization
- Facebook vector database FAISS
- Mohamed Karim Ben Boubaker | LinkedIn
Q: How does the semantic search work?
A: The application converts documents into vector embeddings using sentence transformers, enabling similarity-based search that understands context and meaning rather than just matching keywords.
Q: What file types are supported?
A: Currently, the application supports PDF, TXT, and Markdown files. Support for additional file types is planned for future releases.
Note: This project is under active development. Features and documentation may be updated frequently.