Files
portal/app/config/autopodbor.php
T
Дмитрий b3f5158e48 perf/fix автоподбор: параллельный сбор 2ГИС по 3 + большие таймауты + безопасное письмо + node из config
Ускорение шага 1: CategoryScraper грузит страницы категории 2ГИС не по одной, а пачками поперёк рубрик
через BatchPageFetcher. На остывшем xfetch 2ГИС упал с ~23 мин до ~5 мин и собрал 139 фирм вместо 12.
Общий лимит одновременных xfetch снижен 4→3 (безопаснее под оконный rate-limit сервиса).

Таймауты ИИ/EXA подняты с запасом (латентность моделей плавает, сбор асинхронный, клиент ждёт):
sonar 120→300с, отсев агрегаторов 90→240с, общий AITUNNEL 30→120с, EXA 30→90с. Джоба: один прогон
без авто-ретраев (tries 3→1, чтобы таймаут не перезапускал платный движок трижды) и общий таймаут 900→1800с.

Фиксы, найденные на живом прогоне:
- Письмо «готово» больше не роняет прогон при недоступной почте (тесты на сбой SMTP при status done/empty).
- Яндекс-загрузчик берёт путь к node из config (autopodbor.node_bin, дефолт node) — из-под PHP node
  теперь находится; на живом прогоне Яндекс дал 78 фирм вместо 0.

По TDD. Бэкенд автоподбора 262/262, Pint чисто. Живой прогон end-to-end: ~8 мин, 14 новых конкурентов,
списание 300 ₽ корректно.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 05:43:34 +03:00

28 lines
1.4 KiB
PHP

<?php
return [
/*
|--------------------------------------------------------------------------
| Живой движок поиска конкурентов (шаг 1)
|--------------------------------------------------------------------------
|
| true → findCompetitors использует НАСТОЯЩИЙ движок (ниша → поиск 2ГИС/Яндекс →
| резолв → сборка). false → демо-заглушка FakeCompetitorAgent. По умолчанию ВЫКЛ —
| включается осознанно (локально/за тумблером), т.к. ходит в живые сервисы.
|
*/
'real_find' => env('AUTOPODBOR_REAL_FIND', false),
/*
|--------------------------------------------------------------------------
| Путь к бинарнику node для Playwright-скриптов
|--------------------------------------------------------------------------
|
| Из-под PHP-процесса (очередь, artisan) PATH может отличаться от интерактивного
| шелла. Если 'node' по PATH не находится — пропишите абсолютный путь в .env:
| AUTOPODBOR_NODE_BIN="C:\Program Files\nodejs\node.exe"
|
*/
'node_bin' => env('AUTOPODBOR_NODE_BIN', 'node'),
];