"""Configuration settings for the API""" import os from pathlib import Path from dotenv import load_dotenv import logging # Configure logging logger = logging.getLogger(__name__) # Load environment variables from .env file load_dotenv() # Get project root directory API_DIR = Path(__file__).parent PROJECT_ROOT = API_DIR.parent # ============ HUGGING FACE ============ HUGGINGFACE_API_KEY = os.getenv("HUGGINGFACE_API_KEY", "") HUGGINGFACE_STANCE_MODEL_ID = os.getenv("HUGGINGFACE_STANCE_MODEL_ID") HUGGINGFACE_LABEL_MODEL_ID = os.getenv("HUGGINGFACE_LABEL_MODEL_ID") # ============ API CONFIGURATION ============ API_TITLE = "NLP Debater - Voice Chatbot API" API_DESCRIPTION = "Complete NLP system with stance detection, KPA, and voice chatbot using free models" API_VERSION = "1.0.0" # ============ SERVER CONFIGURATION ============ HOST = os.getenv("HOST", "0.0.0.0") PORT = int(os.getenv("PORT", "7860")) RELOAD = os.getenv("RELOAD", "false").lower() == "true" # ============ CORS CONFIGURATION ============ CORS_ORIGINS = ["*"] CORS_CREDENTIALS = True CORS_METHODS = ["*"] CORS_HEADERS = ["*"] # ============ FREE VOICE MODELS ============ # Speech-to-Text STT_MODEL_ID = "openai/whisper-base" STT_DEVICE = "cpu" # Change to "cuda" if GPU available # Text-to-Speech TTS_ENGINE = "gtts" # Google Text-to-Speech (free) TTS_LANGUAGE = "en" # Chatbot CHATBOT_MODEL_ID = "microsoft/DialoGPT-medium" CHATBOT_DEVICE = "cpu" # Change to "cuda" if GPU available # ============ AUDIO SETTINGS ============ ALLOWED_AUDIO_TYPES = { "audio/wav", "audio/x-wav", "audio/mpeg", "audio/mp3", "audio/mp4", "audio/m4a" } MAX_TEXT_LENGTH = 500 MIN_TEXT_LENGTH = 1 MAX_AUDIO_SIZE = 10 * 1024 * 1024 # 10MB AUDIO_SAMPLE_RATE = 16000 AUDIO_DURATION_LIMIT = 120 # seconds # ============ MODEL LOADING ============ PRELOAD_MODELS_ON_STARTUP = True LOAD_STANCE_MODEL = True LOAD_KPA_MODEL = True LOAD_STT_MODEL = True LOAD_CHATBOT_MODEL = True LOAD_TTS_MODEL = False # gTTS doesn't need preloading logger.info("="*60) logger.info("✓ Configuration loaded successfully") logger.info("✓ Using FREE models for all services") logger.info(f" - STT: {STT_MODEL_ID}") logger.info(f" - TTS: {TTS_ENGINE}") logger.info(f" - Chatbot: {CHATBOT_MODEL_ID}") logger.info("="*60)