first commit

This commit is contained in:
workD12
2026-09-11 19:47:15 +03:00
commit 32754a1fe2
56 changed files with 3836 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
"""Загрузка секретов: переменные окружения + файл .env в корне проекта.
Ключи НЕ хранятся в коде. Порядок:
1) переменная окружения (OPENROUTER_API_KEY=...);
2) файл .env в корне проекта (строка вида OPENROUTER_API_KEY=sk-or-...).
Файл .env.example — шаблон: cp .env.example .env и вписать свой ключ.
"""
from __future__ import annotations
import os
from pathlib import Path
_PROJECT_ROOT = Path(__file__).resolve().parents[2]
def get_secret(name: str) -> str | None:
"""Взять секрет из окружения или .env (первый источник побеждает)."""
value = os.environ.get(name)
if value:
return value.strip()
env_file = _PROJECT_ROOT / ".env"
if env_file.is_file():
for line in env_file.read_text(encoding="utf-8").splitlines():
line = line.strip()
if not line or line.startswith("#") or "=" not in line:
continue
key, _, val = line.partition("=")
if key.strip() == name:
return val.strip().strip('"').strip("'")
return None
def get_api_key() -> str | None:
return get_secret("OPENROUTER_API_KEY")