diff --git a/backend-py/app/ai.py b/backend-py/app/ai.py index f2e9836..18f90c1 100644 --- a/backend-py/app/ai.py +++ b/backend-py/app/ai.py @@ -103,8 +103,14 @@ SYSTEM_PROMPT_PICKER = ( " - 'cheap' → надёжный минимум по цене\n" " - 'tech' → топ функционал (Wi-Fi, инвертор, пар, авто-программы)\n" " - 'style' → согласованный дизайн всей техники\n" - "4. **Инфраструктура**:\n" - " - газ исключает индукцию; нет вентиляции → только рециркуляция (угольный фильтр)\n" + "4. **Инфраструктура и режим вытяжки**:\n" + " - `checklist.infra.stove` (газ/электро/индукция) — газ исключает индукцию\n" + " - У ВЫТЯЖКИ режим живёт в `per_cat.hood.answers.mode`:\n" + " • `exhaust` (Отвод в вентшахту) → стандартная установка, без фильтра\n" + " • `recirc` (Рециркуляция) → **ОБЯЗАТЕЛЬНО в pros модели вытяжки укажи 'Угольный фильтр в комплекте/докупаем'**\n" + " и в первой строке pros указать что комплект подходит для квартир без вентшахты\n" + " • `combi` (Универсальная) → упомяни что подходит для обоих режимов\n" + " - Если у hood режим recirc и AI не предлагает угольный фильтр — это ОШИБКА\n" "5. **Фичи современной техники** (NoFrost, Inverter, Wi-Fi, AquaStop, Booster и т.п.):\n" " - Пользователь НЕ выбирает фичи — у современной техники они в основном одинаковые (95% моделей имеют base set)\n" " - Ты УПОМИНАЕШЬ важные фичи каждой модели в `highlights` и в `pros` БЕЗ акцента на них\n" diff --git a/miniapp/assets/podbor.js b/miniapp/assets/podbor.js index a204fc5..34c3dc9 100644 --- a/miniapp/assets/podbor.js +++ b/miniapp/assets/podbor.js @@ -1115,11 +1115,11 @@ const Podbor = (function () { function renderInfra() { const cats = state.categories || []; const askStove = cats.includes("hob"); - const askVent = cats.includes("hood"); + // Вытяжка НЕ спрашиваем здесь — у hood-категории уже есть шаг "Подключение" + // (Отвод в вентшахту / Рециркуляция / Универсальная) — это дубль. - // Если ни одна из релевантных категорий не выбрана — пропускаем шаг - if (!askStove && !askVent) { - // Автопереход на summary через микропаузу (чтобы пользователь увидел) + // Если варочная не выбрана — пропускаем шаг полностью + if (!askStove) { setTimeout(() => { go("summary"); }, 50); return el(`
@@ -1130,41 +1130,18 @@ const Podbor = (function () { `); } - const stoveBlock = askStove ? ` -
-
Подключение варочной
-
- ${PODBOR_INFRA.stove.map(o => ` - - `).join("")} -
-
- ` : ""; - - const ventBlock = askVent ? ` -
-
Вытяжка → внутридомовая вентиляция?
-
- ${PODBOR_INFRA.vent.map(o => ` - - `).join("")} -
-
Если «Нет» — менеджер закладывает угольный фильтр. Если «Да» — заранее планируем выводы.
-
- ` : ""; - - const lede = (askStove && askVent) - ? "Газ или электрика — определит тип варочной. Подключение вытяжки — нужны ли выводы или угольный фильтр." - : askStove - ? "Газ или электрика — определит тип варочной (индукция / стеклокерамика / газ)." - : "Подключение вытяжки — нужны ли выводы в вентшахту или угольный фильтр."; - const node = el(`

Инфраструктура
кухни

-

${lede}

- ${stoveBlock} - ${ventBlock} +

Газ или электрика — определит тип варочной (индукция требует 380В, обычная электро 220В).

+
+
Подключение варочной
+
+ ${PODBOR_INFRA.stove.map(o => ` + + `).join("")} +
+
@@ -1228,7 +1205,6 @@ const Podbor = (function () {
Бюджет${budgetLabel}
Стратегия${strategyLabels || "—"}
${state.categories.includes("hob") ? `
Подключение${PODBOR_INFRA.stove.find(f => f.key === state.infra.stove)?.label || "—"}
` : ""} - ${state.categories.includes("hood") ? `
Вентиляция${PODBOR_INFRA.vent.find(f => f.key === state.infra.vent)?.label || "—"}
` : ""}