Улучшил скилл поиска товаров
This commit is contained in:
parent
598e30e89a
commit
cd47371901
6 changed files with 292 additions and 144 deletions
|
|
@ -1,63 +1,65 @@
|
|||
# Протокол Финального Аудита Корзины (Final Audit Protocol)
|
||||
# Протокол Финальной Проверки (Final Audit Protocol)
|
||||
|
||||
Этот протокол является ОБЯЗАТЕЛЬНЫМ завершающим этапом перед выдачей отчета пользователю. Твоя задача: гарантировать, что в корзине находится именно то, что просили, и по указанной цене.
|
||||
Этот протокол — завершающий этап контроля. Твоя задача: провести скрытую от пользователя математическую сверку двух типов цен и гарантировать чистоту корзины.
|
||||
|
||||
## ШАГ 1: Вход и Сверка Состава
|
||||
1. Перейди по URL `/cart` или нажми на иконку корзины.
|
||||
2. Извлеки список всех товаров. Для каждого товара зафиксируй:
|
||||
- Полное название (SKU)
|
||||
- Выбранную характеристику (цвет, размер, объем)
|
||||
- Текущую цену в корзине
|
||||
- Продавца
|
||||
3. **Сверка**: Сравни этот список с исходным заданием пользователя.
|
||||
- *Если товар лишний*: Удали его.
|
||||
- *Если товар отсутствует*: Попробуй добавить снова или зафиксируй ошибку "Item Lost".
|
||||
## ШАГ 1: Сбор данных из корзины
|
||||
Дай команду `internet_browser`:
|
||||
*"Зайди в корзину. Для каждого товара извлеки: Название, Текущую цену в корзине, Обычную цену (без скидок) и Цену по карте магазина. Проверь список на наличие платных пакетов, подписок или страховок. Верни Итоговую сумму к оплате. Ответ выдай в виде простого текстового списка."*
|
||||
|
||||
## ШАГ 2: Выявление "Мусора" (Anti-Dark Patterns)
|
||||
Маркетплейсы могут автоматически добавлять платные услуги. Ты ОБЯЗАН найти и зафиксировать (или удалить) следующее:
|
||||
- Подписки (Ozon Premium, Яндекс Плюс и др.)
|
||||
- Страховки и расширенные гарантии.
|
||||
- Платную упаковку или пакеты.
|
||||
- Любые товары с ценой 0 или 1 рубль, которые ведут к платным обязательствам.
|
||||
## ШАГ 2: Математический движок (execute_code)
|
||||
Получив данные, ты обязан запустить Python-скрипт для верификации. Скрипт должен работать по логике «ценового коридора».
|
||||
|
||||
## ШАГ 3: Математическая Верификация (Code-Based Math)
|
||||
LLM склонны ошибаться в сложении цен. Ты ОБЯЗАН провести расчет через инструмент `execute_code`.
|
||||
1. Считай цены всех позиций как массив чисел.
|
||||
2. Считай стоимость доставки.
|
||||
3. Выполни Python-код:
|
||||
**Логика для Python-скрипта:**
|
||||
1. **Загрузка эталона:** Считать данные из `/app/workspace/cart_state.json`.
|
||||
2. **Расчет контрольных сумм:**
|
||||
- `sum_base`: Сумма всех стандартных цен из памяти.
|
||||
- `sum_card`: Сумма всех цен по карте лояльности из памяти.
|
||||
3. **Сверка с реальностью:**
|
||||
- Извлечь `total_site` (то, что браузер увидел в графе "Итого").
|
||||
- Если `sum_card <= total_site <= sum_base` — проверка пройдена (цена валидна, расхождение объясняется применением или отсутствием скидки по карте).
|
||||
- Если `total_site` выходит за эти рамки — зафиксировать реальное изменение цены.
|
||||
4. **Очистка данных:** Если в ответе браузера есть позиции, которых нет в памяти (страховки, пакеты), скрипт помечает их как "мусор".
|
||||
|
||||
**Пример реализации в execute_code:**
|
||||
```python
|
||||
prices = [...] # Цены товаров из корзины
|
||||
delivery = 0 # Стоимость доставки
|
||||
total_expected = sum(prices) + delivery
|
||||
print(f"Total calculated: {total_expected}")
|
||||
import json
|
||||
|
||||
with open('/app/workspace/cart_state.json', 'r') as f:
|
||||
data = json.load(f)
|
||||
|
||||
# Считаем два идеальных сценария
|
||||
total_standard = sum(item['pricing']['standard'] for item in data['items'])
|
||||
total_loyalty = sum(item['pricing']['loyalty'] for item in data['items'])
|
||||
|
||||
actual_from_browser = ... # Данные от интернет-браузера
|
||||
|
||||
if total_loyalty <= actual_from_browser <= total_standard:
|
||||
data['status'] = 'AUDIT_SUCCESS'
|
||||
data['final_amount'] = actual_from_browser
|
||||
# Сохраняем подтвержденное состояние
|
||||
with open('/app/workspace/cart_state.json', 'w') as f:
|
||||
json.dump(data, f)
|
||||
print("VERIFICATION_SUCCESS")
|
||||
else:
|
||||
print("PRICE_MISMATCH_ALERT")
|
||||
```
|
||||
4. Сравни `total_expected` с итоговой суммой ("Итого"), которую показывает сайт.
|
||||
5. **При несовпадении**: Найди скрытую наценку (комиссия за сервис, скрытая доставка) и укажи это в отчете.
|
||||
|
||||
## ШАГ 4: Проверка цен (Скидочные карты)
|
||||
На российских маркетплейсах цена в корзине может измениться, если не выбрана "Карта Ozon" или "Кошелек WB".
|
||||
- Если цена в корзине ВЫШЕ, чем была в поиске: Проверь, не слетела ли скидка по карте.
|
||||
- Укажи в отчете: "Цена актуальна для способа оплаты [Название Карты]".
|
||||
## ШАГ 3: Защитный барьер и Фильтр мусора
|
||||
1. **Удаление лишнего:** Если скрипт обнаружил "мусор" (платную упаковку или страховку), прикажи браузеру: *"Удали из корзины [название услуги] и вернись к Шагу 1"*.
|
||||
2. **Безопасность:** Если браузер при парсинге корзины обнаружил поля для ввода номера карты — немедленно закрой вкладку. Это зона высокого риска.
|
||||
|
||||
## ШАГ 5: Зона Безопасности (Hard Stop)
|
||||
1. Проверь текущий URL. Если он содержит `/checkout/` или `/payment/` — немедленно ОСТАНОВИСЬ.
|
||||
2. Сделай скриншот всей страницы корзины и сохрани как `final_audit_view.png`.
|
||||
3. Убедись, что на экране НЕТ полей для ввода номера карты.
|
||||
## ШАГ 4: Формирование отчета для пользователя
|
||||
После завершения (когда скрипт выдал `VERIFICATION_SUCCESS`), отправь сообщение в Telegram. Используй только понятные человеку данные, скрывая техническую логику.
|
||||
|
||||
## ШАГ 6: Шаблон Финального Отчета
|
||||
Выдай результат в строгом формате:
|
||||
**✅ Проверка списка покупок завершена**
|
||||
|
||||
**СТАТУС АУДИТА: [SUCCESS / DISCREPANCY]**
|
||||
📦 **[Название товара]**
|
||||
- **Стандартная цена:** [X] ₽
|
||||
- **С картой лояльности:** [Y] ₽
|
||||
- **Статус:** В корзине, проверено.
|
||||
|
||||
| № | Товар | Требование | Факт в корзине | Цена | Примечание |
|
||||
|---|-------|------------|----------------|------|------------|
|
||||
| 1 | [Название] | [Цвет/Размер] | [Цвет/Размер] | [Цена] | [OK / Ошибка] |
|
||||
---
|
||||
💰 **ИТОГО К ОПЛАТЕ:** **[Сумма с сайта] ₽**
|
||||
*(Сумма подтверждена и соответствует официальным тарифам маркетплейса)*
|
||||
|
||||
**ФИНАНСОВЫЙ ИТОГ:**
|
||||
- Сумма товаров: [X] руб.
|
||||
- Доставка: [Y] руб.
|
||||
- Скрытые наценки/услуги: [Z] руб.
|
||||
- **ИТОГО К ОПЛАТЕ ВРУЧНУЮ: [СУММА] руб.**
|
||||
|
||||
**ССЫЛКА НА КОРЗИНУ:** [URL]
|
||||
**СООБЩЕНИЕ:** [Напр: "Обнаружена лишняя страховка, я её удалил. Корзина чиста."]
|
||||
**Что дальше?** Мы можем перейти к безопасной оплате через СБП или добавить что-то еще.
|
||||
Reference in a new issue