28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
from django.core.management import BaseCommand
|
|
import asyncio
|
|
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
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = "Generates new recommended vacancies"
|
|
|
|
def handle(self, *args, **options):
|
|
customer_cvs = CustomerCV.objects.all()
|
|
for customer_cv in customer_cvs:
|
|
document = vector_store.similarity_search(customer_cv.content, k=1)[0]
|
|
recommendation, _ = RecommendedVacancy.objects.get_or_create(
|
|
customer=customer_cv.customer,
|
|
vacancy_id=document.metadata["vacancy_id"],
|
|
)
|
|
|
|
asyncio.run(application.bot.send_message(
|
|
chat_id=recommendation.customer.chat_id,
|
|
text=recommendation.vacancy.content,
|
|
reply_markup=InlineKeyboardMarkup([[
|
|
InlineKeyboardButton("Откликнуться", url=recommendation.vacancy.link),
|
|
]]),
|
|
))
|