Рекрутинговый инструмент режет запись звонка на предложения, анонимизирует их и хранит эмбеддинги с метаданными в Pinecone. Так же устроены Smart Trackers у Gong: по их кейсу, миллиарды векторов предложений по 768 измерений. В задаче размерность 4, метрика cosine.
Метаданные: speaker — candidate или recruiter, call_day — дата звонка числом ГГГГММДД.
Рекрутеру нужны 3 фразы кандидата, близкие к вектору «по деньгам я рассчитываю на большее» [0.2, 0.9, 0.1, 0.3], из звонков с 1 октября 2025 года включительно.
В работе: Поиск примеров по теме в записях звонков: найм, продажи, поддержка.
Pinecone · Pinecone (эмулятор: точный перебор)
Индекс
Размерность 4, метрика cosine.
Пример: векторы
| id | values | metadata |
|---|---|---|
s-1 | 0.21, 0.88, 0.12, 0.31 | {"speaker": "candidate", "call_day": 20251015} |
s-2 | 0.2, 0.9, 0.1, 0.3 | {"speaker": "recruiter", "call_day": 20251020} |
s-3 | 0.25, 0.85, 0.15, 0.28 | {"speaker": "candidate", "call_day": 20250930} |
s-4 | 0.3, 0.8, 0.2, 0.3 | {"speaker": "candidate", "call_day": 20251001} |
s-5 | 0.9, 0.1, 0.2, 0.1 | {"speaker": "candidate", "call_day": 20251102} |
s-6 | 0.1, 0.7, 0.4, 0.5 | {"speaker": "candidate", "call_day": 20260112} |
Ожидаемый ответ
s-1, s-4, s-6
index.query(): vector, topK и filter по метаданным. Ищем точным перебором по метрике индекса на 4 наборах векторов и сравниваем список id по порядку. Фильтр — по правилам Pinecone: $eq $ne $gt $gte $lt $lte $in $nin $exists $and $or.
{"vector": [ … ], "topK": 3, "filter": { … }}
Источник: на данных рекрутинговой платформы: расшифровки звонков с кандидатами. Условие пересказано своими словами.
Посмотреть данные, проверить часть фильтра. На зачёт не влияет.
Здесь появится результат отправки.