Advanced Response and Guidance User System
A personal AI assistant which has many diffrent features voice activation, local LLM inference via Ollama, a genetic algorithm-based response optimization system, RAG-enhanced knowledge retrieval, and a modern QML liquid glass interface.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ARGUS Core β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β main.py β bootstrap.py β orchestrator.py β
β β β β
β β βββββββββββββββββββββββΌββββββββββββββββββββββ β
β β β β β β
β βΌ βΌ βΌ βΌ β
β ββββββββββββ βββββββββββββββ βββββββββββββ β
β β Speech β β NLP Engine β β Memory β β
β β System β β β β System β β
β β β β β’ Chatbot β β β β
β β β’ Listen β β β’ Intent β β β’ Short β β
β β β’ Speak β β β’ Reward β β β’ Long β β
β β β’ Mimic3 β β β’ GA Rerank β β β’ Persona β β
β ββββββββββββ βββββββββββββββ βββββββββββββ β
β β β β β
β β βββββββββββββββββββββΌββββββββββββββββββββββ β
β β β β β
β βΌ βΌ βΌ β
β ββββββββββββββββ βββββββββββββββ βββββββββββββ β
β β GUI/QML β β RAG β β Actions β β
β β β β System β β β β
β β β’ ChatPanel β β β β β’ Apps β β
β β β’ BrainViz β β β’ WebRAG β β β’ Timer β β
β β β’ LiquidGlassβ β β’ Scraper β β β’ Weather β β
β ββββββββββββββββ βββββββββββββββ β β’ Stocks β β
β β β’ News β β
β βββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- chatbot.py - Local LLM inference via Ollama API, candidate generation with configurable temperature, top-k/top-p sampling
- chatbot_init.py - Initializes the chatbot, reward system, and conversation history
- intent.py - Hybrid intent recognition combining rule-based patterns with a fine-tuned ML classifier (hosted on HuggingFace:
bjw333/intent_model_argus) - reward.py - Dynamic reward system evaluating responses on:
- Semantic relevance (cosine similarity via sentence-transformers)
- Sentiment alignment (VADER)
- Grammar quality (LanguageTool)
- Clarity and directness metrics
The chatbot uses a genetic algorithm to refine response candidates:
- Population Generation - Multiple response candidates generated with varied temperatures
- Fitness Evaluation - Each candidate scored by the reward system
- Selection - Top performers selected as parents
- Crossover - Semantic-aware text combination of parent responses
- Mutation - Semantic drift mutation to explore response space
- Final Refinement - Best candidate passed through a final generation loop
Three-tier persistent memory stored in core/Argus_memory_storage/:
- short_term.json - Recent conversation turns with rewards
- long_term.json - Distilled important information
- personality.json - User preferences and personality embeddings
- web_rag.py - Retrieval-Augmented Generation using SQLite + sentence embeddings
- intelligent_scraper.py - Async web scraper with quality filtering, rate limiting, and domain diversity
- scraper_service.py - Background service for continuous knowledge acquisition
- listen.py - Wake word detection ("Argus") + speech recognition via SpeechRecognition/Whisper
- speak.py - Text-to-speech output
- speechmanager.py - Mimic3 TTS with pitch/speed control, queued playback, interrupt handling
Recognized intents with hybrid ML + rule-based classification:
ai_response- General conversation (routed to LLM)searchsomething- Wikipedia/web searchopen/close- Application managementtimer- Set timersstock_data- Stock price lookupweather_data- Weather queriesflight_data- Flight statuscrypto_data- Cryptocurrency pricesnews- News headlinesvolume_control- System volumeexit- Shutdown ARGUStime- Time queriescoinflip- Coin flipcocktail_intent- Cocktail recipesconnectionwithinternet- Internet status check
PySide6/QML interface with liquid glass aesthetic:
- MainView.qml - Main application window
- ChatPanel.qml - Message display with animated bubbles
- BrainCanvas.qml - 3D neural network visualization (audio-reactive)
- LiquidGlassCard.qml - Reusable glass-effect components
- backend_bridge.py - Python-QML signal bridge
- Put any custom tools within this folder
- Python 3.10+
- macOS (primary target, adaptable to other platforms)
- ~8GB+ RAM recommended for local LLM inference
# Clone the repository
git clone https://github.com/BJW333/ARGUS.git
cd ARGUS
# Install dependencies
pip install -r requirements.txt
# Install Mimic3 TTS (for speech output)
pip install mycroft-mimic3-tts
# Run ARGUS
python3 main.py# Optional - Memory storage location
export ARGUS_MEMORY_DIR="/path/to/memory"
# Optional - Enable background web learning
export ARGUS_WEBLEARN_ENABLED=1
export ARGUS_WEBLEARN_CYCLE_SEC=3600- Launch ARGUS:
python3 main.py - Wait for the greeting
- Say "Argus" to activate voice input
- Speak your query or command
- Type in the chat panel for text input
- "Argus, what's the weather like?"
- "Argus, open Spotify"
- "Argus, set a timer for 5 minutes"
- "Argus, what's the price of Bitcoin?"
- "Argus, tell me about quantum computing"
update web knowledge- Ingest new scraped content into RAGstart web learning- Enable background web scrapingstop web learning- Disable background scrapingexit- Shutdown ARGUS
ARGUS uses Ollama for local inference. Ensure Ollama is running and configure your model in config_metrics/main_config.py.
- Intent Classification: bjw333/intent_model_argus
- Code Generation: bjw333/macosargus-code
- Object/Face Recognition: bjw333/ARGUS_obj_person_recog_model
| Component | Technology |
|---|---|
| Language | Python 3.10+, QML |
| LLM Inference | Ollama |
| Speech Recognition | SpeechRecognition, OpenAI Whisper |
| Text-to-Speech | Mimic3 |
| NLP | spaCy, sentence-transformers, NLTK |
| ML Framework | PyTorch, TensorFlow, Transformers |
| GUI | PySide6 (Qt for Python), QML |
| Database | SQLite (RAG storage) |
| Web Scraping | aiohttp, BeautifulSoup, Selenium |
ARGUS/
βββ main.py # Entry point
βββ core/
β βββ orchestrator.py # Main command routing
β βββ memory_system.py # Persistent memory
β βββ bootstrap.py # Initialization
β βββ input_bus.py # GUI signal bridge
β βββ Argus_memory_storage/
βββ nlp/
β βββ chatbot.py # LLM + GA optimization
β βββ intent.py # Intent classification
β βββ reward.py # Response evaluation
βββ speech/
β βββ listen.py # Voice input
β βββ speak.py # Voice output
β βββ speechmanager.py # TTS management
βββ rag/
β βββ web_rag.py # RAG retrieval
βββ web_learning/
β βββ intelligent_scraper.py
β βββ scraper_service.py
βββ gui_qml/
β βββ MainView.qml
β βββ ChatPanel.qml
β βββ BrainCanvas.qml
β βββ backend_bridge.py
βββ actions/
β βββ actions.py # Command implementations
βββ config_metrics/
β βββ main_config.py
β βββ logging.py
βββ trainingdata/
No one else has contributed to this project I have built it all solo. AI was used to generate comments in the code and the README with this project for efficiency purposes.
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
MIT License
This project is under active development.