21 lines
869 B
Python
21 lines
869 B
Python
from django.core.management import BaseCommand
|
|
from vacancies.main.models import Vacancy
|
|
from vacancies.main.features_extractor import extract_vacancy_features
|
|
from vacancies.main.vector_store import add_vacancy_vectors
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = "Process vacancies: extract features and index in vector store"
|
|
|
|
def handle(self, *args, **options):
|
|
vacancies = Vacancy.objects.filter(is_processed=False)
|
|
|
|
len_vacancies = len(vacancies)
|
|
for index, vacancy in enumerate(vacancies):
|
|
print(f"Processing {index}/{len_vacancies} {vacancy}")
|
|
features = extract_vacancy_features(vacancy.content)
|
|
vacancy.features_json = features.model_dump()
|
|
vacancy.is_processed = True
|
|
vacancy.save()
|
|
add_vacancy_vectors(vacancy.id, features.model_dump(), {"link": vacancy.link})
|