KnowledgeMesh / app /core /config.py
pkheria's picture
psuhing to git
b5e0c74
Raw
History Blame Contribute Delete
1.4 kB
from pathlib import Path
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
PROJECT_NAME: str = "KnowledgeHub"
VERSION: str = "1.0.0"
API_V1_STR: str = "/api/v1"
QDRANT_URL: str = "http://localhost:6333"
QDRANT_API_KEY: str = ""
QDRANT_COLLECTION_NAME: str = "knowledge_base"
NEMOTRON_PARSE_MODEL: str = "Qwen/Qwen2-VL-2B-Instruct"
NEMOTRON_EMBED_MODEL: str = "nvidia/llama-nemotron-colembed-vl-3b-v2"
EMBEDDING_DEVICE: str = "cpu"
HF_TOKEN: str = ""
NVIDIA_API_KEY: str = ""
NVIDIA_CHAT_MODEL: str = "nvidia/nvidia-nemotron-nano-9b-v2"
NVIDIA_API_URL: str = "https://integrate.api.nvidia.com/v1"
MAX_UPLOAD_SIZE: int = 10 * 1024 * 1024
CHUNK_SIZE: int = 1100
CHUNK_OVERLAP: int = 180
ZEROGPU_DURATION_SECONDS: int = 180
CHAT_TEMPERATURE: float = 0.6
CHAT_TOP_P: float = 0.95
CHAT_MAX_TOKENS: int = 2048
MIN_THINKING_TOKENS: int = 1024
MAX_THINKING_TOKENS: int = 2048
model_config = SettingsConfigDict(
env_file=Path(__file__).resolve().parents[2] / ".env",
env_file_encoding="utf-8",
extra="ignore",
)
def get_qdrant_url(self) -> str:
if self.QDRANT_URL.startswith("https://") and ":" not in self.QDRANT_URL[8:]:
return f"{self.QDRANT_URL}:443"
return self.QDRANT_URL
settings = Settings()