fix: load env variables, add fallback for doc conversion, and validate LLM API key

This commit is contained in:
Repinoid
2026-10-31 14:13:33 +03:00
parent ae34f04fc3
commit 631bc750d5
3 changed files with 91 additions and 18 deletions
+38 -2
View File
@@ -3,13 +3,49 @@ import os
VERSION = "2.0.24"
def _load_env():
"""Загрузить переменные окружения из .env файла при его наличии.
Назначение:
Позволяет локальному серверу разработки и фоновым скриптам автоматически
считывать боевые или тестовые параметры (включая LLM_API_KEY и URL сервисов)
без необходимости ручного экспорта в shell.
Почему так:
Порядок поиска обходит текущую директорию site/, родительский каталог
contracts-flask/ и корень репозитория. Значения уже установленных системных
переменных окружения имеют приоритет и НЕ перезаписываются.
"""
for candidate in [
os.path.join(os.path.dirname(__file__), ".env"),
os.path.join(os.path.dirname(__file__), "..", ".env"),
os.path.join(os.path.dirname(__file__), "..", "..", ".env"),
]:
if os.path.isfile(candidate):
try:
with open(candidate, "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if line and not line.startswith("#") and "=" in line:
k, v = line.split("=", 1)
k = k.strip()
v = v.strip().strip('"').strip("'")
if k and k not in os.environ:
os.environ[k] = v
except Exception:
pass
_load_env()
LLM_URL = os.getenv("LLM_API_URL", "https://api.aillm.ru/v1/chat/completions")
LLM_KEY = os.getenv("LLM_API_KEY", "")
LLM_KEY = os.getenv("LLM_API_KEY") or os.getenv("LLM_KEY", "")
LLM_MODEL = os.getenv("LLM_MODEL", "gpt-oss-120b")
MAX_CONTENT_LENGTH = 200 * 1024 * 1024 # 200 MB
API_KEY = os.getenv("API_KEY", "")
CONVERT_SERVICE_URL = os.getenv("CONVERT_SERVICE_URL", "http://containerk8s.df36c8af-1a95-4623-b551-0d37b731ccca.svc.cluster.local:5000")
CONVERT_SERVICE_URL = os.getenv("CONVERT_SERVICE_URL", "https://liberta.containerk8s.dev.nubes.ru")
# ── VM-буфер загрузки (паттерн drhider) ──────────────────────────────
# Браузер кладёт файл на ВМ через WebDAV (мимо шлюза кластера ~64КБ),