Spaces:
Running
Running
| """ | |
| GovBridge India β Centralized Configuration | |
| All environment variables are declared here with Pydantic validation. | |
| Usage: from config import settings | |
| """ | |
| from pydantic_settings import BaseSettings, SettingsConfigDict | |
| from pydantic import Field | |
| from typing import Optional | |
| class Settings(BaseSettings): | |
| # ββ Database βββββββββββββββββββββββββββββββββββββββββ | |
| SUPABASE_URL: str = Field(default="") | |
| SUPABASE_KEY: str = Field(default="") | |
| # ββ LLM ββββββββββββββββββββββββββββββββββββββββββββββ | |
| GROQ_API_KEY: str = Field(default="") | |
| # ββ Knowledge Extraction (Sprint 30 β INDRA Phase 1.5) βββ | |
| GROQ_EXTRACTION_MODEL: str = Field( | |
| default="llama-3.3-70b-versatile", | |
| description="Groq model for Knowledge Triplet extraction" | |
| ) | |
| GROQ_MAX_CONCURRENCY: int = Field( | |
| default=5, | |
| description="Max concurrent Groq API calls during extraction" | |
| ) | |
| # ββ Admin ββββββββββββββββββββββββββββββββββββββββββββ | |
| ADMIN_SECRET: str = Field(default="change-this-in-production") | |
| # ββ Translation (Bhashini) βββββββββββββββββββββββββββ | |
| BHASHINI_USER_ID: Optional[str] = Field(default=None) | |
| BHASHINI_API_KEY: Optional[str] = Field(default=None) | |
| # ββ WhatsApp βββββββββββββββββββββββββββββββββββββββββ | |
| WHATSAPP_TOKEN: Optional[str] = Field(default=None) | |
| WHATSAPP_PHONE_NUMBER_ID: Optional[str] = Field(default=None) | |
| WHATSAPP_VERIFY_TOKEN: Optional[str] = Field(default=None) | |
| WHATSAPP_APP_SECRET: Optional[str] = Field(default=None) | |
| # ββ Feature Flags ββββββββββββββββββββββββββββββββββββ | |
| ENVIRONMENT: str = Field(default="development") | |
| # ββ Migration Flag βββββββββββββββββββββββββββββββββββ | |
| # Set to "true" during the expand-contract migration window. | |
| # When true, ingest writes to BOTH embedding AND embedding_v2. | |
| # After migration 009 is complete, set back to "false". | |
| DUAL_WRITE_EMBEDDINGS: str = Field(default="false") | |
| model_config = SettingsConfigDict( | |
| env_file=(".env", "../.env"), | |
| env_file_encoding="utf-8", | |
| extra="ignore" | |
| ) | |
| settings = Settings() | |