---
type: Evaluation
title: "Независимая оценка ответа Haiku — пост 2026-10-05__msk__46369615 (экспедиция по Дагестану), промпт v6 без флага --json-schema"
description: "Оценщик Opus сверил ответ Haiku с текстом поста об авторском туре по Дагестану на 4 и 5 дней по критериям prompt-v6/EVALUATION-RUBRIC: страна, 13 мест, 2 тура без отелей, одна строка цены на список из 8 дат, перелёт, дословные поля, сомнения. Отдельно разобрано, какое прочтение списка дат лучше для покупателя и что модель положила в departure_date_as_in_post. Ожидаемый ответ агента не открывался."
resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-10-05__msk__46369615/prompt-v6-without-json-schema-flag/EVALUATION-independent-check-of-haiku-answer.md
tags: [cheaptrip, llm, haiku, evaluation]
generated: { by: claude-code/claude-opus-5-5, at: 2026-10-10T20:00:00Z }
status: stable
sources:
  - id: rubric
    resource: trip-places-hotels-prices-llm/prompt-v6/EVALUATION-RUBRIC-for-independent-opus-check-of-haiku-answer.md
    title: Критерии независимой оценки v2
    author: claude-code/claude-opus-5-5
    last_modified: 2026-10-09
  - id: input
    resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-10-05__msk__46369615/prompt-v6-without-json-schema-flag/INPUT-user-message-exactly-as-sent-to-haiku.md
    title: Промпт v6 с постом в блоке <пост_для_анализа>, как его получила модель
  - id: answer
    resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-10-05__msk__46369615/prompt-v6-without-json-schema-flag/ANSWER-haiku-json-for-this-post.json
    title: Ответ Haiku
---

# Итог

**Справилась с ошибками.** Оба маршрута, 12 из 13 мест (включая «Кавказ» из меток), обе цены и все 8 дат верны, сомнение по делу — покупатель найдёт тур на страницах Дагестана, Кавказа, Махачкалы и Дербента с ценой «от» 36 000 ₽; но 6 дословных дат собраны из частей («Октябрь: 14»), формат дат в одном списке разный, пропущен «язык тролля».

# Счёт

| Что | В посте | В ответе |
|---|---|---|
| Страны | 1 — Россия: метки «По России», «Спецпроект Ч Россия» | 1 — Россия |
| Места мельче страны | 13 — «Дагестана», «Кавказ» (метки), 10 мест маршрута от «Махачкала» до «Дербент», «языке тролля» | 12 — нет «языке тролля» |
| Отели | 0 — гостиница не названа: «жить — в уютной гостинице в древнем селении» | 0 |
| Туры без отелей | 2 — «Маршрут на 4 дня: …», «Маршрут на 5 дней: …» | 2 |
| Строки цены | 2 — «36 000 ₽ — без перелета*», «47 000 ₽ — без перелета*» | — |
| Предложения | 16 при прочтении «одно на дату» (2 строки цены × 8 дат) | 16 |

# Список дат под одной ценой — какое прочтение лучше

В посте под каждым маршрутом:

> Даты туров:
> Октябрь: 7, 14, 21, 28
> Ноябрь: 4*, 11, 18, 25
> …
> Стоимость на 3 ночи на 1 человека:
> 36 000 ₽ — без перелета*

Промпт определяет предложение как «одна строка с ценой тура: дата вылета, число ночей, цена», а здесь одна строка цены на 8 дат. Модель выбрала «одно предложение на каждую дату» и объяснила это в `doubts_comment`.

**Для покупателя лучше «одно предложение на дату».**

- Цена «от» одинакова при обоих прочтениях — 36 000 ₽. Разница не в цене, а в датах.
- Одно предложение на строку цены требует одну `departure_date`. Первая дата — «7» октября, через 2 дня после публикации «2026-10-05»: уже 8 октября программа сочтёт тур прошедшим, хотя впереди ещё 7 вылетов до «25» ноября. Тур пропадёт со страниц Дагестана, Махачкалы, Дербента.
- `departure_date: null` лишает программу ближайшего вылета и снятия тура после последней даты.
- Одно предложение на дату даёт ближайший вылет, снятие каждой прошедшей даты и отбор «на ноябрьские праздники» — «4*» с пометкой «* На праздники!».
- Цена — 16 строк вместо 2 и расхождение со счётом шага «самопроверка». Решается одной фразой в промпте.

**Что модель положила в `departure_date_as_in_post`.** Три разных формата в одном ответе:

- «Октябрь: 7» — непрерывный кусок поста (начало строки «Октябрь: 7, 14, 21, 28»);
- «Октябрь: 14», «Октябрь: 21», «Октябрь: 28» — склейка месяца и числа, такого куска в посте нет; скрипт их не нашёл;
- «Ноябрь: 4*» — кусок поста, а дальше «11», «18», «25» — голые числа, тоже куски поста.

Склейка нарушает правило формата «Дата вылета дословно, весь кусок с датой как в посте … Не собирай дату из частей». Покупатель этого не увидит: `departure_date` верна у всех 16.

# Ошибки

| № | Что не так | Дословно из поста | Что в ответе | Как это скажется на покупателе |
|---|---|---|---|---|
| 1 | Дословная дата собрана из частей — 6 значений из 16, по 3 в каждом туре; в остальных формат скачет между «Ноябрь: 4*» и «11» | «Октябрь: 7, 14, 21, 28», «Ноябрь: 4*, 11, 18, 25» | `departure_date_as_in_post: "Октябрь: 14"`, `"Октябрь: 21"`, `"Октябрь: 28"`; рядом — `"Ноябрь: 4*"`, `"11"`, `"18"`, `"25"` | напрямую не скажется — `departure_date` верна; но проверка дословных полей даёт 6 ложных тревог, и выдуманную дату от склеенной не отличить |
| 2 | Пропущена названная достопримечательность программы | «сделаем фото на «языке тролля»» | в `places` нет записи «языке тролля» | если на сайте есть страница этой достопримечательности, тура там не будет; влияние малое |

## Замечания — не ошибки модели

| № | Что | Дословно из поста | Что в ответе | Как это скажется на покупателе |
|---|---|---|---|---|
| З1 | Оба тура названы одинаково — названием из заголовка; различаются только маршрутом | «Авторский тур «Природные сокровища Дагестана» на 4 или 5 дней» | оба `tour_name_as_in_post: "Авторский тур «Природные сокровища Дагестана»"` | не скажется: маршруты разные (второй с «Дербент») |

# Что сделано хорошо

- **«Кавказ» из меток записан** с ролью «только в заголовке или метках» — покупатель на странице Кавказа тур найдёт.
- **Оба маршрута — отдельными турами** с полным порядком мест: 10 мест в 4-дневном, 11 — в 5-дневном с «Дербент».
- **Каждое место маршрута — в `places`** с ролью «место по маршруту или программе».
- **Ночи и условия из строки условий:** «Стоимость на 3 ночи на 1 человека:» → `nights: 3`, `price_is_for: "с человека, размещение не сказано"`; «Стоимость на 4 ночи на 1 человека:» → `nights: 4`.
- **Перелёт:** «36 000 ₽ — без перелета*» → `flight_included: false` у всех 16, доказательство «без перелета».
- **Город вылета не взят из сноски** «* Стоимость перелета Москва — Махачкала — Москва от 13 000 ₽» → `null`.
- **Не предложения не попали в `offers`:** скидки детям «3 000 ₽», «1 000 ₽», перелёт «от 13 000 ₽», «ж/д билеты от 15 000 ₽».
- **Годы дат верны:** «Октябрь: 7» → 2026-10-07 при публикации 2026-10-05; «Ноябрь: 25» → 2026-11-25.
- **Сомнение по делу и коротко:** «В посте две строки цены («36 000 ₽ — без перелета*» и «47 000 ₽ — без перелета*»), общие для всех дат каждого маршрута; предложения разложены по датам … поэтому их шестнадцать, а не два» — цитаты, причина, следствие, без пересказа остального.
- **Без флага схемы JSON валиден:** все поля на месте, лишних ключей нет, обёртки ``` нет.

# Что поправить в промпте

- **Ошибка 1 — дословная дата из списка.** В описание `departure_date_as_in_post` (в `<формат_ответа>` и в таблицу шага 5) добавить пример: «Дата в списке под месяцем — пиши строку месяца целиком, как в посте: «Октябрь: 7, 14, 21, 28». Не составляй «Октябрь: 14» — такого куска в посте нет; число и месяц — в `departure_date`. У всех дат одного списка — одна и та же строка».
- **Ошибка 2 — достопримечательности в описании программы.** В `<где_искать_места>` добавить: «описание программы тура: названные достопримечательности, в том числе в кавычках — «сделаем фото на «языке тролля»» → «языке тролля», роль «место по маршруту или программе». Безымянные — «мини-пустыня», «аул-призрак» — не пиши».
- **Список дат под одной ценой (не ошибка, промпт молчит).** В `<глоссарий>` к «Предложение» и в шаг 6 добавить: «Одна строка цены под списком дат («Октябрь: 7, 14, 21, 28 / Ноябрь: 4*, 11, 18, 25» и ниже «36 000 ₽ — без перелета*») → одно предложение на каждую дату с той же ценой. В самопроверке считай такие предложения как „строк цены × дат“; сомнение об этом не пиши».
