Coverage for ai_integration/signals.py: 76%

34 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-07-05 02:45 +0800

1""" 

2Django signals for automatic embedding updates 

3""" 

4import logging 

5from django.db.models.signals import post_save 

6from django.dispatch import receiver 

7from family.models import Story, Event, Heritage, Health 

8from .services.embedding_service import embedding_service 

9 

10logger = logging.getLogger(__name__) 

11 

12 

13@receiver(post_save, sender=Story) 

14def update_story_embedding(sender, instance, created, **kwargs): 

15 """Update embedding when Story is saved""" 

16 try: 

17 embedding_service.update_model_embedding(instance, force_update=created) 

18 logger.info(f"Updated embedding for Story:{instance.id}") 

19 except Exception as e: 

20 logger.error(f"Failed to update Story embedding: {e}") 

21 

22 

23@receiver(post_save, sender=Event) 

24def update_event_embedding(sender, instance, created, **kwargs): 

25 """Update embedding when Event is saved""" 

26 try: 

27 embedding_service.update_model_embedding(instance, force_update=created) 

28 logger.info(f"Updated embedding for Event:{instance.id}") 

29 except Exception as e: 

30 logger.error(f"Failed to update Event embedding: {e}") 

31 

32 

33@receiver(post_save, sender=Heritage) 

34def update_heritage_embedding(sender, instance, created, **kwargs): 

35 """Update embedding when Heritage is saved""" 

36 try: 

37 embedding_service.update_model_embedding(instance, force_update=created) 

38 logger.info(f"Updated embedding for Heritage:{instance.id}") 

39 except Exception as e: 

40 logger.error(f"Failed to update Heritage embedding: {e}") 

41 

42 

43@receiver(post_save, sender=Health) 

44def update_health_embedding(sender, instance, created, **kwargs): 

45 """Update embedding when Health record is saved""" 

46 try: 

47 embedding_service.update_model_embedding(instance, force_update=created) 

48 logger.info(f"Updated embedding for Health:{instance.id}") 

49 except Exception as e: 

50 logger.error(f"Failed to update Health embedding: {e}")