Replace Spotify API with screenshot taste workflow and example profile.
Remove spotify integration; add TASTE-FROM-SCREENSHOTS guide; ship Ozan settings.json and taste_seeds.json as Cursor examples plus new wandering dervish track. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -7,7 +7,6 @@ from dataclasses import dataclass
|
||||
import httpx
|
||||
|
||||
from ozan_radio.config import Config
|
||||
from ozan_radio.spotify import TasteProfile
|
||||
from ozan_radio.settings import ListenerSettings, load_settings
|
||||
from ozan_radio.taste import TasteSeeds
|
||||
|
||||
@@ -29,7 +28,7 @@ DJ_SYSTEM = """You are the DJ for Live Ozan Radio — a personal AI station that
|
||||
catalog music. Every track is generated fresh by Google Lyria 3 based on your prompts.
|
||||
|
||||
Your job:
|
||||
1. Read the listener's Spotify taste (if provided).
|
||||
1. Read settings.json and taste_seeds.json (listener profile from screenshots or manual edits).
|
||||
2. Pick a mood, tempo, and genre blend that feels like a natural next track.
|
||||
3. Write a Lyria prompt that produces a 1–2 minute instrumental or vocal track.
|
||||
4. Keep variety — don't repeat the same vibe twice in a row.
|
||||
@@ -121,7 +120,6 @@ class DeepSeekDJ:
|
||||
|
||||
async def plan_next(
|
||||
self,
|
||||
taste: TasteProfile | None,
|
||||
recent_titles: list[str],
|
||||
seeds: TasteSeeds | None = None,
|
||||
request: str | None = None,
|
||||
@@ -132,12 +130,8 @@ class DeepSeekDJ:
|
||||
"Plan the next generated track for Live Ozan Radio.",
|
||||
f"Station taste:\n{self._taste_block()}",
|
||||
]
|
||||
if taste:
|
||||
user_parts.append(f"Spotify taste: {taste.summary}")
|
||||
if taste.top_genres:
|
||||
user_parts.append(f"Genres: {', '.join(taste.top_genres[:8])}")
|
||||
elif seeds:
|
||||
user_parts.append(f"Taste seeds (no Spotify): {seeds.summary}")
|
||||
if seeds:
|
||||
user_parts.append(f"Taste seeds:\n{seeds.summary}")
|
||||
if recent_titles:
|
||||
user_parts.append(f"Already played (avoid repeating): {', '.join(recent_titles[-5:])}")
|
||||
if request:
|
||||
|
||||
Reference in New Issue
Block a user