Я посмотрел ваши скриншоты: 787 локаций по Италии с описаниями на иврите (рестораны, часы работы, ссылки), 4094 маршрута, у дней есть ночёвка и режим дороги, поиск по смыслу уже есть. Ниже не «подключите нейросеть», а конвейер, где модель делает только то, что проверяется кодом. Пример на макете, ваши данные тут не загружены.



| Наблюдение по скриншотам | К чему приводит | Что делаем |
|---|---|---|
| Описание локации живым текстом: часы, рестораны, ссылки, нет полей «сколько времени», «спать или смотреть» | Модель додумывает часы и путает ночёвку с точкой дня | Один раз размечаем всё пакетом (шаг 1), результат хранится как поля, а не придумывается на каждый запрос |
| Названия и тексты на иврите и английском, русский перевод у малой части (13 названий) | Поиск и сравнение с эталонами идут вразнобой | Единый внутренний язык разметки, исходный текст не трогаем |
| В списке маршрутов есть дубли и черновики («New Italy Trip» дважды, «0426 … cccc») | Эталон «плывёт»: модель берёт куски из тестовых копий | Автофильтр эталонов: дубли и копии исключаем, остальные ранжируем по полноте |
| В днях есть [id=…] локаций и координаты | Это хорошо: можно требовать от модели только id из каталога и проверять их кодом | Структурированный вывод по схеме, чужие id отсекаются |
| № | Шаг | Кто делает | Что проверяем |
|---|---|---|---|
| 1 | Авторазметка 787 локаций: длительность, тип (точка, еда, ночёвка, переезд), нагрузка, кошер, сезон | Модель, один раз пакетом | Вы смотрите случайные 50 строк, порог точности согласуем заранее |
| 2 | «Стандарт дня» из 4094 маршрутов: сколько точек в день, как кончается день, где ночёвка | Статистика кодом, модель только называет типы дней | Короткая сводка, которую вы подтверждаете или правите |
| 3 | Подбор кандидатов: векторы (у вас уже есть) + география + «популярность» локации в ваших лучших турах | Код | Хорошие места из ваших эталонов не пропадают: их частота входит в оценку |
| 4 | Берём ближайшие эталонные дни как шаблон конструкции и подставляем в них кандидатов | Код выбирает, модель заполняет | Конструкция дня как в эталоне, а не склейка из разных |
| 5 | Сценарий дней: порядок, ночёвка, короткий текст | Модель, только id из списка | Выдуманных мест нет по построению |
| 6 | Проверки: крюки, два тяжёлых подряд, чужой район, сумма часов | Код | Нарушение: переделывается только плохой день, не весь маршрут |
| 7 | Оценка похожести на эталоны по рубрике и итоговый маршрут для правки | Модель-судья + код | Баллы по рубрике видны вам |
Пример показывает форму результата и проверки. На ваших данных цифры и места будут вашими.
| Этап | Результат | Проходит, если |
|---|---|---|
| A. План и рубрика | Схема под ваши данные, рубрика оценки, список из 20 тестовых запросов (вы дополняете) | Вы согласны с рубрикой до любого кода |
| B. Разметка и «стандарт дня» | Поля по локациям, сводка по эталонам | Точность на выборке 50 строк не ниже согласованной |
| C. Прогон на ваших запросах | Маршруты по 20 запросам, таблица баллов, список нарушений | Доля маршрутов без нарушений и покрытие эталонных мест выше порога, который вы задали на этапе A |
Не прошли этап: дальше не идём, платите только за пройденное.