An intelligent Discord bot for EVE Online with Retrieval-Augmented Generation (RAG) powered by local LLM and a comprehensive knowledge base of 300+ documents.
- π€ AI-Powered Chat - Natural language conversations about EVE Online
- π 332+ Document Knowledge Base - EVE Uni Wiki articles + Static Data Export
- π Ship Database - 100+ ships with complete stats and descriptions
- βοΈ Module Database - 200+ modules and items with technical details
- π° Live Market Data - Real-time prices via ESI API
- β‘ Redis Caching - Fast response times
- π Local LLM - Complete privacy, runs on your own hardware
- π³ Fully Dockerized - Easy deployment and scaling
Ask questions like:
- "What's the difference between a Frigate and a Cruiser?"
- "Show me the stats for an Astero"
- "How does capacitor management work?"
- "Best fitting for PvP Rifter?"
- "What are Abyssal Deadspace sites?"
- "Current price for Tritanium in Jita?"
The bot uses RAG to provide accurate, contextual answers based on official EVE data and community knowledge.
βββββββββββββββββββ
β Discord Users β
ββββββββββ¬βββββββββ
β
v
βββββββββββββββββββββββββββββββββββ
β Discord Bot (Python) β
β - discord.py β
β - Conversation Manager β
β - Command Handler β
ββββββ¬βββββββββββββββββββ¬ββββββββββ
β β
v v
ββββββββββββββββ ββββββββββββββββ
β Ollama β β Redis β
β (Local LLM) β β (Cache) β
ββββββββ¬ββββββββ ββββββββββββββββ
β
v
ββββββββββββββββββββ
β ChromaDB (RAG) β
β 332 Documents β
β - Wiki Articles β
β - Ship Data β
β - Module Data β
ββββββββββββββββββββ
- Docker & Docker Compose
- Ollama installed locally
- Discord Bot Token (Create one here)
git clone https://github.com/burnshall-ui/-AI_lokal_Discord_Bot.git
cd -AI_lokal_Discord_Bot# Install models
ollama pull llama3.1:8b
ollama pull nomic-embed-text# Copy example config
cp .env.example .env
# Edit .env and add your Discord Bot Token
nano .env# Start all services
docker compose up -d
# Check logs
docker logs eve-discord-bot -f# Load EVE Uni Wiki articles (~32 documents)
docker exec eve-discord-bot python3 load_knowledge.py --wiki-only
# (Optional) Download and load SDE data
cd data
mkdir -p sde
cd sde
wget https://www.fuzzwork.co.uk/dump/sqlite-latest.sqlite.bz2
bunzip2 sqlite-latest.sqlite.bz2
# Load ships and modules (~300 documents)
docker exec eve-discord-bot python3 load_knowledge.py --sde-onlyUse the OAuth2 URL from Discord Developer Portal with these scopes:
botapplications.commands
Permissions needed: Send Messages, Read Message History, Use Slash Commands
Mention the bot to start a conversation:
@Nostromo AI What is a Frigate?
!help- Show all available commands!status- Bot status and stats!rag- RAG system statistics!rag-reload- Reconnect to ChromaDB!clear- Clear conversation history!model [name]- Change LLM model
!price <item>- Get market price for an item!ship <name>- Get ship information!server- EVE Online server status
All configuration is done via .env file. See .env.example for template.
| Variable | Description | Default |
|---|---|---|
DISCORD_BOT_TOKEN |
Your Discord bot token | Required |
OLLAMA_BASE |
Ollama API endpoint | http://localhost:11434 |
OLLAMA_MODEL |
LLM model for chat | llama3.1:8b |
OLLAMA_EMBEDDING_MODEL |
Model for embeddings | nomic-embed-text |
CHROMADB_HOST |
ChromaDB host | localhost |
CHROMADB_PORT |
ChromaDB port | 8000 |
REDIS_HOST |
Redis host | localhost |
REDIS_PORT |
Redis port | 6379 |
COMMAND_PREFIX |
Bot command prefix | ! |
# Load all curated articles
docker exec eve-discord-bot python3 load_knowledge.py --wiki-only
# Load specific number of articles
docker exec eve-discord-bot python3 load_knowledge.py --wiki-only --wiki-limit 10# Download SDE database (one-time)
cd data/sde
wget https://www.fuzzwork.co.uk/dump/sqlite-latest.sqlite.bz2
bunzip2 sqlite-latest.sqlite.bz2
# Load into ChromaDB
docker exec eve-discord-bot python3 load_knowledge.py --sde-only
# Custom amounts
docker exec eve-discord-bot python3 load_knowledge.py --sde-only --ships 50 --modules 100docker exec eve-discord-bot python3 load_knowledge.py --botheve-discord-bot/
βββ bot.py # Main bot application
βββ rag_system.py # ChromaDB RAG implementation
βββ sde_loader.py # Static Data Export loader
βββ wiki_scraper.py # EVE Uni Wiki scraper
βββ load_knowledge.py # Knowledge base management CLI
βββ esi_client.py # ESI API client
βββ docker-compose.yml # Docker services configuration
βββ Dockerfile # Bot container image
βββ requirements.txt # Python dependencies
βββ .env.example # Environment template
βββ README.md # This file
# Check logs
docker logs eve-discord-bot --tail 50
# Verify all services are running
docker ps
# Restart services
docker compose restart# Reconnect via Discord
!rag-reload
# Or restart ChromaDB
docker restart eve-chromadb# Check ChromaDB status
docker exec eve-discord-bot python3 -c "from rag_system import get_rag_system; print(get_rag_system().get_stats())"
# Reload knowledge base
docker exec eve-discord-bot python3 load_knowledge.py --wiki-only- Response Time: 1-3 seconds for typical queries
- Memory Usage: ~500 MB (bot + ChromaDB + Redis)
- Knowledge Base: 332 documents, ~15 MB embedded
- LLM: Runs on host GPU/CPU (not in container)
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- EVE University - For the comprehensive wiki
- CCP Games - For EVE Online and the ESI API
- Fuzzwork - For SDE database conversions
- Ollama - For local LLM inference
- ChromaDB - For vector database and RAG
- discord.py - For Discord API integration
This is a third-party tool and is not affiliated with or endorsed by CCP Games. EVE Online and all associated logos and designs are the intellectual property of CCP hf.
Made with β€οΈ for the EVE Online community
Fly safe, capsuleers! o7