vision-career/vacancies/main/management/commands/process_vacancies.py

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})