Spaces:
Sleeping
Sleeping
| # backend/src/core/config.py | |
| # --- EXTERNAL IMPORTS --- | |
| import os | |
| from pydantic_settings import BaseSettings, SettingsConfigDict | |
| from functools import lru_cache | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| class Settings(BaseSettings): | |
| # ------------------- CORE PROJECT SETTINGS ------------------- | |
| PROJECT_NAME: str = "OmniAgent Core" | |
| VERSION: str = "1.0.0" | |
| API_V1_STR: str = "/api/v1" | |
| # ------------------- SECURITY (NEW) ------------------- | |
| # Ye bohot zaroori hai JWT tokens ke liye | |
| SECRET_KEY: str = os.getenv("SECRET_KEY", "super-secret-key-change-me") | |
| ACCESS_TOKEN_EXPIRE_MINUTES: int = 30 | |
| # ------------------- NETWORK / HOSTING ------------------- | |
| QDRANT_HOST: str = os.getenv("QDRANT_HOST", "localhost") | |
| QDRANT_PORT: int = 6333 | |
| MONGO_HOST: str = os.getenv("MONGO_HOST", "localhost") | |
| MONGO_PORT: int = int(os.getenv("MONGO_PORT", 27018)) | |
| MONGO_USER: str = os.getenv("MONGO_INITDB_ROOT_USERNAME", "admin") | |
| MONGO_PASS: str = os.getenv("MONGO_INITDB_ROOT_PASSWORD", "super_secret_admin_pass") | |
| # ------------------- DATABASES ------------------- | |
| _DATABASE_URL: str = os.getenv("POSTGRES_URL", "sqlite+aiosqlite:///./omni_agent.db") | |
| def DATABASE_URL(self) -> str: | |
| url = self._DATABASE_URL | |
| if url and "?" in url: | |
| url = url.split("?")[0] | |
| if url and url.startswith("postgres://"): | |
| url = url.replace("postgres://", "postgresql+asyncpg://", 1) | |
| elif url and url.startswith("postgresql://") and "+asyncpg" not in url: | |
| url = url.replace("postgresql://", "postgresql+asyncpg://", 1) | |
| # --- DEBUG PRINT (Ye add karein) --- | |
| print(f"🕵️ DEBUG: Connecting to DB URL: {url}") | |
| # (Security Warning: Ye console mein password dikhayega, baad mein hata dena) | |
| return url | |
| def QDRANT_URL(self) -> str: | |
| if self.QDRANT_HOST.startswith("http"): | |
| return self.QDRANT_HOST | |
| return f"http://{self.QDRANT_HOST}:{self.QDRANT_PORT}" | |
| QDRANT_COLLECTION_NAME: str = "omni_agent_main_collection" | |
| QDRANT_API_KEY: str | None = None | |
| # ------------------- RAG / EMBEDDINGS ------------------- | |
| EMBEDDING_PROVIDER: str = "local" | |
| EMBEDDING_MODEL_NAME: str = "sentence-transformers/all-MiniLM-L6-v2" | |
| # ------------------- AI MODELS ------------------- | |
| LLM_PROVIDER: str = "generic" | |
| LLM_MODEL_NAME: str = "gpt-3.5-turbo" | |
| LLM_BASE_URL: str | None = None | |
| LLM_API_KEY: str | None = None | |
| GROQ_API_KEY: str | None = None | |
| GOOGLE_API_KEY: str | None = None | |
| OPENAI_API_KEY: str | None = None | |
| model_config = SettingsConfigDict(env_file=".env", extra="ignore", env_file_encoding='utf-8') | |
| def get_settings(): | |
| return Settings() | |
| settings = get_settings() |