betterbot/config.py
Andre K e68c84424f
Some checks failed
Deploy BetterBot / deploy (push) Failing after 3s
Deploy BetterBot / notify (push) Successful in 3s
feat: fork from CodeAnywhere framework
Replace standalone Telegram bot with full CodeAnywhere framework fork.
BetterBot shares all framework code and customizes only:
- instance.py: BetterBot identity, system prompt, feature flags
- tools/site_editing/: list_files, read_file, write_file with auto git push
- .env: model defaults and site directory paths
- compose/: Docker setup with betterlifesg + memoraiz mounts
- deploy script: RackNerd with Infisical secrets
2026-04-19 08:01:27 +08:00

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 = "/repos"
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", "")