|
|
"""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", "NLP-Debater-Project/debertav3-stance-detection") |
|
|
HUGGINGFACE_LABEL_MODEL_ID = os.getenv("HUGGINGFACE_LABEL_MODEL_ID", "NLP-Debater-Project/distilBert-keypoint-matching") |
|
|
|
|
|
|
|
|
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" |
|
|
|
|
|
|
|
|
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 = ["*"] |
|
|
|
|
|
|
|
|
|
|
|
STT_MODEL_ID = "openai/whisper-base" |
|
|
STT_DEVICE = "cpu" |
|
|
|
|
|
|
|
|
TTS_ENGINE = "gtts" |
|
|
TTS_LANGUAGE = "en" |
|
|
|
|
|
|
|
|
CHATBOT_MODEL_ID = "microsoft/DialoGPT-medium" |
|
|
CHATBOT_DEVICE = "cpu" |
|
|
|
|
|
|
|
|
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 |
|
|
AUDIO_SAMPLE_RATE = 16000 |
|
|
AUDIO_DURATION_LIMIT = 120 |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
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) |