fix(): better resolution of relevant vacancies

This commit is contained in:
gitgernit
2025-11-23 09:33:29 +03:00
parent f07ef3ce60
commit 25b35a3ccd
9 changed files with 116 additions and 10 deletions
@@ -16,11 +16,13 @@ class DefaultVacancyDataGateway(VacancyDataGateway):
@override
async def get_suitable(self, vector: list[float]) -> Sequence[SuitableVacancy]:
distance_expr = vacancy_embedding_table.c.vector.cosine_distance(vector)
similarity_expr = 1 - distance_expr
statement = (
select(Vacancy, label("resume_similarity", vacancy_embedding_table.c.vector.cosine_distance(vector)))
select(Vacancy, label("resume_similarity", similarity_expr))
.join(VacancyEmbedding, vacancy_embedding_table.c.vacancy_id == vacancy_table.c.id)
.where(vacancy_embedding_table.c.vector.cosine_distance(vector) > 0.5)
.order_by(vacancy_embedding_table.c.vector.cosine_distance(vector).asc())
.where(similarity_expr >= 0.5)
.order_by(distance_expr.asc())
.limit(100)
)
result = await self._session.execute(statement)