В индексе Pinecone — эмбеддинги выпусков подкастов (в задаче размерность 4, метрика cosine). В метаданных lang — язык выпуска: ru, en, uk, kk.
Пользователь дослушал выпуск про ипотеку. Блок «Слушать дальше» должен показать 3 ближайших выпуска на русском. Вектор запроса — [0.9, 0.1, 0.3, 0.2].
Напишите тело запроса: vector, topK, filter, namespace (пустая строка).
В работе: Рекомендации «похожее» с ограничением по языку или региону.
Pinecone · Pinecone (эмулятор: точный перебор)
Индекс
Размерность 4, метрика cosine.
Пример: векторы
| id | values | metadata |
|---|---|---|
ep-101 | 0.88, 0.12, 0.31, 0.18 | {"lang": "ru", "show": "Деньги по полочкам"} |
ep-102 | 0.91, 0.08, 0.29, 0.22 | {"lang": "en", "show": "Mortgage Talk"} |
ep-103 | 0.7, 0.3, 0.4, 0.1 | {"lang": "ru", "show": "Своя квартира"} |
ep-104 | 0.1, 0.9, 0.2, 0.3 | {"lang": "ru", "show": "Кино и вино"} |
ep-105 | 0.85, 0.15, 0.35, 0.25 | {"lang": "uk", "show": "Гроші"} |
ep-106 | 0.6, 0.2, 0.1, 0.7 | {"lang": "ru", "show": "Налоги за 15 минут"} |
Ожидаемый ответ
ep-101, ep-103, ep-106
Как проверяем
Запрос — 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 — отправка
Посмотреть данные, проверить часть фильтра. На зачёт не влияет.
Здесь появится результат отправки.