Тест-режим: проверка через /api/photo-bot/check/ сайта (CV+гримасы+ИИ), метрики из llama.cpp, удаление прямого llama.cpp-клиента

This commit is contained in:
dddennnisss
2026-08-22 20:47:57 +07:00
parent ab58203982
commit f18c564ead
9 changed files with 117 additions and 205 deletions
+20 -14
View File
@@ -14,8 +14,7 @@ from trueconf.types import FSInputFile
import config.config as config
from utils import states
from utils.menu import MENU_TEXT
from photo_bot.photo_processor import prepare_ad_photo, get_crop_coordinates
from photo_bot.ai_validator import validate_photo_with_ai
from photo_bot.photo_processor import prepare_ad_photo, get_crop_coordinates, check_photo_api
from utils.texts import (
UNKNOWN_MAIN_CMD_TEXT,
EMOJI_DIGITS,
@@ -324,29 +323,36 @@ async def photo_module_handler(msg: Message):
try:
with open(original_path, 'rb') as f:
raw_photo = f.read()
ai_res = await asyncio.to_thread(validate_photo_with_ai, raw_photo)
# Dry-run: полный пайплайн проверки на САЙТЕ (CV + гримасы + ИИ),
# фото в БД/AD/Orion не попадает
check_res = await asyncio.to_thread(check_photo_api, raw_photo)
except Exception as e:
logger.error(f"🔥 [TEST MODE] Ошибка чтения фото: {e}")
ai_res = {'ok': False, 'verdict': '', 'reason': '', 'error': str(e)}
logger.error(f"🔥 [TEST MODE] Ошибка проверки фото: {e}")
check_res = {"status": "error", "reason": f"Ошибка бота: {e}"}
if not ai_res['ok']:
if check_res.get("status") != "ok":
# Фото остаётся в pending — можно повторить проверку (кнопка 1)
log_menu_stats(user_id, "Photo Bot (TEST)", "Ошибка обращения к ИИ")
log_menu_stats(user_id, "Photo Bot (TEST)", f"Ошибка проверки: {check_res.get('reason')}")
await msg.answer(
photo_test_ai_error(ai_res.get('error', ''), ai_res.get('error_time')),
photo_test_ai_error(check_res.get('reason', 'Неизвестная ошибка')),
parse_mode="html"
)
return
verdict = ai_res['verdict']
reason = ai_res['reason'] or 'Причина не указана.'
mimi = ai_res.get('mimi', '')
grafika = ai_res.get('grafika', '')
log_menu_stats(user_id, "Photo Bot (TEST)", f"ИИ-вердикт: {verdict}")
verdict = check_res.get('verdict', '')
log_menu_stats(user_id, "Photo Bot (TEST)", f"Вердикт проверки: {verdict}")
# Фото остаётся в pending — можно повторить проверку другим фото (кнопка 2)
await msg.answer(
photo_test_result(verdict, reason, mimi, grafika, ai_res.get('metrics')),
photo_test_result(
verdict,
check_res.get('ai_reason') or '',
check_res.get('cv_approved'),
check_res.get('cv_reason') or '',
check_res.get('forced_moderation'),
check_res.get('timings'),
check_res.get('ai_metrics'),
),
parse_mode="html"
)
return