COURTRIX / rag-server /app /config.py
Ali-Developments's picture
Upload 125 files
ad79323 verified
Raw
History Blame Contribute Delete
2.03 kB
from dataclasses import dataclass, field
import os
@dataclass(frozen=True)
class Settings:
database_url: str = os.getenv(
"RAG_DATABASE_URL",
"postgresql://courtrix:courtrix@localhost:5432/courtrix?sslmode=disable",
)
gemini_api_key: str = os.getenv("GEMINI_API_KEY", "AIzaSyDdD78KJBTOLCwpG3J7lDUnNwNR5vyqbBI")
gemini_chat_model: str = os.getenv("GEMINI_CHAT_MODEL", "gemini-2.5-flash")
gemini_embedding_model: str = os.getenv(
"GEMINI_EMBEDDING_MODEL",
"gemini-embedding-001",
)
groq_api_key: str = os.getenv("GROQ_API_KEY","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")
HUGGINGFACE_API_TOKEN: str = os.getenv("HUGGINGFACE_API_TOKEN","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")
minio_endpoint: str = os.getenv("MINIO_ENDPOINT", "localhost")
minio_port: int = int(os.getenv("MINIO_PORT", "9000"))
minio_use_ssl: bool = os.getenv("MINIO_USE_SSL", "false").lower() == "true"
minio_access_key: str = os.getenv("MINIO_ACCESS_KEY", "courtrixminio")
minio_secret_key: str = os.getenv("MINIO_SECRET_KEY", "courtrixminiosecret")
service_secret: str = os.getenv("RAG_SERVICE_SECRET", "courtrix-rag-secret")
default_top_k: int = int(os.getenv("RAG_TOP_K", "5"))
chunk_size: int = int(os.getenv("RAG_CHUNK_SIZE", "1200"))
chunk_overlap: int = int(os.getenv("RAG_CHUNK_OVERLAP", "200"))
# Fallback configuration
openrouter_api_key: str = os.getenv("OPENROUTER_API_KEY", "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")
xai_api_key: str = os.getenv("XAI_API_KEY", "")
google_fallback_models: list[str] = field(default_factory=lambda: [
"gemini-2.5-flash",
"gemini-1.5-pro",
"gemini-1.5-flash"
])
openrouter_fallback_models: list[str] = field(default_factory=lambda: [
"meta-llama/llama-3.3-70b-instruct:free"
])
xai_fallback_models: list[str] = field(default_factory=lambda: [
"grok-2-1212"
])
settings = Settings()