Покупатель смотрит объявление о зимних шинах R16 в Казани. Блок «Похожие» показывает 3 объявления из Казани, категория шины или диски.
Метаданные: city, category. Индекс: размерность 4, метрика cosine. Вектор просмотренного объявления — [0.7, 0.2, 0.6, 0.3].
В работе: Похожие объявления с ограничением по городу и группе категорий.
Pinecone · Pinecone (эмулятор: точный перебор)
Индекс
Размерность 4, метрика cosine.
Пример: векторы
| id | values | metadata |
|---|---|---|
ad-1 | 0.7, 0.2, 0.6, 0.3 | {"city": "Казань", "category": "шины"} |
ad-2 | 0.68, 0.25, 0.58, 0.3 | {"city": "Казань", "category": "диски"} |
ad-3 | 0.71, 0.19, 0.61, 0.29 | {"city": "Набережные Челны", "category": "шины"} |
ad-4 | 0.6, 0.3, 0.5, 0.4 | {"city": "Казань", "category": "аккумуляторы"} |
ad-5 | 0.5, 0.4, 0.5, 0.4 | {"city": "Казань", "category": "шины"} |
ad-6 | 0.1, 0.9, 0.1, 0.1 | {"city": "Казань", "category": "диски"} |
Ожидаемый ответ
ad-1, ad-2, ad-5
Как проверяем
Запрос — JSON, как тело
index.query(): vector, topK и filter по метаданным. Ищем точным перебором по метрике индекса на 4 наборах векторов и сравниваем список id по порядку. Фильтр — по правилам Pinecone: $eq $ne $gt $gte $lt $lte $in $nin $exists $and $or.
{"vector": [ … ], "topK": 3, "filter": { … }}
Источник: на данных классифайда: объявления автозапчастей. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить часть фильтра. На зачёт не влияет.
Здесь появится результат отправки.