Replace 5 bare except clauses with 'except Exception:' to improve
error handling and prevent catching system exits and keyboard interrupts:
- gui.py:155 - Queue event processing
- setup_wizard.py:184 - API response parsing
- test_credentials.py:213 - Response JSON parsing
- test_credentials.py:240 - Error response parsing
- test_credentials.py:257 - Response text formatting
This change improves code quality and follows Python best practices
for exception handling.
Corrected model list based on official Perplexity API documentation:
REMOVED (not available via API):
- llama-3.1-sonar-small-128k-online
- llama-3.1-sonar-large-128k-online
- llama-3.1-sonar-huge-128k-online
ADDED (actual API models):
- sonar-reasoning-pro (powered by DeepSeek-R1)
- sonar-deep-research (long-form research)
AVAILABLE MODELS:
1. sonar-pro (recommended for chat bots)
2. sonar (lightweight, fast)
3. sonar-reasoning (real-time reasoning)
4. sonar-reasoning-pro (advanced reasoning)
5. sonar-deep-research (research reports)
Updated info popup with:
- Accurate model descriptions from official docs
- Built on Llama 3.3 70B (sonar/sonar-pro)
- DeepSeek-R1 for sonar-reasoning-pro
- Clear use case recommendations
Updated MODEL_CHANGE.md with correct information.
Source: Perplexity API official documentation (2026)
Setup wizard improvements:
- Expanded model dropdown with 6 Perplexity models:
* sonar-pro (recommended default)
* sonar
* sonar-reasoning
* llama-3.1-sonar-small-128k-online
* llama-3.1-sonar-large-128k-online
* llama-3.1-sonar-huge-128k-online
- Added info button (?) next to model selector
- Info popup explains each model's characteristics:
* Performance
* Use cases
* Speed/quality tradeoffs
* Cost considerations
Created MODEL_CHANGE.md documentation:
- How to change model in .env file
- How to re-run setup wizard
- Detailed model descriptions
- Example configuration
Users can now easily choose the right model for their needs
and change it anytime without reconfiguring everything.
- Replace PySimpleGUI 5.0.8.3 with FreeSimpleGUI 5.1.1
- FreeSimpleGUI is a community fork without license requirements
- PySimpleGUI 5.x requires paid license after trial period
- Remove compatibility fallback code (no longer needed)
- Update documentation to reflect FreeSimpleGUI usage
Fixes: AttributeError 'module PySimpleGUI has no attribute theme'
This commit implements the full Eugen bot based on specifications in CLAUDE.md and eugen_claude.md.
Features implemented:
- Smart name recognition (@Eugen, Eugen:, etc.)
- Persistent conversation memory per user (max 25 messages, 1 hour retention)
- Perplexity Sonar API integration for AI responses
- Live monitoring dashboard with PySimpleGUI
- Setup wizard for first-time configuration
- Comprehensive logging (main log + API debug log)
Files added:
- config.py: Configuration management from .env and config.json
- utils.py: MentionDetector and Logger utility classes
- memory.py: ConversationMemory for persistent chat history
- ai_provider.py: PerplexityProvider for API integration
- gui.py: Dashboard and SetupWizard GUI components
- chatbot.py: Main EugenBot orchestrator with IRC handling
- requirements.txt: Python dependencies
- .env.example: Template for environment variables
- .gitignore: Renamed from gitignore for proper Git usage
Updated:
- README.md: Complete usage instructions and documentation
The bot is ready to use - users just need to add their API keys and run python chatbot.py