Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/ambartsumov_health-tracker-bot.json

1 line
8.3 KiB
JSON

{"repo": "ambartsumov/health-tracker-bot", "files": {"config.py": {"b1e56a4334a9f5dd19e8b7834de55d76ea2b9b77": {"t": 1785745412.0657737, "n": 3884, "h": "351dc6f0bb5e8dd6", "c": "\"\"\"\nConfiguration module for Health Bot.\nHandles all configuration settings, API keys, and environment variables.\n\"\"\"\n\nimport os\nfrom pathlib import Path\nfrom typing import Optional\nfrom dotenv import load_dotenv\n\n# Load environment variables from .env file in the same directory\nBASE_DIR_CONFIG = Path(__file__).resolve().parent\nload_dotenv(BASE_DIR_CONFIG / \".env\", override=True)\n\n# Base directories\nBASE_DIR = Path(__file__).resolve().parent\nDATA_DIR = BASE_DIR / \"data\"\nUSERS_DIR = DATA_DIR / \"users\"\nREPORTS_DIR = DATA_DIR / \"reports\"\nBACKUPS_DIR = DATA_DIR / \"backups\"\n\n# Ensure directories exist\nfor directory in [DATA_DIR, USERS_DIR, REPORTS_DIR, BACKUPS_DIR]:\n directory.mkdir(parents=True, exist_ok=True)\n\n# Database\nDATABASE_URL = os.getenv(\"DATABASE_URL\", f\"sqlite:///{BASE_DIR / 'health_bot.db'}\")\n\n# Telegram Bot\nTELEGRAM_BOT_TOKEN = os.getenv(\"TELEGRAM_BOT_TOKEN\", \"\")\n\n# DeepSeek API\nDEEPSEEK_API_KEY = os.getenv(\"DEEPSEEK_API_KEY\", \"\")\nDEEPSEEK_BASE_URL = os.getenv(\"DEEPSEEK_BASE_URL\", \"https://api.deepseek.com/v1\")\nDEEPSEEK_CHAT_MODEL = os.getenv(\"DEEPSEEK_CHAT_MODEL\", \"deepseek-chat\")\nDEEPSEEK_REASONER_MODEL = os.getenv(\"DEEPSEEK_REASONER_MODEL\", \"deepseek-reasoner\")\nDEEPSEEK_CODER_MODEL = os.getenv(\"DEEPSEEK_CODER_MODEL\", \"deepseek-coder\")\n\n# Gemini API (Google)\nGEMINI_API_KEY = os.getenv(\"GEMINI_API_KEY\", \"\")\nGEMINI_MODEL = os.getenv(\"GEMINI_MODEL\", \"gemini-1.5-flash\")\n\n# Samsung Health (optional)\nSAMSUNG_HEALTH_API_KEY = os.getenv(\"SAMSUNG_HEALTH_API_KEY\", \"\")\nSAMSUNG_HEALTH_USER_ID = os.getenv(\"SAMSUNG_HEALTH_USER_ID\", \"\")\n\n# FoodScanner API\nFOODSCANNER_API_URL = os.getenv(\"FOODSCANNER_API_URL\", \"http://localhost:8000\")\n\n# Application settings\nTIMEZONE = os.getenv(\"TIMEZONE\", \"Europe/Moscow\")\nLANGUAGE = os.getenv(\"LANGUAGE\", \"ru\")\n\n# Logging\nLOG_LEVEL = os.getenv(\"LOG_LEVEL\", \"INFO\")\nLOG_FILE = BASE_DIR / \"health_bot.log\"\n\n# Scheduler settings\nREMINDER_CHECK_INTERVAL = int(os.getenv(\"REMINDER_CHECK_INTERVAL\", \"60\")) # seconds\n\nclass Config:\n \"\"\"Configuration manager for the Health Bot.\"\"\"\n\n def __init__(self):\n self.BASE_DIR = BASE_DIR\n self.DATA_DIR = DATA_DIR\n self.USERS_DIR = USERS_DIR\n self.REPORTS_DIR = REPORTS_DIR\n self.BACKUPS_DIR = BACKUPS_DIR\n self.telegram_bot_token = TELEGRAM_BOT_TOKEN\n self.deepseek_api_key = DEEPSEEK_API_KEY\n self.deepseek_base_url = DEEPSEEK_BASE_URL\n self.deepseek_chat_model = DEEPSEEK_CHAT_MODEL\n self.deepseek_reasoner_model = DEEPSEEK_REASONER_MODEL\n self.deepseek_coder_model = DEEPSEEK_CODER_MODEL\n self.gemini_api_key = GEMINI_API_KEY\n self.gemini_model = GEMINI_MODEL\n self.samsung_health_api_key = SAMSUNG_HEALTH_API_KEY\n self.samsung_health_user_id = SAMSUNG_HEALTH_USER_ID\n self.foodscanner_api_url = FOODSCANNER_API_URL\n self.database_url = DATABASE_URL\n self.timezone = TIMEZONE\n self.language = LANGUAGE\n self.log_level = LOG_LEVEL\n self.log_file = LOG_FILE\n\n def validate(self) -> tuple[bool, list[str]]:\n \"\"\"Validate required configuration settings.\"\"\"\n errors = []\n \n if not self.telegram_bot_token:\n errors.append(\"TELEGRAM_BOT_TOKEN is required\")\n \n # DeepSeek and Gemini are optional but recommended\n if not self.deepseek_api_key:\n errors.append(\"DEEPSEEK_API_KEY is not set (AI features will be limited)\")\n \n if not self.gemini_api_key:\n errors.append(\"GEMINI_API_KEY is not set (image recognition will not work)\")\n \n return len(errors) == 0, errors\n \n def is_production_ready(self) -> bool:\n \"\"\"Check if all required configuration keys are set.\"\"\"\n required = [\n self.telegram_bot_token,\n self.gemini_api_key\n ]\n return all(required)\n\n\nconfig = Config()\n"}, "acf40dfcdba4236ee783dd094e50a13bc9e9786f": {"t": 1785752945.96364, "n": 3884, "h": "351dc6f0bb5e8dd6", "c": "\"\"\"\nConfiguration module for Health Bot.\nHandles all configuration settings, API keys, and environment variables.\n\"\"\"\n\nimport os\nfrom pathlib import Path\nfrom typing import Optional\nfrom dotenv import load_dotenv\n\n# Load environment variables from .env file in the same directory\nBASE_DIR_CONFIG = Path(__file__).resolve().parent\nload_dotenv(BASE_DIR_CONFIG / \".env\", override=True)\n\n# Base directories\nBASE_DIR = Path(__file__).resolve().parent\nDATA_DIR = BASE_DIR / \"data\"\nUSERS_DIR = DATA_DIR / \"users\"\nREPORTS_DIR = DATA_DIR / \"reports\"\nBACKUPS_DIR = DATA_DIR / \"backups\"\n\n# Ensure directories exist\nfor directory in [DATA_DIR, USERS_DIR, REPORTS_DIR, BACKUPS_DIR]:\n directory.mkdir(parents=True, exist_ok=True)\n\n# Database\nDATABASE_URL = os.getenv(\"DATABASE_URL\", f\"sqlite:///{BASE_DIR / 'health_bot.db'}\")\n\n# Telegram Bot\nTELEGRAM_BOT_TOKEN = os.getenv(\"TELEGRAM_BOT_TOKEN\", \"\")\n\n# DeepSeek API\nDEEPSEEK_API_KEY = os.getenv(\"DEEPSEEK_API_KEY\", \"\")\nDEEPSEEK_BASE_URL = os.getenv(\"DEEPSEEK_BASE_URL\", \"https://api.deepseek.com/v1\")\nDEEPSEEK_CHAT_MODEL = os.getenv(\"DEEPSEEK_CHAT_MODEL\", \"deepseek-chat\")\nDEEPSEEK_REASONER_MODEL = os.getenv(\"DEEPSEEK_REASONER_MODEL\", \"deepseek-reasoner\")\nDEEPSEEK_CODER_MODEL = os.getenv(\"DEEPSEEK_CODER_MODEL\", \"deepseek-coder\")\n\n# Gemini API (Google)\nGEMINI_API_KEY = os.getenv(\"GEMINI_API_KEY\", \"\")\nGEMINI_MODEL = os.getenv(\"GEMINI_MODEL\", \"gemini-1.5-flash\")\n\n# Samsung Health (optional)\nSAMSUNG_HEALTH_API_KEY = os.getenv(\"SAMSUNG_HEALTH_API_KEY\", \"\")\nSAMSUNG_HEALTH_USER_ID = os.getenv(\"SAMSUNG_HEALTH_USER_ID\", \"\")\n\n# FoodScanner API\nFOODSCANNER_API_URL = os.getenv(\"FOODSCANNER_API_URL\", \"http://localhost:8000\")\n\n# Application settings\nTIMEZONE = os.getenv(\"TIMEZONE\", \"Europe/Moscow\")\nLANGUAGE = os.getenv(\"LANGUAGE\", \"ru\")\n\n# Logging\nLOG_LEVEL = os.getenv(\"LOG_LEVEL\", \"INFO\")\nLOG_FILE = BASE_DIR / \"health_bot.log\"\n\n# Scheduler settings\nREMINDER_CHECK_INTERVAL = int(os.getenv(\"REMINDER_CHECK_INTERVAL\", \"60\")) # seconds\n\nclass Config:\n \"\"\"Configuration manager for the Health Bot.\"\"\"\n\n def __init__(self):\n self.BASE_DIR = BASE_DIR\n self.DATA_DIR = DATA_DIR\n self.USERS_DIR = USERS_DIR\n self.REPORTS_DIR = REPORTS_DIR\n self.BACKUPS_DIR = BACKUPS_DIR\n self.telegram_bot_token = TELEGRAM_BOT_TOKEN\n self.deepseek_api_key = DEEPSEEK_API_KEY\n self.deepseek_base_url = DEEPSEEK_BASE_URL\n self.deepseek_chat_model = DEEPSEEK_CHAT_MODEL\n self.deepseek_reasoner_model = DEEPSEEK_REASONER_MODEL\n self.deepseek_coder_model = DEEPSEEK_CODER_MODEL\n self.gemini_api_key = GEMINI_API_KEY\n self.gemini_model = GEMINI_MODEL\n self.samsung_health_api_key = SAMSUNG_HEALTH_API_KEY\n self.samsung_health_user_id = SAMSUNG_HEALTH_USER_ID\n self.foodscanner_api_url = FOODSCANNER_API_URL\n self.database_url = DATABASE_URL\n self.timezone = TIMEZONE\n self.language = LANGUAGE\n self.log_level = LOG_LEVEL\n self.log_file = LOG_FILE\n\n def validate(self) -> tuple[bool, list[str]]:\n \"\"\"Validate required configuration settings.\"\"\"\n errors = []\n \n if not self.telegram_bot_token:\n errors.append(\"TELEGRAM_BOT_TOKEN is required\")\n \n # DeepSeek and Gemini are optional but recommended\n if not self.deepseek_api_key:\n errors.append(\"DEEPSEEK_API_KEY is not set (AI features will be limited)\")\n \n if not self.gemini_api_key:\n errors.append(\"GEMINI_API_KEY is not set (image recognition will not work)\")\n \n return len(errors) == 0, errors\n \n def is_production_ready(self) -> bool:\n \"\"\"Check if all required configuration keys are set.\"\"\"\n required = [\n self.telegram_bot_token,\n self.gemini_api_key\n ]\n return all(required)\n\n\nconfig = Config()\n"}}}}