Code von github.com/Kenearos/KI-Chat-Bot-Eugen
- Add more nickname length variants (4-12 chars) - Add explicit 'Kene' nickname for names starting with 'kene' - Fix duplicate removal to be case-insensitive |
||
|---|---|---|
| .github | ||
| tests | ||
| .coveragerc | ||
| .env.example | ||
| .gitignore | ||
| ai_provider.py | ||
| chatbot.py | ||
| CLAUDE.md | ||
| config.py | ||
| eugen_claude.md | ||
| gui.py | ||
| LICENSE | ||
| LICENSE_GUIDE.md | ||
| memory.py | ||
| MODEL_CHANGE.md | ||
| pytest.ini | ||
| README.md | ||
| requirements.txt | ||
| setup_wizard.py | ||
| test_irc.py | ||
| test_mention.py | ||
| utils.py | ||
Eugen - Intelligent Twitch Chat Bot
An AI-powered Twitch chat bot specializing in Gaming and 3D Printing topics, powered by Perplexity Sonar API.
Features
- 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)
Quick Start
Prerequisites
- Python 3.9+ (3.11+ recommended)
- Twitch account for the bot
- Perplexity API key
Installation
# 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.txt
Configuration
Option 1: Setup Wizard (Recommended)
Run the interactive setup wizard to configure the bot:
python setup_wizard.py
The 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
Option 2: Manual Configuration
Copy .env.example to .env and fill in your credentials:
cp .env.example .env
Edit .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
Getting API Keys
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-)
Running the Bot
python chatbot.py
The dashboard will open automatically showing live activity.
Usage
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...
Project Structure
eugen/
├── chatbot.py # Main entry point
├── 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
Documentation
- CLAUDE.md: Quick reference guide for Claude Code
- eugen_claude.md: Detailed German documentation with architecture and implementation details
Development
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
Troubleshooting
Bot doesn't respond:
- Check that .env has correct OAuth token and API key
- Verify bot is in the correct channel
- Check logs/eugen.log for errors
API errors:
- Verify Perplexity API key is valid
- Check your API credits at perplexity.ai
- Enable DEBUG_MODE=true in .env for detailed logs
IRC connection failed:
- Verify internet connection
- Check firewall settings for port 6667
- Regenerate Twitch OAuth token if expired
License
See LICENSE file for details.
Contributing
Contributions welcome! Please open an issue or pull request.