codescraftman / ethanicbot / signals.py
signals.py
Raw
from django.db.models.signals import post_save, post_delete
from django.apps import apps
from django.dispatch import receiver
from ethanicbot.langchain.updater import rebuild_vectorstore

# Dynamically connect signals to all models
for model in apps.get_models():
    @receiver(post_save, sender=model)
    @receiver(post_delete, sender=model)
    def update_vectorstore_on_change(sender, **kwargs):
        rebuild_vectorstore()