Fix re-recommending vacancies

This commit is contained in:
estromenko 2025-10-26 14:04:56 +03:00
parent 2d8d9ec0f7
commit d107d69d77
2 changed files with 14 additions and 5 deletions

View File

@ -25,7 +25,7 @@ class Command(BaseCommand):
help = "Collect vacancies from telegram messages"
def handle(self, *args, **options):
documents = []
ids, documents = [], []
for index, row in enumerate(clickhouse_client.query(query).result_rows):
(id, chat_username, telegram_id, message, timestamp) = row
@ -36,9 +36,10 @@ class Command(BaseCommand):
defaults={'content': message}
)
metadata = {"link": link, "vacancy_id": vacancy.id}
metadata = {"link": link}
ids.append(vacancy.id)
documents.append(Document(page_content=message, metadata=metadata))
print(index, link)
vector_store.add_documents(documents)
vector_store.add_documents(documents, ids=ids)

View File

@ -4,6 +4,7 @@ from vacancies.main.vector_store import vector_store
from vacancies.main.models import CustomerCV, RecommendedVacancy
from vacancies.main.bot import application
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from qdrant_client.models import Filter, HasIdCondition
class Command(BaseCommand):
@ -16,14 +17,21 @@ class Command(BaseCommand):
customer=customer_cv.customer
).values_list('vacancy_id', flat=True)
query_filter = Filter(
must_not = [
HasIdCondition(has_id=recommended_vacancy_ids),
]
)
document = vector_store.similarity_search(
customer_cv.content,
k=1,
filter={"vacancy_id": {"$nin": list(recommended_vacancy_ids)}}
filter=query_filter,
)[0]
print(document.__dict__)
recommendation, _ = RecommendedVacancy.objects.get_or_create(
customer=customer_cv.customer,
vacancy_id=document.metadata["vacancy_id"],
vacancy_id=document.metadata["_id"],
)
asyncio.run(application.bot.send_message(