- Reworked caller prompt: edgy/flirty personality, play along with host bits - Bumped caller token budget (200-550 range, was 150-450) - Added 20 layered/morally ambiguous caller stories - Valentine's Day awareness in seasonal context - Default LLM model: claude-sonnet-4-5 (was claude-3-haiku) - Publish: SCP-based SQL transfer (fixes base64 encoding on NAS) - Favicons: added .ico, 48px, 192px PNGs for Google search results - Website: button layout cleanup, privacy page, ep12 transcript - Control panel: channel defaults match audio_settings.json - Disabled OP3 permanently (YouTube ingest issues on large files) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
"""Configuration settings for the AI Radio Show backend"""
|
|
|
|
import os
|
|
from pathlib import Path
|
|
from pydantic_settings import BaseSettings
|
|
from dotenv import load_dotenv
|
|
|
|
# Load .env from parent directory
|
|
load_dotenv(Path(__file__).parent.parent / ".env")
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
# API Keys
|
|
elevenlabs_api_key: str = os.getenv("ELEVENLABS_API_KEY", "")
|
|
openrouter_api_key: str = os.getenv("OPENROUTER_API_KEY", "")
|
|
inworld_api_key: str = os.getenv("INWORLD_API_KEY", "")
|
|
|
|
# SignalWire
|
|
signalwire_project_id: str = os.getenv("SIGNALWIRE_PROJECT_ID", "")
|
|
signalwire_space: str = os.getenv("SIGNALWIRE_SPACE", "")
|
|
signalwire_token: str = os.getenv("SIGNALWIRE_TOKEN", "")
|
|
signalwire_phone: str = os.getenv("SIGNALWIRE_PHONE", "")
|
|
signalwire_stream_url: str = os.getenv("SIGNALWIRE_STREAM_URL", "")
|
|
|
|
# LLM Settings
|
|
llm_provider: str = "openrouter" # "openrouter" or "ollama"
|
|
openrouter_model: str = "anthropic/claude-sonnet-4-5"
|
|
ollama_model: str = "llama3.2"
|
|
ollama_host: str = "http://localhost:11434"
|
|
|
|
# TTS Settings
|
|
tts_provider: str = "inworld" # "kokoro", "elevenlabs", "inworld", "vits", or "bark"
|
|
|
|
# Audio Settings
|
|
sample_rate: int = 24000
|
|
|
|
# Paths
|
|
base_dir: Path = Path(__file__).parent.parent
|
|
sounds_dir: Path = base_dir / "sounds"
|
|
music_dir: Path = base_dir / "music"
|
|
ads_dir: Path = base_dir / "ads"
|
|
sessions_dir: Path = base_dir / "sessions"
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
extra = "ignore"
|
|
|
|
|
|
settings = Settings()
|