$ show nazirlouis/ada_local
This repository implements a local AI assistant for Windows with a focus on privacy and offline operation. The application features a modern Qt-based GUI with multiple tabs for chat, planning, briefing, home automation, and web search. It includes a voice pipeline with wake word detection ('jarvis'), speech-to-text, intent classification via a fine-tuned FunctionGemma model, local LLM inference through Ollama, and text-to-speech using Piper TTS. Core functionalities encompass smart home control (TP-Link Kasa), calendar/task management, weather/news aggregation, and system monitoring. The architecture is modular, separating concerns into core services (LLM, router, function execution, voice assistant) and GUI components, with communication via Qt signals and slots. Data is stored locally in SQLite databases. The project demonstrates thoughtful engineering in areas like reactive settings management, model persistence for VRAM optimization, and reusable UI components, though it maintains some Windows-specific dependencies and tight coupling in certain areas.
The LLM identified 5 files worth highlighting for reuse:
Thread-safe settings manager using QSettings with dot-notation access and Qt signals for reactive updates. Isolated from Qt GUI specifics, demonstrating a clean pattern for application configuration that could be reused in any Qt project with minimal adaptation.
Manages Ollama model loading/unloading based on usage timeouts to conserve VRAM. Implements a background timer to track last use and automatically unload inactive models. This pattern is broadly applicable to any resource-intensive service needing lazy lifecycle management and could be extracted for use with different backends.
Custom chat message bubble supporting Markdown rendering, syntax highlighting for code blocks, and text selection. Self-contained widget with minimal dependencies (primarily PySide6), offering a polished, reusable chat UI element that could be dropped into any messaging application.
Collapsible panel with animated indicator to show background processing states (e.g., 'thinking' or searching). Combines a QExpandingSection-like widget with a pulsing animation, providing a reusable pattern for indicating asynchronous operations in a Qt interface.
Real-time system monitor displaying CPU, RAM, GPU usage, and loaded Ollama model in the title bar. Uses a background thread with psutil/pynvml for periodic updates, demonstrating a clean, isolated approach to system telemetry that could be adapted for any desktop application needing resource monitoring.