|
|
"""Configuration settings for the API""" |
|
|
|
|
|
import os |
|
|
from pathlib import Path |
|
|
from dotenv import load_dotenv |
|
|
import logging |
|
|
|
|
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
|
|
|
load_dotenv() |
|
|
|
|
|
|
|
|
API_DIR = Path(__file__).parent |
|
|
PROJECT_ROOT = API_DIR.parent |
|
|
|
|
|
|
|
|
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") |
|
|
|
|
|
|
|
|
STANCE_MODEL_ID = HUGGINGFACE_STANCE_MODEL_ID |
|
|
LABEL_MODEL_ID = HUGGINGFACE_LABEL_MODEL_ID |
|
|
GENERATE_MODEL_ID = HUGGINGFACE_GENERATE_MODEL_ID |
|
|
|
|
|
|
|
|
GROQ_API_KEY = os.getenv("GROQ_API_KEY", "") |
|
|
|
|
|
|
|
|
GROQ_STT_MODEL = "whisper-large-v3-turbo" |
|
|
|
|
|
|
|
|
GROQ_TTS_MODEL = "playai-tts" |
|
|
GROQ_TTS_VOICE = "Aaliyah-PlayAI" |
|
|
GROQ_TTS_FORMAT = "wav" |
|
|
|
|
|
|
|
|
GROQ_CHAT_MODEL = "llama3-70b-8192" |
|
|
|
|
|
|
|
|
API_TITLE = "NLP Debater - Voice Chatbot" |
|
|
API_DESCRIPTION = "NLP stance detection, KPA, and Groq STT/TTS chatbot" |
|
|
API_VERSION = "2.0.0" |
|
|
|
|
|
|
|
|
HOST = os.getenv("HOST", "0.0.0.0") |
|
|
PORT = int(os.getenv("PORT", 7860)) |
|
|
RELOAD = os.getenv("RELOAD", "false").lower() == "true" |
|
|
|
|
|
|
|
|
CORS_ORIGINS = ["*"] |
|
|
CORS_CREDENTIALS = True |
|
|
CORS_METHODS = ["*"] |
|
|
CORS_HEADERS = ["*"] |
|
|
|
|
|
|
|
|
MAX_AUDIO_SIZE = 10 * 1024 * 1024 |
|
|
AUDIO_SAMPLE_RATE = 16000 |
|
|
AUDIO_DURATION_LIMIT = 120 |
|
|
ALLOWED_AUDIO_TYPES = { |
|
|
"audio/wav", "audio/x-wav", |
|
|
"audio/mpeg", "audio/mp3", |
|
|
"audio/mp4", "audio/m4a" |
|
|
} |
|
|
|
|
|
|
|
|
PRELOAD_MODELS_ON_STARTUP = True |
|
|
LOAD_STANCE_MODEL = True |
|
|
LOAD_KPA_MODEL = True |
|
|
LOAD_STT_MODEL = False |
|
|
LOAD_CHATBOT_MODEL = False |
|
|
LOAD_TTS_MODEL = False |
|
|
|
|
|
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) |
|
|
|