Spaces:
Sleeping
Sleeping
| import os | |
| from pathlib import Path | |
| # Base directory | |
| BASE_DIR = Path(__file__).parent | |
| # API Configuration | |
| API_TITLE = "Automated Consensus Analysis API" | |
| API_VERSION = "1.0.0" | |
| API_DESCRIPTION = """ | |
| ## Automated Consensus Analysis for Peer Reviews | |
| This API provides comprehensive analysis of peer review disagreements using: | |
| - **LLM-based critique extraction** (Gemini 2.5 Flash Lite via OpenRouter) | |
| - **Disagreement detection** between reviewers | |
| - **Search-augmented evidence retrieval** (Semantic Scholar, arXiv, Google Scholar, Tavily) | |
| - **AI-powered disagreement resolution** (DeepSeek-R1 via OpenRouter) | |
| - **Meta-review generation** | |
| ### Features: | |
| - β Full pipeline or individual stage execution | |
| - β Rate limiting and queue management | |
| - β Progress tracking | |
| - β JSON and form data support | |
| """ | |
| # Rate Limiting | |
| MAX_REQUESTS_PER_MINUTE = int(os.getenv("MAX_REQUESTS_PER_MINUTE", "10")) | |
| MAX_CONCURRENT_TASKS = int(os.getenv("MAX_CONCURRENT_TASKS", "3")) | |
| QUEUE_MAX_SIZE = int(os.getenv("QUEUE_MAX_SIZE", "20")) | |
| # Model Configuration (all via OpenRouter) | |
| GEMINI_MODEL = os.getenv("GEMINI_MODEL", "google/gemini-2.5-flash-lite") | |
| DEEPSEEK_MODEL = os.getenv("DEEPSEEK_MODEL", "deepseek/deepseek-r1") | |
| # API Keys (from HF Spaces secrets) | |
| OPENROUTER_API_KEY = os.getenv("OPENROUTER_API_KEY") | |
| TAVILY_API_KEY = os.getenv("TAVILY_API_KEY") | |
| SERPAPI_API_KEY = os.getenv("SERPAPI_API_KEY") | |
| # Retry Configuration | |
| MAX_RETRIES = int(os.getenv("MAX_RETRIES", "5")) | |
| BASE_RETRY_WAIT = int(os.getenv("BASE_RETRY_WAIT", "2")) | |
| # Timeout Configuration | |
| REQUEST_TIMEOUT = int(os.getenv("REQUEST_TIMEOUT", "300")) # 5 minutes | |
| SEARCH_TIMEOUT = int(os.getenv("SEARCH_TIMEOUT", "60")) # 1 minute | |
| # Logging | |
| LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO") | |
| def validate_environment(): | |
| """ | |
| Validate that all required environment variables are set | |
| Raises: | |
| ValueError: If required variables are missing | |
| """ | |
| required_vars = { | |
| "OPENROUTER_API_KEY": OPENROUTER_API_KEY, | |
| "TAVILY_API_KEY": TAVILY_API_KEY, | |
| } | |
| missing = [var for var, value in required_vars.items() if not value] | |
| if missing: | |
| raise ValueError( | |
| f"Missing required environment variables: {', '.join(missing)}\n" | |
| f"Please set them in HuggingFace Spaces secrets." | |
| ) | |
| # Validate on import | |
| try: | |
| validate_environment() | |
| except ValueError as e: | |
| print(f"β οΈ Configuration Warning: {e}") | |