diff --git a/config/config.py b/config/config.py index 82c88e4..4e68b52 100644 --- a/config/config.py +++ b/config/config.py @@ -95,13 +95,16 @@ ENABLE_LK = True # Личный кабинет сотрудник # показывается пользователю. Само фото никуда НЕ ДОСЫЛАЕТСЯ # не применяется (ни в AD, ни в API, ни на модерацию). # ========================================================= -PHOTO_TEST_MODE = False # Тестовый мод: фото напрямую в ИИ, результат показывается, фото никуда не публикуется +PHOTO_TEST_MODE = os.getenv("PHOTO_TEST_MODE", "0").strip().lower() in ("1", "true", "yes", "on") PHOTO_TEST_AI_URL = os.getenv("PHOTO_TEST_AI_URL", "http://srvkem-ii-03:8083/v1/chat/completions") PHOTO_TEST_AI_MODEL = os.getenv( "PHOTO_TEST_AI_MODEL", "/opt/llama.cpp-cpu/build/bin/models/gemma-4-E4B-mtp/gemma-4-E4B-it-UD-Q4_K_XL.gguf" ) PHOTO_TEST_AI_TIMEOUT = float(os.getenv("PHOTO_TEST_AI_TIMEOUT", "180")) +# Разрешение, до которого сжимается фото перед отправкой в ИИ (max side, px). +# 1536 — для чёткого разбора мимики/деталей (выше = медленнее). +PHOTO_TEST_AI_MAX_SIDE = 1536 # ========================================================= # 2. КОНТРОЛЬ ДОСТУПА diff --git a/photo_bot/ai_validator.py b/photo_bot/ai_validator.py index a1c1cda..5a8096f 100644 --- a/photo_bot/ai_validator.py +++ b/photo_bot/ai_validator.py @@ -58,10 +58,11 @@ def validate_photo_with_ai(file_bytes: bytes) -> dict: Возвращает {'ok': bool, 'verdict': str, 'reason': str, 'error': str} """ try: - # Сжатие как в photo_validator.py (PIL, без сторонних DLL) + # Сжатие (PIL): разрешение настраивается в config (PHOTO_TEST_AI_MAX_SIDE) + side = int(config.PHOTO_TEST_AI_MAX_SIDE) with Image.open(io.BytesIO(file_bytes)) as img: img = img.convert('RGB') - img.thumbnail((768, 768)) + img.thumbnail((side, side)) buffer = io.BytesIO() img.save(buffer, format='JPEG', quality=85) b64_img = base64.b64encode(buffer.getvalue()).decode('utf-8')