# Файл отзывов для саммаризации

Shopping Assistant может использовать отзывы покупателей, чтобы формировать краткое саммари по товару: выделять основные достоинства, недостатки и повторяющиеся мнения. Для первоначальной загрузки подготовьте полный файл с актуальным состоянием отзывов и разместите его по ссылке, доступной для скачивания Gravity Field.

Файл должен быть сохранен в кодировке UTF-8 и соответствовать стандарту CSV [RFC 4180](https://www.rfc-editor.org/rfc/rfc4180). XML и другие форматы в универсальный контракт не входят.

## Формат файла

Первая строка файла должна содержать названия колонок в указанном порядке:

```csv
reviewId,sku,rating,title,text,pros,cons,status,helpfulCount,locale,createdAt,updatedAt
```

Пример:

```csv
reviewId,sku,rating,title,text,pros,cons,status,helpfulCount,locale,createdAt,updatedAt
rv-123,sku-456,5,Отличный крем,"Быстро впитывается, хорошо увлажняет",Текстура,Сильный запах,published,12,ru-RU,2026-08-20T09:00:00Z,2026-08-31T10:00:00Z
rv-124,sku-789,4,,Подошел для сухой кожи,,,published,,ru-RU,2026-08-21T12:30:00Z,2026-08-21T12:30:00Z
```

## Описание полей

| Поле | Обязательное | Формат | Описание |
| :--- | :---: | :--- | :--- |
| `reviewId` | Да | Строка | Уникальный и стабильный ID отзыва. |
| `sku` | Да | Строка | SKU товара. Должен точно совпадать со значением колонки `sku` в продуктовом фиде Gravity Field, включая регистр и разделители. |
| `rating` | Да | Целое число | Оценка от `1` до `5`. |
| `title` | Нет | Строка | Заголовок отзыва. |
| `text` | Нет | Строка | Основной текст отзыва. |
| `pros` | Нет | Строка | Достоинства товара, указанные покупателем. |
| `cons` | Нет | Строка | Недостатки товара, указанные покупателем. |
| `status` | Да | Строка | Состояние отзыва: `published`, `hidden` или `deleted`. |
| `helpfulCount` | Нет | Целое число | Количество отметок о полезности отзыва, не меньше `0`. |
| `locale` | Нет | Строка | Язык и регион отзыва, например `ru-RU`. |
| `createdAt` | Да | Дата и время | Дата создания в формате RFC 3339, например `2026-08-20T09:00:00Z`. |
| `updatedAt` | Да | Дата и время | Дата последнего изменения в формате RFC 3339. |

Поля `title`, `text`, `pros` и `cons` могут быть пустыми. Отзывы только с оценкой допустимы, но не участвуют в текстовой саммаризации.

Для саммаризации используются только отзывы со статусом `published`. Отзывы со статусами `hidden` и `deleted` исключаются из обработки.

## Правила заполнения CSV

- Используйте запятую `,` как разделитель.
- Заключайте значение в двойные кавычки, если оно содержит запятую, двойные кавычки или перенос строки.
- Двойную кавычку внутри значения экранируйте второй двойной кавычкой. Например: `""Хороший"" товар`.
- Не меняйте названия колонок и их порядок.
- Передавайте одну строку на один отзыв и не дублируйте `reviewId`.
- Не добавляйте в файл имя, email, телефон и другие персональные данные автора отзыва.

## Передача файла

Разместите полную выгрузку так, чтобы файл был доступен Gravity Field для скачивания по ссылке. Передайте специалисту Gravity Field ссылку на один из двух вариантов:

- `reviews.csv` — CSV-файл без сжатия;
- `reviews.csv.gz` — тот же CSV-файл со сжатием gzip.

Выгрузка всегда должна состоять из одного файла. Не разделяйте ее на части. Gzip используется только для сжатия: содержимое `reviews.csv.gz` должно соответствовать тому же CSV-контракту.

## Проверка перед передачей

- [ ] Файл сохранен в UTF-8.
- [ ] Заголовок содержит все обязательные колонки.
- [ ] Каждый `reviewId` уникален.
- [ ] Каждый `sku` точно совпадает с идентификатором товара в продуктовом фиде.
- [ ] `rating` содержит целое число от `1` до `5`.
- [ ] `status` содержит только `published`, `hidden` или `deleted`.
- [ ] `createdAt` и `updatedAt` соответствуют RFC 3339.
- [ ] Запятые, кавычки и переносы строк внутри текстов корректно экранированы.
- [ ] В файле нет персональных данных авторов отзывов.
- [ ] Полная выгрузка доступна по ссылке одним файлом `reviews.csv` или `reviews.csv.gz`.

Передайте ссылку на готовый файл специалисту Gravity Field.
