# Получение расширенной информации об ответе стратегии (инструмент тестировщика)

Для проведения расширенного анализа ответов стратегии можно использовать запросы /recs с дополнительным параметром explain=true.

# Эндпоинт

POST https://evs-01.gravityfield.ai/recs

Используется только для отладки стратегий. Для боевой интеграции используйте https://evs.gravityfield.ai.

# Обязательные параметры запроса

Параметр Тип Описание
uid string Уникальный идентификатор пользователя. В случае фронтовой или гибридной интеграции — это значение cookie slid на сайте. В случае API-only интеграции — необходимо запросить у команды Gravity Field, зная user.id.
sec string Идентификатор секции. Его можно найти в URL аккаунта или стратегии. Пример: https://app.gravityfield.ai/s/000/dashboardsec = 000
ses string Уникальный идентификатор сессии. Заполняется вручную тестировщиком — любое уникальное значение строки или числа.
id string Идентификатор стратегии. Число после edit/ в URL стратегии. Пример: https://app.gravityfield.ai/s/000/strategies/edit/111id = 111
explain boolean Указать true, чтобы получить информацию о pipeline стратегии
options.context object Контекст страницы, на которой запрашивается рекомендация. Примеры: {type: "HOMEPAGE"}, {type: "CATEGORY", data: ["Малому и среднему бизнесу"]}, {type: "PRODUCT", data: ["XD-154"]}, {type: "CART", data: ["XD-154", "DL-5874", "TN-15", "QSD-1581", "XD-15"]}, {type: "SEARCH", data: ["search query"]}, {type: "OTHER"}

# �� Пример запроса

curl --location 'https://evs-01.gravityfield.ai/recs' --header 'Content-Type: application/json' --header 'Cookie: SLID=C361C172-885C-4462-970D-D96E481EDB57' --data '{
  "uid": "67f7a834139c346f83cf7911",
  "sec": "670ccaae56afcafaf808c146",
  "ses": "100425",
  "id": "680f8e8357e3dc04b907a3e2",
  "explain": true,
  "options": {
    "context": {
      "type": "CART",
      "data": ["1023812"]
    }
  }
}'

# Ответ

Ответ включает два блока:

# slots

Содержит финальные рекомендованные товары:

"slots": [
  {
    "item": {
      "sku": "52013945",
      "name": "Название товара 52013945",
      "price": "1399",
      "url": "https://site.ru/products/52013945",
      "brand": "Бренд товара 52013945"
    },
    "fallback": false,
    "strId": 4
  }
]

# pipeline

pipeline — это последовательность этапов, через которые проходят товары, прежде чем попасть в финальный список рекомендаций. Каждый шаг может включать фильтрацию, fallback-логику, источники и дополнительные правила.

"pipeline": [
  [
    {
      "type": "RecentlyViewed",
      "items": ["72103847", "52013945", "32490811"],
      "steps": [
        {
          "query": {
            "$and": [
              {"price": {"$ne": {"$numberDecimal": "1"}}},
              {"categories": {"$all": ["Категория первого уровня", "Категория второго уровня"]}}
            ]
          },
          "items_in_query": ["72103847", "52013945", "32490811"]
        }
      ]
    },
    {
      "type": "custom post rules",
      "items": ["72103847", "52013945", "32490811"]
    }
  ]
]

# ⚠️ Важно

  • Если не указать explain=true (explain=false по умолчанию), в ответе не будет pipeline-информации.
  • При отсутствии корректных uid, sec, id в ответ на запрос будет возвращена ошибка 422.

# FAQ

Зачем нужен параметр explain?
Чтобы понять, как именно стратегия фильтрует, сортирует и формирует рекомендации. Используется для отладки и настройки.

Что такое pipeline?
Это список логических шагов, которые выполняет стратегия при формировании выдачи: фильтры, источники, fallback-механизмы и т.п.

# См. также