codescraftman / ethanicbot_updater / signals.py
signals.py
Raw
# ethanicbot_updater/signals.py

from django.db.models.signals import post_save, post_delete
from django.dispatch import receiver

from machinelearning.models import (
    RegressionModel, ClassificationModel, NLPModel, UnsupervisedModel
)

from .tasks import refresh_vectorstore

watched_models = [RegressionModel, ClassificationModel, NLPModel, UnsupervisedModel]

for model in watched_models:
    @receiver(post_save, sender=model)
    @receiver(post_delete, sender=model)
    def trigger_vectorstore_update(sender, instance, **kwargs):
        refresh_vectorstore.delay()