Войти Регистрация
Data base

192. Фразы кандидатов о зарплате за последний квартал

Средняя

Рекрутинговый инструмент режет запись звонка на предложения, анонимизирует их и хранит эмбеддинги с метаданными в 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.

Пример: векторы

idvaluesmetadata
s-10.21, 0.88, 0.12, 0.31{"speaker": "candidate", "call_day": 20251015}
s-20.2, 0.9, 0.1, 0.3{"speaker": "recruiter", "call_day": 20251020}
s-30.25, 0.85, 0.15, 0.28{"speaker": "candidate", "call_day": 20250930}
s-40.3, 0.8, 0.2, 0.3{"speaker": "candidate", "call_day": 20251001}
s-50.9, 0.1, 0.2, 0.1{"speaker": "candidate", "call_day": 20251102}
s-60.1, 0.7, 0.4, 0.5{"speaker": "candidate", "call_day": 20260112}

Ожидаемый ответ

s-1, s-4, s-6
Как проверяем Запрос — JSON, как тело index.query(): vector, topK и filter по метаданным. Ищем точным перебором по метрике индекса на 4 наборах векторов и сравниваем список id по порядку. Фильтр — по правилам Pinecone: $eq $ne $gt $gte $lt $lte $in $nin $exists $and $or.
{"vector": [ … ], "topK": 3, "filter": { … }}
фильтр метаданных$in$gte$and

Источник: на данных рекрутинговой платформы: расшифровки звонков с кандидатами. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.