ACCESS-EMBEDDING / app /config.py
FadQ's picture
feat: embeddinf service foe access"
4398e81
Raw
History Blame Contribute Delete
1.05 kB
from functools import lru_cache
from os import getenv
DEFAULT_MODEL_NAME = "sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2"
DEFAULT_DIMENSION = 384
def _read_int(name: str, default: int, minimum: int, maximum: int) -> int:
raw_value = getenv(name)
if raw_value is None or raw_value.strip() == "":
return default
try:
value = int(raw_value)
except ValueError as exc:
raise RuntimeError(f"{name} must be an integer") from exc
if value < minimum or value > maximum:
raise RuntimeError(f"{name} must be between {minimum} and {maximum}")
return value
class Settings:
def __init__(self) -> None:
self.model_name = getenv("MODEL_NAME", DEFAULT_MODEL_NAME)
self.api_key = getenv("EMBEDDING_API_KEY")
self.max_text_length = _read_int("MAX_TEXT_LENGTH", 3000, 1, 100_000)
self.max_batch_size = _read_int("MAX_BATCH_SIZE", 64, 1, 512)
self.dimension = DEFAULT_DIMENSION
@lru_cache
def get_settings() -> Settings:
return Settings()