S01Nour
chore: remove default fallback value for HUGGINGFACE_GENERATE_MODEL_ID.
f67ac7b
raw
history blame
2.53 kB
"""Configuration settings for the API"""
import os
from pathlib import Path
from dotenv import load_dotenv
import logging
logger = logging.getLogger(__name__)
# Load .env variables
load_dotenv()
# ============ DIRECTORIES ============
API_DIR = Path(__file__).parent
PROJECT_ROOT = API_DIR.parent
# ============ HUGGING FACE MODELS ============
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")
HUGGINGFACE_GENERATE_MODEL_ID = os.getenv("HUGGINGFACE_GENERATE_MODEL_ID")
# Use Hugging Face model ID instead of local path
STANCE_MODEL_ID = HUGGINGFACE_STANCE_MODEL_ID
LABEL_MODEL_ID = HUGGINGFACE_LABEL_MODEL_ID
GENERATE_MODEL_ID = HUGGINGFACE_GENERATE_MODEL_ID
# ============ GROQ MODELS ============
GROQ_API_KEY = os.getenv("GROQ_API_KEY", "")
# **Speech-to-Text**
GROQ_STT_MODEL = "whisper-large-v3-turbo"
# **Text-to-Speech**
GROQ_TTS_MODEL = "playai-tts"
GROQ_TTS_VOICE = "Aaliyah-PlayAI"
GROQ_TTS_FORMAT = "wav"
# **Chat Model**
GROQ_CHAT_MODEL = "llama3-70b-8192"
# ============ API META ============
API_TITLE = "NLP Debater - Voice Chatbot"
API_DESCRIPTION = "NLP stance detection, KPA, and Groq STT/TTS chatbot"
API_VERSION = "2.0.0"
# ============ SERVER ============
HOST = os.getenv("HOST", "0.0.0.0")
PORT = int(os.getenv("PORT", 7860))
RELOAD = os.getenv("RELOAD", "false").lower() == "true"
# ============ CORS ============
CORS_ORIGINS = ["*"]
CORS_CREDENTIALS = True
CORS_METHODS = ["*"]
CORS_HEADERS = ["*"]
# ============ AUDIO SETTINGS ============
MAX_AUDIO_SIZE = 10 * 1024 * 1024 # 10MB
AUDIO_SAMPLE_RATE = 16000
AUDIO_DURATION_LIMIT = 120 # seconds
ALLOWED_AUDIO_TYPES = {
"audio/wav", "audio/x-wav",
"audio/mpeg", "audio/mp3",
"audio/mp4", "audio/m4a"
}
# ============ MODEL PRELOADING ============
PRELOAD_MODELS_ON_STARTUP = True
LOAD_STANCE_MODEL = True
LOAD_KPA_MODEL = True
LOAD_STT_MODEL = False # Groq STT = no preload
LOAD_CHATBOT_MODEL = False # Groq Chat = no preload
LOAD_TTS_MODEL = False # Groq TTS = no preload
logger.info("="*60)
logger.info("✓ Configuration loaded successfully")
logger.info(f" HF Stance Model : {HUGGINGFACE_STANCE_MODEL_ID}")
logger.info(f" HF Label Model : {HUGGINGFACE_LABEL_MODEL_ID}")
logger.info(f" GROQ STT Model : {GROQ_STT_MODEL}")
logger.info(f" GROQ TTS Model : {GROQ_TTS_MODEL}")
logger.info(f" GROQ Chat Model : {GROQ_CHAT_MODEL}")
logger.info("="*60)