|
|
"""Configuration settings for the API""" |
|
|
|
|
|
import os |
|
|
from pathlib import Path |
|
|
from dotenv import load_dotenv |
|
|
|
|
|
|
|
|
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_STT_MODEL_ID = os.getenv("HUGGINGFACE_STT_MODEL_ID") |
|
|
|
|
|
|
|
|
STANCE_MODEL_ID = HUGGINGFACE_STANCE_MODEL_ID |
|
|
LABEL_MODEL_ID = HUGGINGFACE_LABEL_MODEL_ID |
|
|
|
|
|
|
|
|
API_TITLE = "NLP Project API" |
|
|
API_DESCRIPTION = "API for various NLP models including stance detection and more" |
|
|
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 = ["*"] |
|
|
|
|
|
GOOGLE_GENAI_API_KEY = os.getenv("GOOGLE_GENAI_API_KEY") |
|
|
|
|
|
|
|
|
if not GOOGLE_GENAI_API_KEY: |
|
|
raise ValueError("Missing GOOGLE_GENAI_API_KEY environment variable. Add it to .env file") |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
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() |