---
type: Evaluation
title: "Независимая оценка ответа Haiku — пост 2026-09-02__msk__46316286 «Чиптрип-экспедиция «Краски Марокко»», prompt-v3"
description: "Оценщик Claude Opus сверил ответ Haiku с текстом поста по заданию EVALUATION-RUBRIC: страна, 10 мест маршрута, тур без отелей, одно предложение 1859 €, дата, условия цены, перелёт, дословные поля, сомнения модели. Ожидаемый ответ агента, прогон prompt-v2 и скрипт price-v1 не открывались."
resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-09-02__msk__46316286/prompt-v3/EVALUATION-independent-check-of-haiku-answer.md
tags: [cheaptrip, llm, haiku, evaluation, morocco, expedition]
generated: { by: claude-code/claude-opus-5-5, at: 2026-10-09T09:05:18Z }
status: stable
sources:
  - id: rubric
    resource: trip-places-hotels-prices-llm/prompt-v3/EVALUATION-RUBRIC-for-independent-opus-check-of-haiku-answer.md
    title: Задание оценщику
  - id: input
    resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-09-02__msk__46316286/prompt-v3/INPUT-user-message-exactly-as-sent-to-haiku.md
    title: Пост, как его видела модель
  - id: answer
    resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-09-02__msk__46316286/prompt-v3/ANSWER-haiku-json-for-this-post.json
    title: Ответ Haiku
  - id: check
    resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-09-02__msk__46316286/prompt-v3/CHECK-as-in-post-fields-found-in-post-text-report.md
    title: Отчёт скрипта о дословных полях
  - id: prompt
    resource: trip-places-hotels-prices-llm/posts-one-folder-per-post/2026-09-02__msk__46316286/prompt-v3/PROMPT-system-exactly-as-sent-to-haiku.md
    title: Системный промпт v3, как его видела модель
---

# Итог

**Справилась.** Ошибок нет: страна, все 10 мест маршрута, единственное предложение «1859 € — без перелета*», дата «с 17 по 27 октября» → 2026-10-17 и 10 ночей перенесены верно; покупатель найдёт тур на страницах Марокко и всех городов маршрута с верной ценой «от». Два мелких замечания — не ошибки.

# Счёт

| Что | В посте | В ответе | Совпадает |
|---|---|---|---|
| Страны | 1 — «Краски Марокко», «Королевство Марокко» | 1 — Марокко | да |
| Места мельче страны | 10 — «Касабланка → Рабат (1 ночь) → Шефшауэн (1 ночь) → Фес (2 ночи) → Мерзуга (Сахара, 1 ночь) → Варзазат (1 ночь) → Айт-Бен-Хадду → Марракеш (2 ночи) → Эссуэйра (2 ночи) → Касабланка» | 10 | да |
| Отели | 0 — названных отелей нет, только «жить в сказочных риадах» | 0 | да |
| Туры без отелей | 1 — «Чиптрип-экспедиция «Краски Марокко»» | 1 | да |
| Предложения с ценой | 1 — «1859 € — без перелета*» | 1 | да |
| Не предложения (верно не взяты) | 1 — сноска «Стоимость перелета Москва — Касабланка — Москва от 750 €» | 0 | да |
| Дословные поля, не найденные скриптом | — | 0 из 28 | да |

# Ошибки

Ошибок нет.

## Замечания (не ошибки, на покупателя почти не влияют)

| № | Что спорно | Дословно из поста | Что в ответе | Как это скажется на покупателе |
|---|---|---|---|---|
| З1 | Город вылета взят из сноски об ориентировочном перелёте, который в цену не входит. Фразы «Вылет из …» в посте нет, экспедиция начинается в Касабланке. | «1859 € — без перелета*», «* Стоимость перелета Москва — Касабланка — Москва от 750 €, стоимость дана ориентировочная» | `departure_city_as_in_post: "Москва"`, `departure_city_nominative: "Москва"` | Почти никак: пост из московского блога, перелёт из Москвы действительно предлагается. Но если программа будет фильтровать «туры из Москвы» как «с вылетом из Москвы», экспедиция без перелёта попадёт туда наравне с пакетными турами. Значение `null` было бы строже, «Москва» — полезнее для поиска; цель «пропуск хуже лишнего» говорит в пользу ответа модели. |
| З2 | Тип места у Айт-Бен-Хадду: это укреплённое селение (ксар, объект ЮНЕСКО), остановка без ночёвки. | «Варзазат (1 ночь) → Айт-Бен-Хадду → Марракеш (2 ночи)», метка «Юнеско» | `place_type: "курорт или посёлок"` | Никак: место выписано, роль «место по маршруту или программе» верна. Тип «другой объект: дорога, здание, место» тоже допустим; «посёлок» для селения разумен. |

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

- **Места в скобках.** Из «Мерзуга (Сахара, 1 ночь)» выписаны оба места: Мерзуга — «курорт или посёлок», Сахара — «природный объект: гора, озеро, река, лес», как велит шаг 6 промпта.
- **Сноска о перелёте не стала предложением.** «Стоимость перелета Москва — Касабланка — Москва от 750 €» — не в `offers`; в ответе одно предложение 1859 €.
- **Дата дословно и без склейки.** `departure_date_as_in_post: "с 17 по 27 октября"` — весь кусок, а не собранное «17 октября»; `departure_date: "2026-10-17"` — верный год при публикации 2026-09-02.
- **Ночи.** `nights: 10` — из «Стоимость на 10 ночей на 1 человека:»; сходится с суммой ночей маршрута (1 + 1 + 2 + 1 + 1 + 2 + 2 = 10) и меткой «10 ночей».
- **Условия цены.** `price_conditions_as_in_post: "Стоимость на 10 ночей на 1 человека:"` — ближайшая строка над ценой; `price_is_for: "с человека, размещение не сказано"` — ровно случай «на 1 человека» у экспедиции из описания списка; `room_category_as_in_post: null` — категория номера не названа.
- **Перелёт.** `flight_included: false` и доказательство `"1859 € — без перелета*"` — строка цены, как велит шаг 2.
- **Город вылета не продублирован в местах.** Москва из «Москва — Касабланка — Москва» не попала в `places`.
- **Касабланка — одна запись** с ролью «место по маршруту или программе», хотя встречается в начале и конце маршрута и в «мы побываем в Касабланке»; в `route_place_names_as_in_post` она дважды — так и стоит в маршруте.
- **«Северной Африки»** не выписано ни страной, ни местом — это часть света, а не место мельче страны.
- **Сомнения пустые** — по делу: в посте одна цена, одна дата, спорных строк нет.

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

Ошибок нет — обязательных правок нет. Необязательные уточнения к замечаниям:

- **К З1.** В шаг 2 промпта добавить строку: «Нет фразы „Вылет из …“, но есть сноска с ценой перелёта „Москва — Касабланка — Москва“ — город вылета бери из неё; если перелёта нет совсем — `null`». Так поведение модели станет правилом, а не догадкой, и на других экспедициях без перелёта ответ будет одинаковым.
- **К З2.** В описание `place_type` добавить пример: «крепость, ксар, древний город-памятник без жителей — „другой объект: дорога, здание, место“; живое селение — „курорт или посёлок“». Правка нужна только если программа будет различать эти типы при выборе страниц.
