You've already forked RekomenciBackend
fix(): better resolution of relevant vacancies
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user