import os from dotenv import load_dotenv load_dotenv() # Telegram TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") # Ollama (local) OLLAMA_BASE_URL = os.getenv("OLLAMA_BASE_URL", "http://localhost:11434/v1") OLLAMA_ENABLED = os.getenv("OLLAMA_ENABLED", "true").lower() == "true" # LLM Providers GROQ_API_KEY = os.getenv("GROQ_API_KEY") # Additional Groq keys for round-robin rotation (avoids rate limits on llama-3.3-70b-versatile) GROQ_API_KEY_2 = os.getenv("GROQ_API_KEY_2") GROQ_API_KEY_3 = os.getenv("GROQ_API_KEY_3") CEREBRAS_API_KEY = os.getenv("CEREBRAS_API_KEY") SAMBANOVA_API_KEY = os.getenv("SAMBANOVA_API_KEY") OPENROUTER_API_KEY = os.getenv("OPENROUTER_API_KEY") GEMINI_API_KEY = os.getenv("GEMINI_API_KEY") # Embeddings COHERE_API_KEY = os.getenv("COHERE_API_KEY") # App CHROMA_DB_PATH = os.getenv("CHROMA_DB_PATH", "./chroma_db") BATCH_SIZE = int(os.getenv("BATCH_SIZE", "5")) BATCH_TIMEOUT_SECONDS = int(os.getenv("BATCH_TIMEOUT_SECONDS", "60")) # Web Search TAVILY_API_KEY = os.getenv("TAVILY_API_KEY") # Feature Flags ENABLE_DOCUMENT_INGESTION = os.getenv("ENABLE_DOCUMENT_INGESTION", "true").lower() == "true" ENABLE_WEB_SEARCH = os.getenv("ENABLE_WEB_SEARCH", "true").lower() == "true" ENABLE_LINK_FETCH = os.getenv("ENABLE_LINK_FETCH", "true").lower() == "true" # Google Meet Extension MEET_INGEST_SECRET = os.getenv("MEET_INGEST_SECRET", "thirdeye_meet_secret_change_me") MEET_DEFAULT_GROUP_ID = os.getenv("MEET_DEFAULT_GROUP_ID", "meet_sessions") ENABLE_MEET_INGESTION = os.getenv("ENABLE_MEET_INGESTION", "true").lower() == "true" MEET_CROSS_REF_GROUPS = [ g.strip() for g in os.getenv("MEET_CROSS_REF_GROUPS", "").split(",") if g.strip() ] # Jira JIRA_BASE_URL = os.getenv("JIRA_BASE_URL", "").rstrip("/") JIRA_EMAIL = os.getenv("JIRA_EMAIL", "") JIRA_API_TOKEN = os.getenv("JIRA_API_TOKEN", "") JIRA_DEFAULT_PROJECT = os.getenv("JIRA_DEFAULT_PROJECT", "ENG") JIRA_DEFAULT_ISSUE_TYPE = os.getenv("JIRA_DEFAULT_ISSUE_TYPE", "Task") ENABLE_JIRA = os.getenv("ENABLE_JIRA", "true").lower() == "true" JIRA_AUTO_RAISE = os.getenv("JIRA_AUTO_RAISE", "false").lower() == "true" JIRA_AUTO_RAISE_SEVERITY = os.getenv("JIRA_AUTO_RAISE_SEVERITY", "high") # Voice Message Intelligence ENABLE_VOICE_TRANSCRIPTION = os.getenv("ENABLE_VOICE_TRANSCRIPTION", "true").lower() == "true" VOICE_MAX_DURATION_SECONDS = int(os.getenv("VOICE_MAX_DURATION_SECONDS", "300")) VOICE_MIN_DURATION_SECONDS = int(os.getenv("VOICE_MIN_DURATION_SECONDS", "2")) VOICE_LANGUAGE = os.getenv("VOICE_LANGUAGE", "") # empty string = Whisper auto-detects VOICE_STORE_TRANSCRIPT = os.getenv("VOICE_STORE_TRANSCRIPT", "true").lower() == "true"