An AI-powered Twitch chat bot specializing in Gaming and 3D Printing topics, powered by Perplexity Sonar API.
- Smart Name Recognition: Automatically responds when mentioned (@Eugen, Eugen:, etc.)
- Persistent Memory: Maintains conversation history per user (max 25 messages)
- Context-Aware: Remembers previous conversations for up to 1 hour
- Perplexity Integration: Uses Perplexity Sonar API for intelligent, real-time responses
- Live Dashboard: GUI monitoring interface showing all activity in real-time
- Topics: Gaming (WoW, Elden Ring), 3D Printing (Prusa, Bambu, Creality), Tech (Python, Linux)
- Python 3.9+ (3.11+ recommended)
- Twitch account for the bot
- Perplexity API key
# Clone the repository
git clone https://github.com/Kenearos/KI-Chat-Bot-Eugen.git
cd KI-Chat-Bot-Eugen
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
.\venv\Scripts\Activate.ps1
# On Linux/Mac:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtRun the interactive setup wizard to configure the bot:
python setup_wizard.pyThe wizard will:
- Guide you through getting Twitch OAuth token
- Help you set up Perplexity API key
- Validate your credentials
- Create necessary directories and config files
Copy .env.example to .env and fill in your credentials:
cp .env.example .envEdit .env with your values:
TWITCH_OAUTH_TOKEN=oauth:your_token_here
TWITCH_BOT_NICKNAME=Eugen
TWITCH_CHANNEL=#your_channel_here
PERPLEXITY_API_KEY=pplx-your_key_here
Twitch OAuth Token:
- Visit twitchtokengenerator.com
- Generate token with
chat:readandchat:editscopes - Copy the token (should start with
oauth:)
Perplexity API Key:
- Visit perplexity.ai/api
- Sign up/Login
- Generate new API key
- Copy the key (should start with
pplx-)
Before running the bot, test your credentials:
python test_credentials.pyThis will:
- Validate your Twitch OAuth token with detailed diagnostics
- Test your Perplexity API key and check model access
- Provide specific error messages and fixes for common issues
- Automatically detect if
sonar-prois unavailable and suggestsonarfallback
Example output:
✓ Twitch IRC: PASS
✓ Perplexity API: PASS
🎉 All credentials valid! Bot is ready to run.
python chatbot.pyThe dashboard will open automatically showing live activity.
Once running, the bot responds when mentioned in Twitch chat:
User: @Eugen what's the best class in WoW?
Eugen: @User The best class depends on your playstyle...
User: Eugen, how do I level my 3D printer?
Eugen: @User For bed leveling, start by...
eugen/
├── chatbot.py # Main entry point
├── setup_wizard.py # Interactive setup tool
├── test_credentials.py # Credential validator
├── config.py # Configuration management
├── gui.py # Dashboard GUI
├── ai_provider.py # Perplexity API integration
├── memory.py # Conversation memory
├── utils.py # Helper functions
├── requirements.txt # Python dependencies
├── .env # Your secrets (DO NOT COMMIT)
├── data/
│ └── conversations/ # User chat histories
└── logs/
├── eugen.log # Main log
└── api_debug.log # API debug logs
- CLAUDE.md: Quick reference guide for Claude Code
- eugen_claude.md: Detailed German documentation with architecture and implementation details
The bot is built with:
- Python 3.9+
- Perplexity Sonar API for AI responses
- Twitch IRC for chat integration
- PySimpleGUI for dashboard
- Async/await for concurrent operations
First step: Run the credential validator
python test_credentials.pyThis will identify exactly what's wrong and provide specific fixes.
Twitch OAuth Token Invalid:
- ✗ Error:
Login authentication failed - Fix:
- Go to https://twitchtokengenerator.com
- Select "Bot Chat Token"
- Make sure you're logged in as the bot account
- Copy the new token (including
oauth:prefix) - Update
TWITCH_OAUTH_TOKENin.env
Bot nickname mismatch:
- Token must be generated by the same account as
TWITCH_BOT_NICKNAME - If bot nickname is
EugenBot, you must be logged into Twitch asEugenBotwhen generating the token
Perplexity Model Not Available:
- ✗ Error:
400 Bad Requestor model not accessible - Fix:
- Your API key might not have access to
sonar-pro - The setup wizard will automatically suggest
sonaras fallback - Or manually change
PERPLEXITY_MODEL=sonarin.env
- Your API key might not have access to
Bot doesn't respond in chat:
- Run
python test_credentials.pyto verify credentials - Check that bot is in the correct channel
- Check
logs/eugen.logfor errors - Verify bot was mentioned correctly (
@EugenorEugen:)
IRC connection failed:
- Check internet connection
- Verify firewall allows port 6667
- Run credential validator for detailed diagnostics
API rate limits:
- Check your Perplexity API credits at https://www.perplexity.ai/settings/api
- Enable
DEBUG_MODE=truein.envfor detailed API logs
See LICENSE file for details.
Contributions welcome! Please open an issue or pull request.