File size: 2,294 Bytes
9db766f 95cb26e 9db766f 674469e 9db766f 56dc677 492be8b 674469e 9db766f 674469e 9db766f 674469e 9db766f 9a6ab0c 674469e 9a6ab0c 674469e 9a6ab0c 918acab 674469e 918acab 674469e 918acab 674469e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
"""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) |