66 lines
2 KiB
Python
66 lines
2 KiB
Python
import os
|
|
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
# LLM
|
|
DEFAULT_MODEL: str = "gpt-5.4"
|
|
BACKGROUND_MODEL: str = "vercel:google/gemma-4-31b-it"
|
|
OPENAI_API_KEY: str = ""
|
|
OPENAI_BASE_URL: str = "https://api.openai.com/v1"
|
|
OPENROUTER_API_KEY: str = ""
|
|
OPENROUTER_BASE_URL: str = "https://openrouter.ai/api/v1"
|
|
VERCEL_API_KEY: str = ""
|
|
VERCEL_BASE_URL: str = "https://ai-gateway.vercel.sh/v1"
|
|
HUGGINGFACE_API_KEY: str = ""
|
|
HUGGINGFACE_BASE_URL: str = "https://router.huggingface.co/hf-inference/v1"
|
|
GITHUB_TOKEN: str = ""
|
|
|
|
# Telegram
|
|
TG_BOT_TOKEN: str = ""
|
|
OWNER_TELEGRAM_CHAT_ID: str = "" # Telegram user ID of the bot owner for approval requests
|
|
ELEVENLABS_API_KEY: str = ""
|
|
ELEVENLABS_VOICE_ID: str = ""
|
|
ELEVENLABS_MODEL: str = "eleven_multilingual_v2"
|
|
|
|
# Auth
|
|
AUTH_TOKEN: str = ""
|
|
|
|
# Integrations
|
|
VIKUNJA_API_URL: str = ""
|
|
VIKUNJA_API_KEY: str = ""
|
|
VIKUNJA_MEMORY_PATH: str = ""
|
|
KARAKEEP_API_URL: str = ""
|
|
KARAKEEP_API_KEY: str = ""
|
|
|
|
# User identity & provisioning
|
|
CREDENTIAL_VAULT_KEY: str = ""
|
|
VIKUNJA_ADMIN_API_KEY: str = ""
|
|
KARAKEEP_ADMIN_API_KEY: str = ""
|
|
ALLOW_CREDENTIAL_REVEAL_IN_CHAT: bool = False
|
|
EVENT_POLL_INTERVAL_SECONDS: int = 300
|
|
|
|
# Advisor
|
|
ADVISOR_ENABLED: bool = False
|
|
ADVISOR_DEFAULT_MODEL: str = "claude-opus-4.6"
|
|
ADVISOR_MAX_USES: int = 3
|
|
ADVISOR_MAX_TOKENS: int = 700
|
|
|
|
# Paths
|
|
REPOS_DIR: str = "/repo"
|
|
DATA_DIR: str = "/data"
|
|
TG_PERSISTENCE_DIR: str = ""
|
|
|
|
# BetterBot — site directories
|
|
SITE_DIR: str = "/site"
|
|
MEMORAIZ_DIR: str = "/memoraiz"
|
|
|
|
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
|
|
|
|
|
|
settings = Settings()
|
|
if not settings.VERCEL_API_KEY:
|
|
settings.VERCEL_API_KEY = os.getenv("AI_GATEWAY_API_KEY", "")
|
|
if not settings.HUGGINGFACE_API_KEY:
|
|
settings.HUGGINGFACE_API_KEY = os.getenv("HF_ACCESS_TOKEN", "")
|