38 lines
1.7 KiB
Python
38 lines
1.7 KiB
Python
from __future__ import annotations
|
|
|
|
import os
|
|
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass(slots=True)
|
|
class Settings:
|
|
app_name: str = "Gorich RAG API"
|
|
site_url: str = os.getenv("GORICH_SITE_URL", "https://gorych34.ru/")
|
|
chroma_path: str = os.getenv("CHROMA_PATH", "/data/chroma")
|
|
huggingface_cache_dir: str = os.getenv("HUGGINGFACE_CACHE_DIR", "/data/huggingface")
|
|
knowledge_collection: str = os.getenv("KNOWLEDGE_COLLECTION", "gorich_knowledge")
|
|
menu_collection: str = os.getenv("MENU_COLLECTION", "gorich_menu")
|
|
menu_snapshot_path: str = os.getenv("MENU_SNAPSHOT_PATH", "/data/menu/gorich_menu.json")
|
|
openrouter_api_key: str = os.getenv("OPENROUTER_API_KEY", "")
|
|
openrouter_model: str = os.getenv("OPENROUTER_MODEL", "mistralai/mistral-medium-3-5")
|
|
openrouter_base_url: str = os.getenv("OPENROUTER_BASE_URL", "https://openrouter.ai/api/v1")
|
|
public_app_url: str = os.getenv("PUBLIC_APP_URL", "http://localhost:8000")
|
|
public_app_name: str = os.getenv("PUBLIC_APP_NAME", "Gorich Bot RAG")
|
|
embedding_model: str = os.getenv(
|
|
"EMBEDDING_MODEL",
|
|
"sergeyzh/rubert-mini-frida",
|
|
)
|
|
embedding_query_prefix: str = os.getenv("EMBEDDING_QUERY_PREFIX", "search_query: ")
|
|
embedding_document_prefix: str = os.getenv(
|
|
"EMBEDDING_DOCUMENT_PREFIX",
|
|
"search_document: ",
|
|
)
|
|
embedding_max_length: int = int(os.getenv("EMBEDDING_MAX_LENGTH", "512"))
|
|
embedding_batch_size: int = int(os.getenv("EMBEDDING_BATCH_SIZE", "32"))
|
|
request_timeout: float = float(os.getenv("REQUEST_TIMEOUT_SECONDS", "60"))
|
|
top_k: int = int(os.getenv("RAG_TOP_K", "5"))
|
|
index_on_startup: bool = os.getenv("INDEX_ON_STARTUP", "true").lower() == "true"
|
|
|
|
|
|
settings = Settings()
|