wbcrm 1.50.7__tar.gz → 1.50.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of wbcrm might be problematic. Click here for more details.

Files changed (175) hide show
  1. {wbcrm-1.50.7 → wbcrm-1.50.9}/PKG-INFO +1 -1
  2. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/models/llm/activity_summaries.py +17 -13
  3. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/models/llm/analyze_relationship.py +17 -21
  4. {wbcrm-1.50.7 → wbcrm-1.50.9}/.gitignore +0 -0
  5. {wbcrm-1.50.7 → wbcrm-1.50.9}/pyproject.toml +0 -0
  6. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/__init__.py +0 -0
  7. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/admin/__init__.py +0 -0
  8. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/admin/accounts.py +0 -0
  9. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/admin/activities.py +0 -0
  10. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/admin/events.py +0 -0
  11. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/admin/groups.py +0 -0
  12. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/admin/products.py +0 -0
  13. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/apps.py +0 -0
  14. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/configurations/__init__.py +0 -0
  15. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/configurations/base.py +0 -0
  16. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/dynamic_preferences_registry.py +0 -0
  17. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/factories/__init__.py +0 -0
  18. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/factories/accounts.py +0 -0
  19. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/factories/activities.py +0 -0
  20. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/factories/groups.py +0 -0
  21. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/factories/products.py +0 -0
  22. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/filters/__init__.py +0 -0
  23. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/filters/accounts.py +0 -0
  24. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/filters/activities.py +0 -0
  25. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/filters/groups.py +0 -0
  26. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/filters/products.py +0 -0
  27. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/filters/signals.py +0 -0
  28. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/fixtures/wbcrm.json +0 -0
  29. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/kpi_handlers/activities.py +0 -0
  30. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/locale/de/LC_MESSAGES/django.po +0 -0
  31. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0001_initial_squashed_squashed_0032_productcompanyrelationship_alter_product_prospects_and_more.py +0 -0
  32. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0002_alter_activity_repeat_choice.py +0 -0
  33. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0003_remove_activity_external_id_and_more.py +0 -0
  34. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0004_alter_activity_status.py +0 -0
  35. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0005_account_accountrole_accountroletype_and_more.py +0 -0
  36. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0006_alter_activity_location.py +0 -0
  37. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0007_alter_account_status.py +0 -0
  38. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0008_alter_activity_options.py +0 -0
  39. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0009_alter_account_is_public.py +0 -0
  40. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0010_alter_account_reference_id.py +0 -0
  41. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0011_activity_summary.py +0 -0
  42. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0012_alter_activity_summary.py +0 -0
  43. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0013_account_action_plan_account_relationship_status_and_more.py +0 -0
  44. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0014_alter_account_relationship_status.py +0 -0
  45. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0015_alter_activity_type.py +0 -0
  46. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0016_auto_20241205_1015.py +0 -0
  47. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/0017_event.py +0 -0
  48. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/migrations/__init__.py +0 -0
  49. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/models/__init__.py +0 -0
  50. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/models/accounts.py +0 -0
  51. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/models/activities.py +0 -0
  52. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/models/events.py +0 -0
  53. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/models/groups.py +0 -0
  54. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/models/products.py +0 -0
  55. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/models/recurrence.py +0 -0
  56. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/preferences.py +0 -0
  57. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/report/activity_report.py +0 -0
  58. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/serializers/__init__.py +0 -0
  59. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/serializers/accounts.py +0 -0
  60. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/serializers/activities.py +0 -0
  61. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/serializers/groups.py +0 -0
  62. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/serializers/products.py +0 -0
  63. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/serializers/recurrence.py +0 -0
  64. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/serializers/signals.py +0 -0
  65. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/static/wbcrm/markdown/documentation/activity.md +0 -0
  66. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/static/wbcrm/markdown/documentation/activitytype.md +0 -0
  67. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/static/wbcrm/markdown/documentation/group.md +0 -0
  68. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/static/wbcrm/markdown/documentation/product.md +0 -0
  69. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/__init__.py +0 -0
  70. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/__init__.py +0 -0
  71. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/admin.py +0 -0
  72. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backend.py +0 -0
  73. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/__init__.py +0 -0
  74. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/__init__.py +0 -0
  75. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/google_calendar_backend.py +0 -0
  76. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/request_utils/__init__.py +0 -0
  77. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/request_utils/external_to_internal/create.py +0 -0
  78. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/request_utils/external_to_internal/delete.py +0 -0
  79. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/request_utils/external_to_internal/update.py +0 -0
  80. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/request_utils/internal_to_external/update.py +0 -0
  81. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/tasks.py +0 -0
  82. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/tests/__init__.py +0 -0
  83. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/tests/conftest.py +0 -0
  84. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/tests/test_data.py +0 -0
  85. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/tests/test_google_backend.py +0 -0
  86. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/tests/test_utils.py +0 -0
  87. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/typing_informations.py +0 -0
  88. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/google/utils.py +0 -0
  89. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/outlook/__init__.py +0 -0
  90. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/outlook/backend.py +0 -0
  91. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/outlook/msgraph.py +0 -0
  92. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/outlook/parser.py +0 -0
  93. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/outlook/tests/__init__.py +0 -0
  94. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/outlook/tests/conftest.py +0 -0
  95. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/outlook/tests/fixtures.py +0 -0
  96. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/outlook/tests/test_admin.py +0 -0
  97. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/outlook/tests/test_backend.py +0 -0
  98. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/outlook/tests/test_controller.py +0 -0
  99. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/backends/outlook/tests/test_parser.py +0 -0
  100. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/controller.py +0 -0
  101. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/dynamic_preferences_registry.py +0 -0
  102. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/preferences.py +0 -0
  103. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/shortcuts.py +0 -0
  104. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/tasks.py +0 -0
  105. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/urls.py +0 -0
  106. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/utils.py +0 -0
  107. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/activity/views.py +0 -0
  108. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/admin.py +0 -0
  109. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/apps.py +0 -0
  110. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/dynamic_preferences_registry.py +0 -0
  111. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/management.py +0 -0
  112. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/tasks.py +0 -0
  113. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/synchronization/urls.py +0 -0
  114. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tasks.py +0 -0
  115. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/templates/email/activity.html +0 -0
  116. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/templates/email/activity_report.html +0 -0
  117. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/templates/email/daily_summary.html +0 -0
  118. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/templates/email/global_daily_summary.html +0 -0
  119. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/__init__.py +0 -0
  120. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/accounts/__init__.py +0 -0
  121. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/accounts/test_models.py +0 -0
  122. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/accounts/test_viewsets.py +0 -0
  123. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/conftest.py +0 -0
  124. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/disable_signals.py +0 -0
  125. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/e2e/__init__.py +0 -0
  126. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/e2e/e2e_wbcrm_utility.py +0 -0
  127. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/e2e/test_e2e.py +0 -0
  128. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/test_assignee_methods.py +0 -0
  129. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/test_chartviewsets.py +0 -0
  130. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/test_dto.py +0 -0
  131. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/test_filters.py +0 -0
  132. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/test_models.py +0 -0
  133. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/test_recurrence.py +0 -0
  134. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/test_report.py +0 -0
  135. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/test_serializers.py +0 -0
  136. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/test_tasks.py +0 -0
  137. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/test_viewsets.py +0 -0
  138. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/tests/tests.py +0 -0
  139. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/typings.py +0 -0
  140. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/urls.py +0 -0
  141. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/__init__.py +0 -0
  142. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/accounts.py +0 -0
  143. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/activities.py +0 -0
  144. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/buttons/__init__.py +0 -0
  145. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/buttons/accounts.py +0 -0
  146. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/buttons/activities.py +0 -0
  147. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/buttons/signals.py +0 -0
  148. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/display/__init__.py +0 -0
  149. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/display/accounts.py +0 -0
  150. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/display/activities.py +0 -0
  151. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/display/groups.py +0 -0
  152. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/display/products.py +0 -0
  153. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/endpoints/__init__.py +0 -0
  154. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/endpoints/accounts.py +0 -0
  155. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/endpoints/activities.py +0 -0
  156. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/endpoints/groups.py +0 -0
  157. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/endpoints/products.py +0 -0
  158. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/groups.py +0 -0
  159. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/menu/__init__.py +0 -0
  160. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/menu/accounts.py +0 -0
  161. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/menu/activities.py +0 -0
  162. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/menu/groups.py +0 -0
  163. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/menu/products.py +0 -0
  164. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/mixins.py +0 -0
  165. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/previews/__init__.py +0 -0
  166. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/previews/activities.py +0 -0
  167. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/products.py +0 -0
  168. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/recurrence.py +0 -0
  169. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/titles/__init__.py +0 -0
  170. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/titles/accounts.py +0 -0
  171. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/titles/activities.py +0 -0
  172. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/titles/products.py +0 -0
  173. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/viewsets/titles/utils.py +0 -0
  174. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/workflows/__init__.py +0 -0
  175. {wbcrm-1.50.7 → wbcrm-1.50.9}/wbcrm/workflows/assignee_methods.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wbcrm
3
- Version: 1.50.7
3
+ Version: 1.50.9
4
4
  Summary: A workbench module that contains all the functionality related to a customer relationship management.
5
5
  Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
6
6
  Requires-Dist: django-eventtools==1.*
@@ -5,18 +5,7 @@ from pydantic import BaseModel, Field
5
5
  from wbcore.contrib.ai.llm.config import LLMConfig
6
6
 
7
7
  if TYPE_CHECKING:
8
- from wbcrm.models import Activity
9
-
10
-
11
- def analyze_activity_prompt(activity: "Activity"):
12
- return [
13
- SystemMessage(
14
- content="You are a manager in a company and there are activities, both internal as well as external, meaning between service providers, clients and ourselves. We want to analyze these activities in regards of their sentiment and summarize them in English. The summary should be a very short bottom-line focussed text."
15
- ),
16
- HumanMessage(
17
- content=f"title={activity.title}, description={activity.description}, period={activity.period}, participants={activity.participants.all()}, companies={activity.companies.all()}, review={activity.result}"
18
- ),
19
- ]
8
+ from wbcrm.models import Activity # noqa
20
9
 
21
10
 
22
11
  class ActivityLLMResponseModel(BaseModel):
@@ -26,8 +15,23 @@ class ActivityLLMResponseModel(BaseModel):
26
15
 
27
16
  analyze_activity = LLMConfig["Activity"](
28
17
  key="analyze",
29
- prompt=analyze_activity_prompt,
18
+ prompt=[
19
+ SystemMessage(
20
+ content="You are a manager in a company and there are activities, both internal as well as external, meaning between service providers, clients and ourselves. We want to analyze these activities in regards of their sentiment and summarize them in English. The summary should be a very short bottom-line focussed text."
21
+ ),
22
+ HumanMessage(
23
+ content="title={title}, description={description}, period={period}, participants={participants}, companies={companies}, review={result}"
24
+ ),
25
+ ],
30
26
  on_save=True,
31
27
  on_condition=lambda instance: instance.status == "REVIEWED",
32
28
  output_model=ActivityLLMResponseModel,
29
+ query=lambda instance: {
30
+ "title": instance.title,
31
+ "description": instance.description,
32
+ "period": instance.period,
33
+ "participants": instance.participants.all(),
34
+ "companies": instance.companies.all(),
35
+ "result": instance.result,
36
+ },
33
37
  )
@@ -9,26 +9,6 @@ if TYPE_CHECKING:
9
9
  from wbcrm.models import Account
10
10
 
11
11
 
12
- def analyze_relationship_prompt(account: "Account"):
13
- messages = [
14
- SystemMessage(
15
- content="Based on the recent interactions/activities, current relationship health, and planned actions with the customer, provide a status score (1 to 5, where 1 is cold and 5 is hot), a summary of the relationship, and recommended next steps for maintaining or improving the relationship. Keep in mind that more information might become available later to refine these insights. Please include all information that is relevant to the relationship in the summary. Regarding the activities/interactions, older interactions are less relevant than recent ones."
16
- ),
17
- HumanMessage(
18
- content=f"The title of the account: {account.title}",
19
- ),
20
- ]
21
- if account.owner:
22
- for activity in Activity.objects.filter(companies__id__in=[account.owner.id], status="REVIEWED"):
23
- messages.append(
24
- HumanMessage(
25
- content=f"Activity: {activity.summary}, with sentiment: {activity.heat}, period: {activity.period}",
26
- )
27
- )
28
-
29
- return messages
30
-
31
-
32
12
  class AccountRelationshipResponseModel(BaseModel):
33
13
  relationship_status: int = Field(
34
14
  ...,
@@ -45,10 +25,26 @@ class AccountRelationshipResponseModel(BaseModel):
45
25
  )
46
26
 
47
27
 
28
+ def _get_query(account: "Account"):
29
+ details = []
30
+ if account.owner:
31
+ for activity in Activity.objects.filter(companies__id__in=[account.owner.id], status="REVIEWED"):
32
+ details.append((activity.summary, activity.heat, activity.period))
33
+ return {"title": account.title, "details": details}
34
+
35
+
48
36
  analyze_relationship = LLMConfig["Account"](
49
37
  key="analyze_relationship",
50
- prompt=analyze_relationship_prompt,
38
+ prompt=[
39
+ SystemMessage(
40
+ content="Based on the recent interactions/activities, current relationship health, and planned actions with the customer, provide a status score (1 to 5, where 1 is cold and 5 is hot), a summary of the relationship, and recommended next steps for maintaining or improving the relationship. Keep in mind that more information might become available later to refine these insights. Please include all information that is relevant to the relationship in the summary. Regarding the activities/interactions, older interactions are less relevant than recent ones."
41
+ ),
42
+ HumanMessage(
43
+ content="The title of the account: {title} and the list of activities details (tuple of summary, sentiment heat and period): {details}",
44
+ ),
45
+ ],
51
46
  on_save=True,
52
47
  on_condition=lambda act: (act.status == act.Status.OPEN) and act.owner is not None and act.is_root_node(),
53
48
  output_model=AccountRelationshipResponseModel,
49
+ query=lambda instance: _get_query(instance),
54
50
  )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes