valera/config/config.py

48 lines
1.2 KiB
Python

from pydantic_settings import BaseSettings
from functools import lru_cache
from typing import Optional
class Settings(BaseSettings):
telegram_bot_token: str = ""
telegram_proxy_url: Optional[str] = None
telegram_proxy_type: str = "socks5"
allowed_usernames: str = ""
bot_name: str = "Валера"
default_tool: str = "qwen"
qwen_command: str = "qwen"
opencode_command: str = "opencode"
tool_timeout: int = 120
memory_messages_count: int = 10
chroma_persist_dir: str = "./chroma_db"
scheduler_enabled: bool = True
idea_interval_hours: int = 4
stt_enabled: bool = True
stt_model: str = "vosk"
gigachat_credentials: Optional[str] = None
yandex_api_key: Optional[str] = None
yandex_folder_id: Optional[str] = None
database_url: str = "sqlite+aiosqlite:///./valera.db"
# XRay settings
xray_ssh_host: str = "mt.mirv.top"
xray_ssh_user: str = "root"
xray_ssh_password: str = ""
xray_add_user_script: str = "/root/bin/add_xray_user.sh"
class Config:
env_file = ".env"
extra = "allow"
@lru_cache()
def get_settings() -> Settings:
return Settings()