/
medmikhr
/
LangFlow_API_bot
Обзор
Документация
Войти
/
medmikhr
/
LangFlow_API_bot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
settings/base.py
49 строк
1 KB
DAnaKhristenko
Initial project import
29 ноя 2025, 15:11
29 ноя 2025, 15:11
d536271
Код
Авторство
О чём код?
from __future__ import annotations import os from dataclasses import dataclass from functools import lru_cache from typing import Optional DEFAULT_LANGFLOW_API_URL = "http://langflow:7860/api/v1/run/636ace02-9e8c-457e-a992-765277bdf9d2" DEFAULT_LANGFLOW_INPUT_TYPE = "chat" DEFAULT_LANGFLOW_OUTPUT_TYPE = "chat" DEFAULT_LANGFLOW_TIMEOUT = 30.0 @dataclass(frozen=True) class TelegramSettings: bot_token: str @dataclass(frozen=True) class LangflowSettings: api_url: str = DEFAULT_LANGFLOW_API_URL api_key: Optional[str] = None input_type: str = DEFAULT_LANGFLOW_INPUT_TYPE output_type: str = DEFAULT_LANGFLOW_OUTPUT_TYPE timeout: float = DEFAULT_LANGFLOW_TIMEOUT @dataclass(frozen=True) class Settings: telegram: TelegramSettings langflow: LangflowSettings def _load_settings() -> Settings: telegram_token = os.getenv("TELEGRAM_BOT_TOKEN") if not telegram_token: raise RuntimeError("TELEGRAM_BOT_TOKEN is not set in the environment.") langflow_api_key = os.getenv("LANGFLOW_API_KEY") telegram_settings = TelegramSettings(bot_token=telegram_token) langflow_settings = LangflowSettings(api_key=langflow_api_key) return Settings(telegram=telegram_settings, langflow=langflow_settings) @lru_cache(maxsize=1) def get_settings() -> Settings: return _load_settings()