Files
ai-podcast/backend/config.py
tcpsyn a94fc92647 Improve SignalWire streaming, randomize caller names, update frontend
- Add streamSid tracking and per-caller send locks for SignalWire
- Improve TTS streaming with real-time pacing and detailed logging
- Block host audio to caller during TTS playback
- Randomize caller names between sessions from name pools
- Update page title and show phone number in UI

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:56:05 -07:00

49 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-3-haiku"
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"
sessions_dir: Path = base_dir / "sessions"
class Config:
env_file = ".env"
extra = "ignore"
settings = Settings()