40 lines
1.2 KiB
Markdown
40 lines
1.2 KiB
Markdown
|
|
---
|
||
|
|
name: ozan-radio
|
||
|
|
description: Operate Live Ozan Radio — DeepSeek DJ plans tracks, Google Lyria 3 generates them, Spotify supplies taste. Use when the user wants to start the radio, generate a track, skip, or tune the station.
|
||
|
|
---
|
||
|
|
|
||
|
|
# Live Ozan Radio
|
||
|
|
|
||
|
|
## When to use
|
||
|
|
|
||
|
|
- User says "ozan radio", "live radio", "generate a track", "what's playing"
|
||
|
|
- Operating or debugging `tinqs/live-ozan-radio`
|
||
|
|
|
||
|
|
## Prerequisites
|
||
|
|
|
||
|
|
- `GEMINI_API_KEY` and `DEEPSEEK_API_KEY` in `.env`
|
||
|
|
- Server running: `python -m ozan_radio serve` (port 8787)
|
||
|
|
|
||
|
|
## Operations
|
||
|
|
|
||
|
|
| Intent | Action |
|
||
|
|
|--------|--------|
|
||
|
|
| Start station | `python -m ozan_radio serve` |
|
||
|
|
| Generate track | `POST http://127.0.0.1:8787/api/generate` |
|
||
|
|
| Now playing | `GET http://127.0.0.1:8787/api/now` |
|
||
|
|
| Skip | `POST http://127.0.0.1:8787/api/skip` |
|
||
|
|
| One-shot CLI | `python -m ozan_radio generate` |
|
||
|
|
|
||
|
|
## DJ behavior
|
||
|
|
|
||
|
|
DeepSeek reads Spotify taste (if configured), avoids recent titles, outputs a Lyria prompt. Do not suggest playing Spotify URLs — generation only.
|
||
|
|
|
||
|
|
## Models
|
||
|
|
|
||
|
|
- Lyria: `lyria-3-pro-preview` (songs) or `lyria-3-clip-preview` (30s)
|
||
|
|
- DeepSeek: `deepseek-chat` via Tinqs inference proxy by default
|
||
|
|
|
||
|
|
## Mac live layer
|
||
|
|
|
||
|
|
Magenta RealTime 2 (`pip install "magenta-rt[mlx]"`) for real-time beds — see README.
|