KRunner Semantic Search
KDE Plasma 6 KRunner için Google DeepMind EmbeddingGemma 2 modeliyle çalışan, %100 yerel, hibrit ve GPU hızlandırmalı anlamsal dosya arama eklentisi ve Qt6 grafik yöneticisi.
100% local, hybrid and GPU-accelerated semantic desktop search plugin and Qt6 manager for KDE Plasma 6 KRunner powered by EmbeddingGemma 2.
Proje Hakkında
KRunner Semantic Search, KDE Plasma 6 masaüstü ortamının yerleşik arama aracı KRunner için geliştirilmiş, Google DeepMind’ın EmbeddingGemma 2 (GGUF) modelini kullanan, tamamen yerel ve gizlilik odaklı bir anlamsal dosya arama motoru ve Qt6 grafik yöneticisidir.
Klasik masaüstü arama indeksleyicilerinin (örneğin Baloo) aksine, yalnızca tam dosya adı eşleşmesine bağlı kalmaz. Dosyanın adını tam hatırlayamasanız bile içeriğindeki kavramlar, özetler veya genel fikirler üzerinden sorgulama yapmanızı sağlar (örneğin “kira sözleşmesi pdf”, “vektör veritabanı kıyaslama”, “makine öğrenmesi ders notu”).
Temel Özellikler
- %100 Yerel ve Gizli: Tüm embedding hesaplamaları ve vektör aramaları internete çıkmadan doğrudan yerel donanımda yürütülür.
- Hibrit Arama Motoru: Tam dosya adı eşleşmesini (lexical)
sqlite-veck-NN kosinüs benzerliğiyle (dense vector) birleştirir; hem kesin dosya aramalarında hem de anlamsal kavram sorgularında en yüksek doğruluğu sunar. - Donanım Algılamalı Hızlandırma: NVIDIA CUDA (RTX 4060 ile sorgu başına ~10ms) desteğini otomatik algılar; GPU bulunmayan ortamlarda çok iş parçacıklı CPU moduna zarifçe geriler.
- Qt6 Grafik Yönetici (
krunner-semantic-config): İndekslenen dizinleri, gerçek zamanlı indeksleme yüzdesini (%xx), işlemci/GPU modunu ve benzerlik eşiklerini yöneten modern masaüstü arayüzü. - Tek Tıkla Model Yükleyici: 333 MB boyutundaki resmi EmbeddingGemma 2 modelini doğrudan ayarlar arayüzünden indirip yapılandırma olanağı.
- D-Bus Asenkron Daemon:
org.kde.krunner1protokolü üzerinden tamamen asenkron çalışır; KRunner arayüzünde sıfır yazım gecikmesi sağlar.
Teknik Mimari
flowchart TD
User["KRunner Kullanıcı Girişi"] -->|D-Bus org.kde.krunner1| Daemon["krunner-semantic Daemon"]
Daemon --> Lexical["Lexical Filename Indexer (SQLite)"]
Daemon --> Vector["Dense Vector Search (sqlite-vec)"]
Vector --> Model["EmbeddingGemma 2 GGUF (llama.cpp / CUDA)"]
Lexical & Vector --> Rerank["Hibrit Skorlama & Eşik Filtresi"]
Rerank --> Results["KRunner Anlık Sonuç Listesi"]
About the Project
KRunner Semantic Search is a 100% local, privacy-first semantic file search plugin and graphical desktop manager for KDE Plasma 6 KRunner, powered by Google DeepMind’s EmbeddingGemma 2 (GGUF) model.
Unlike traditional keyword-based desktop search engines (e.g., Baloo) that strictly match exact filenames or raw substrings, KRunner Semantic Search understands the contextual meaning of your files. You can search naturally using descriptions, concepts, or partial ideas (e.g., “rental agreement pdf”, “vector database benchmark”, “machine learning syllabus”) even when you cannot remember the exact filename.
Key Features
- 100% Local & Private: All embeddings and vector calculations run strictly on your machine. Zero telemetry, zero cloud APIs, and zero network leakage.
- Hybrid Search Engine: Combines instant lexical filename matching with dense vector KNN cosine distance (
sqlite-vec). Searching for exact filenames hits immediately, while conceptual queries retrieve contextual document chunks. - Hardware-Aware Acceleration: Automatically detects and offloads inference to NVIDIA CUDA (
RTX 4060tested at ~10ms per query) with seamless graceful degradation to multi-threaded CPU mode on systems without a dedicated GPU. - Native Qt6 Graphical Manager (
krunner-semantic-config): Modern desktop GUI to manage watched folders, view real-time indexing progress (%xx), switch compute devices, and adjust search thresholds. - One-Click Model Installer: Download and configure the official 333 MB EmbeddingGemma 2 GGUF model directly from the settings interface.
- Lightweight D-Bus Daemon: Runs asynchronously via
org.kde.krunner1, ensuring zero typing latency or UI lag inside KRunner.
Architecture
flowchart TD
User["KRunner User Input"] -->|D-Bus org.kde.krunner1| Daemon["krunner-semantic Daemon"]
Daemon --> Lexical["Lexical Filename Indexer (SQLite)"]
Daemon --> Vector["Dense Vector Search (sqlite-vec)"]
Vector --> Model["EmbeddingGemma 2 GGUF (llama.cpp / CUDA)"]
Lexical & Vector --> Rerank["Hybrid Scoring & Threshold Filter"]
Rerank --> Results["KRunner Instant Results"]