Getting Started
Rosetta is a Discord bot built with discord.py and Lavalink. It provides music playback, LLM-powered chat, image generation, and MyGO!!!!! anime GIF generation.
Tech Stack
- Python 3.12 with discord.py
- Lavalink v4 via Pomice for music playback
- OpenAI-compatible API for LLM chat & image generation
- Langfuse for LLM observability & tracing
- FFmpeg + ffmpeg-python for GIF generation
- Kubernetes client for Lavalink node auto-discovery
- uv for dependency management
- Docker (Alpine-based) for deployment
Quick Start
The fastest way to get Rosetta running is with Docker Compose:
See Docker Compose Deployment for the full setup, or Local Development to run from source.
Prerequisites
Before deploying, you'll need:
- A Discord bot token — create one at the Discord Developer Portal
- A Lavalink server — included in the Docker Compose setup
- (Optional) An OpenAI-compatible API endpoint for LLM features
- (Optional) A Langfuse instance for LLM observability
Discord Application Emojis
Upload the following emojis to your Discord application for the bot UI to work correctly:
success,error,youtubeprogress_start,progress,progress_mix,progress_fillprogress_end,progress_fill_end,progress_start_0
MyGO Video Data
If you want to use the /mygo command, preprocess the anime video data:
This generates the video segments and metadata in the mygo-ave-video/ directory.