Spaces:
Runtime error
Runtime error
| import os | |
| from pathlib import Path | |
| from typing import Optional | |
| class Config: | |
| BASE_DIR: Path = Path(__file__).parent | |
| DATA_DIR: Path = BASE_DIR / "data" | |
| PAPERS_DIR: Path = DATA_DIR / "papers" | |
| QDRANT_URL: Optional[str] = os.getenv("QDRANT_URL") | |
| QDRANT_API_KEY: Optional[str] = os.getenv("QDRANT_API_KEY") | |
| QDRANT_COLLECTION: str = os.getenv("QDRANT_COLLECTION", "documents") | |
| OPENROUTER_API_KEY: Optional[str] = os.getenv("OPENROUTER_API_KEY") | |
| OPENROUTER_MODEL: str = os.getenv("OPENROUTER_MODEL", "openai/gpt-4.1") | |
| OPENROUTER_BASE_URL: str = "https://openrouter.ai/api/v1" | |
| GEMINI_API_KEY: Optional[str] = os.getenv("GEMINI_API_KEY") | |
| GEMINI_MODEL: str = os.getenv("GEMINI_MODEL", "gemini-1.5-flash") | |
| EMBEDDING_MODEL: str = os.getenv("EMBEDDING_MODEL", "all-MiniLM-L6-v2") | |
| TOP_K_CHUNKS: int = int(os.getenv("TOP_K_CHUNKS", "5")) | |
| MAX_CONTEXT_TOKENS: int = int(os.getenv("MAX_CONTEXT_TOKENS", "4000")) | |
| HOST: str = os.getenv("HOST", "0.0.0.0") | |
| PORT: int = int(os.getenv("PORT", "7860")) | |
| FRONTEND_URL: str = os.getenv("FRONTEND_URL", "https://stochast.netlify.app") | |
| def ensure_directories(cls) -> None: | |
| cls.PAPERS_DIR.mkdir(parents=True, exist_ok=True) | |
| def validate(cls) -> list[str]: | |
| warnings = [] | |
| if not cls.QDRANT_URL: | |
| warnings.append("QDRANT_URL not set - Vector storage unavailable") | |
| if not cls.QDRANT_API_KEY: | |
| warnings.append("QDRANT_API_KEY not set - Vector storage unavailable") | |
| if not cls.OPENROUTER_API_KEY and not cls.GEMINI_API_KEY: | |
| warnings.append("No LLM API key configured. Q&A will not work.") | |
| return warnings | |
| config = Config() | |