File size: 1,966 Bytes
9db766f 492be8b 3a33610 f28285b 73d4f3c 9db766f 70a2026 f8a4eeb 9db766f 9a6ab0c 918acab |
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 |
"""Configuration settings for the API"""
import os
from pathlib import Path
from dotenv import load_dotenv
# Load environment variables from .env file
load_dotenv()
# Get project root directory
API_DIR = Path(__file__).parent
PROJECT_ROOT = API_DIR.parent
# Hugging Face configuration
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_STT_MODEL_ID = os.getenv("HUGGINGFACE_STT_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
# API configuration
API_TITLE = "NLP Project API"
API_DESCRIPTION = "API for various NLP models including stance detection and more"
API_VERSION = "1.0.0"
# Server configuration
HOST = os.getenv("HOST", "0.0.0.0") # Use 0.0.0.0 for Docker/Spaces
PORT = int(os.getenv("PORT", "7860")) # Default 7860 for Hugging Face Spaces
RELOAD = os.getenv("RELOAD", "False").lower() == "true" # Set to False in production
# CORS configuration
CORS_ORIGINS = ["*"] # In production, specify exact origins
CORS_CREDENTIALS = True
CORS_METHODS = ["*"]
CORS_HEADERS = ["*"]
GOOGLE_GENAI_API_KEY = os.getenv("GOOGLE_GENAI_API_KEY")
# Validate API key
if not GOOGLE_GENAI_API_KEY:
raise ValueError("Missing GOOGLE_GENAI_API_KEY environment variable. Add it to .env file")
# 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
# Validate configuration
def validate_config():
required_vars = ["GOOGLE_GENAI_API_KEY"]
missing = [var for var in required_vars if not os.getenv(var)]
if missing:
raise ValueError(f"Missing required environment variables: {missing}")
validate_config() |