Yona is an agentic AI K-pop star system that can create songs, generate lyrics, and interact with users through natural language. It uses OpenAI for decision-making, MusicAPI.ai for song creation, and Supabase for data storage.
- Song Creation: Create K-pop songs with custom lyrics and styles
- AI-Generated Lyrics: Generate lyrics based on concepts or themes
- Agentic Interaction: Interact with Yona using natural language
- Database Storage: Store and retrieve songs from Supabase
- Python 3.8+
- OpenAI API key
- MusicAPI.ai API key
- Supabase account and API keys
-
Clone the repository:
git clone <repository-url> cd yona-cline
-
Install dependencies:
pip install -r requirements.txt
-
Create a
.envfile based on.env.example:cp .env.example .env
-
Edit the
.envfile with your API keys:OPENAI_KEY=your_openai_api_key MUSICAPI_KEY=your_musicapi_key SUPABASE_URL=your_supabase_url SUPABASE_KEY=your_supabase_key
python src/create_song.py --title "My Song Title" --lyrics-file lyrics/my_lyrics.txt --style "kpop, electronic"python src/generate_song.py "Create an upbeat song about friendship and summer adventures"python src/yona_cli.py --interactiveThis will start an interactive session where you can talk to Yona directly:
=================================================
Welcome to Yona CLI!
Yona is an agentic AI K-pop star that can create songs for you.
=================================================
You can ask Yona to:
- Create a song (e.g., 'Create a song about friendship')
- List your songs (e.g., 'List all my songs')
- Get a specific song (e.g., 'Get song with ID 123')
Type 'exit' or 'quit' to end the session.
=================================================
You: Create a song about skateboarding in the city
python src/yona_cli.py --request "Create a song about the ocean"For testing without making API calls:
python src/yona_cli.py --interactive --simulationsrc/: Main source codeagent.py: YonaAgent implementationmusic_api.py: MusicAPI clientsupabase_client.py: Supabase clientcreate_song.py: Script for creating songs with provided lyricsgenerate_song.py: Script for generating and creating songslist_songs.py: Script for listing songsyona_cli.py: Interactive CLI for Yonaconfig/: Configuration files
tests/: Test fileslyrics/: Example lyrics files
Run the tests with:
python -m unittest discover tests