papercast / utils /config.py
batuhanozkose
update tts, llm engines
3ab234f
import os
from dotenv import load_dotenv
# Load environment variables from .env.local
load_dotenv(os.path.join(os.path.dirname(os.path.dirname(__file__)), ".env.local"))
# Model Configurations
SCRIPT_GENERATION_MODEL = "unsloth/Phi-4-mini-instruct-unsloth-bnb-4bit"
# User API Keys (Bring Your Own Key - BYOK)
# Users provide these through the settings interface or environment variables
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "")
INFERENCE_API_URL = os.getenv("INFERENCE_API_URL", "")
INFERENCE_API_KEY = os.getenv("INFERENCE_API_KEY", "")
# TTS API Settings (ElevenLabs)
ELEVENLABS_API_KEY = os.getenv("ELEVENLABS_API_KEY", "")
# ElevenLabs Voice IDs (you can change these to different voices)
# Find more voices at: https://api.elevenlabs.io/v1/voices
ELEVENLABS_HOST_VOICE = "ErXwobaYiN019PkySvjV" # Antoni - male voice for Host
ELEVENLABS_GUEST_VOICE = "EXAVITQu4vr4xnSDxMaL" # Bella - female voice for Guest
# Paths
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMP_DIR = os.path.join(BASE_DIR, "temp")
OUTPUT_DIR = os.path.join(BASE_DIR, "output")
# Ensure directories exist
os.makedirs(TEMP_DIR, exist_ok=True)
os.makedirs(OUTPUT_DIR, exist_ok=True)
# Generation Settings
MAX_TOKENS = 4096 # Supports long-form content generation
TEMPERATURE = 0.7
# Context Limits for Multi-Paper Processing
MAX_CONTEXT_CHARS = 80000 # Maximum total characters for multiple papers (~60K tokens)
# This ensures we stay well within the 128K token limit while leaving room for prompts and responses