bertrend 0.3.5__tar.gz → 0.3.7__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.
Files changed (205) hide show
  1. {bertrend-0.3.5 → bertrend-0.3.7}/PKG-INFO +1 -1
  2. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/BERTopicModel.py +1 -0
  3. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/config/bertopic_default_config.toml +1 -1
  4. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/demos_utils/embed_documents_component.py +3 -0
  5. bertrend-0.3.7/bertrend/demos/start_topic_analysis_app.sh +14 -0
  6. bertrend-0.3.7/bertrend/demos/start_weak_signals_app.sh +14 -0
  7. bertrend-0.3.7/bertrend/demos/topic_analysis/.streamlit/config.toml +6 -0
  8. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/topic_analysis/demo_pages/explore_topics.py +3 -1
  9. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/topic_analysis/demo_pages/newsletters_generation.py +8 -0
  10. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/topic_analysis/demo_pages/training_page.py +1 -0
  11. bertrend-0.3.7/bertrend/demos/weak_signals/.streamlit/config.toml +6 -0
  12. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/llm_utils/newsletter_features.py +1 -1
  13. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/data_provider/data_provider.py +12 -8
  14. bertrend-0.3.7/bertrend_apps/exploration/curebot/.streamlit/config.toml +6 -0
  15. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/curebot/app_utils.py +12 -4
  16. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/curebot/prompts.py +1 -1
  17. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/curebot/start_newsletter_generator.sh +6 -1
  18. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/curebot/tabs/tab1.py +3 -3
  19. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/newsletters/__main__.py +1 -0
  20. bertrend-0.3.7/bertrend_apps/prospective_demo/.streamlit/config.toml +6 -0
  21. bertrend-0.3.7/bertrend_apps/prospective_demo/start_demo.sh +16 -0
  22. {bertrend-0.3.5 → bertrend-0.3.7}/pyproject.toml +1 -1
  23. bertrend-0.3.5/bertrend/demos/start_topic_analysis_app.sh +0 -9
  24. bertrend-0.3.5/bertrend/demos/start_weak_signals_app.sh +0 -9
  25. bertrend-0.3.5/bertrend_apps/prospective_demo/.streamlit/config.toml +0 -3
  26. bertrend-0.3.5/bertrend_apps/prospective_demo/start_demo.sh +0 -9
  27. {bertrend-0.3.5 → bertrend-0.3.7}/AUTHORS.txt +0 -0
  28. {bertrend-0.3.5 → bertrend-0.3.7}/LICENSE.md +0 -0
  29. {bertrend-0.3.5 → bertrend-0.3.7}/README.md +0 -0
  30. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/BERTrend.py +0 -0
  31. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/__init__.py +0 -0
  32. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/config/bertrend_default_config.toml +0 -0
  33. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/config/parameters.py +0 -0
  34. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/config/services_default_config.toml +0 -0
  35. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/__init__.py +0 -0
  36. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/demos_utils/__init__.py +0 -0
  37. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/demos_utils/data_loading_component.py +0 -0
  38. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/demos_utils/i18n.py +0 -0
  39. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/demos_utils/i18n_translations.py +0 -0
  40. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/demos_utils/icons.py +0 -0
  41. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/demos_utils/parameters_component.py +0 -0
  42. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/demos_utils/state_utils.py +0 -0
  43. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/start_summarizer_app.sh +0 -0
  44. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/summarization/__init__.py +0 -0
  45. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/summarization/summarizer_app.py +0 -0
  46. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/topic_analysis/__init__.py +0 -0
  47. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/topic_analysis/app.py +0 -0
  48. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/topic_analysis/app_utils.py +0 -0
  49. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/topic_analysis/demo_pages/__init__.py +0 -0
  50. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/topic_analysis/demo_pages/temporal_visualizations.py +0 -0
  51. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/topic_analysis/demo_pages/topic_visualizations.py +0 -0
  52. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/topic_analysis/i18n_translations.py +0 -0
  53. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/weak_signals/__init__.py +0 -0
  54. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/weak_signals/app.py +0 -0
  55. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/weak_signals/i18n_translations.py +0 -0
  56. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/demos/weak_signals/visualizations_utils.py +0 -0
  57. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/llm_utils/__init__.py +0 -0
  58. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/llm_utils/newsletter.css +0 -0
  59. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/llm_utils/openai_client.py +0 -0
  60. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/llm_utils/prompts.py +0 -0
  61. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/metrics/__init__.py +0 -0
  62. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/metrics/temporal_metrics_embedding.py +0 -0
  63. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/metrics/topic_metrics.py +0 -0
  64. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/resources/common_ngrams.json +0 -0
  65. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/resources/stopwords-en.json +0 -0
  66. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/resources/stopwords-fr.json +0 -0
  67. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/resources/stopwords-rte.json +0 -0
  68. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/__init__.py +0 -0
  69. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/authentication.py +0 -0
  70. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_client.py +0 -0
  71. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/README.md +0 -0
  72. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/__init__.py +0 -0
  73. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/config/default_config.toml +0 -0
  74. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/config/settings.py +0 -0
  75. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/main.py +0 -0
  76. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/models.py +0 -0
  77. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/routers/__init__.py +0 -0
  78. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/routers/authentication.py +0 -0
  79. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/routers/embeddings.py +0 -0
  80. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/routers/info.py +0 -0
  81. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/security.py +0 -0
  82. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/start.py +0 -0
  83. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/status.py +0 -0
  84. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_server/stop.py +0 -0
  85. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/embedding_service.py +0 -0
  86. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/summarizer.py +0 -0
  87. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/summary/__init__.py +0 -0
  88. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/summary/abstractive_summarizer.py +0 -0
  89. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/summary/chatgpt_summarizer.py +0 -0
  90. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/summary/extractive_summarizer.py +0 -0
  91. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/summary/lexrank.py +0 -0
  92. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/services/summary/prompts.py +0 -0
  93. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/README_integration_tests.md +0 -0
  94. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/__init__.py +0 -0
  95. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/conftest.py +0 -0
  96. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_abstractive_summarizer.py +0 -0
  97. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_bertrend.py +0 -0
  98. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_cache_utils.py +0 -0
  99. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_chatgpt_summarizer.py +0 -0
  100. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_config_utils.py +0 -0
  101. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_data_loading.py +0 -0
  102. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_data_structure.py +0 -0
  103. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_embedding_client.py +0 -0
  104. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_extractive_summarizer.py +0 -0
  105. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_installation.py +0 -0
  106. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_integration.py +0 -0
  107. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_newsletter_features.py +0 -0
  108. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_openai_client.py +0 -0
  109. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_representative_docs.py +0 -0
  110. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_summarizer.py +0 -0
  111. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_temporal_metrics_embedding.py +0 -0
  112. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_topic_description.py +0 -0
  113. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_topic_metrics.py +0 -0
  114. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_topic_model.py +0 -0
  115. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_trend_analysis_data_structure.py +0 -0
  116. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_trend_analysis_prompts.py +0 -0
  117. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_trend_analysis_visualizations.py +0 -0
  118. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_trend_analysis_weak_signals.py +0 -0
  119. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_utils_init.py +0 -0
  120. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/tests/test_visualizations.py +0 -0
  121. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/topic_analysis/__init__.py +0 -0
  122. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/topic_analysis/data_structure.py +0 -0
  123. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/topic_analysis/prompts.py +0 -0
  124. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/topic_analysis/representative_docs.py +0 -0
  125. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/topic_analysis/topic_description.py +0 -0
  126. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/topic_analysis/visualizations.py +0 -0
  127. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/trend_analysis/__init__.py +0 -0
  128. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/trend_analysis/data_structure.py +0 -0
  129. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/trend_analysis/prompts.py +0 -0
  130. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/trend_analysis/signal_llm_template_en.html +0 -0
  131. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/trend_analysis/signal_llm_template_fr.html +0 -0
  132. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/trend_analysis/visualizations.py +0 -0
  133. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/trend_analysis/weak_signals.py +0 -0
  134. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/utils/__init__.py +0 -0
  135. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/utils/cache_utils.py +0 -0
  136. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/utils/config_utils.py +0 -0
  137. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend/utils/data_loading.py +0 -0
  138. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/__init__.py +0 -0
  139. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/common/__init__.py +0 -0
  140. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/common/crontab_utils.py +0 -0
  141. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/common/mail_utils.py +0 -0
  142. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/feeds/arxiv_feed.toml +0 -0
  143. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/feeds/decarbonation_feed.toml +0 -0
  144. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/feeds/llm_en_feed.toml +0 -0
  145. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/feeds/llm_feed.toml +0 -0
  146. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/feeds/nlp_feed.toml +0 -0
  147. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/feeds/rte_feed.toml +0 -0
  148. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/gmail_credentials.json +0 -0
  149. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/newsletters/arxiv_newsletter_from_last.toml +0 -0
  150. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/newsletters/arxiv_newsletter_from_scratch.toml +0 -0
  151. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/newsletters/decarbonation_newsletter_from_last.toml +0 -0
  152. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/newsletters/decarbonation_newsletter_from_scratch.toml +0 -0
  153. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/newsletters/llm_en_newsletter_from_last.toml +0 -0
  154. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/newsletters/llm_newsletter_from_last.toml +0 -0
  155. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/newsletters/nlp_newsletter_from_last.toml +0 -0
  156. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/newsletters/rte_newsletter_from_last.toml +0 -0
  157. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/config/newsletters/rte_newsletter_from_scratch.toml +0 -0
  158. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/data_provider/__init__.py +0 -0
  159. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/data_provider/__main__.py +0 -0
  160. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/data_provider/arxiv_provider.py +0 -0
  161. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/data_provider/atom_feed_provider.py +0 -0
  162. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/data_provider/bing_news_provider.py +0 -0
  163. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/data_provider/google_news_provider.py +0 -0
  164. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/data_provider/newscatcher_provider.py +0 -0
  165. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/data_provider/utils.py +0 -0
  166. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/__init__.py +0 -0
  167. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/curebot/__init__.py +0 -0
  168. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/curebot/app.py +0 -0
  169. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/curebot/config.toml +0 -0
  170. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/curebot/import_extraction_article.ipynb +0 -0
  171. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/curebot/tabs/tab2.py +0 -0
  172. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/curebot/tabs/tab3.py +0 -0
  173. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/dataviz/Main_page.py +0 -0
  174. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/dataviz/__init__.py +0 -0
  175. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/dataviz/pages/1_Data_feeds.py +0 -0
  176. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/geolocalization/__init__.py +0 -0
  177. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/geolocalization/entity_utils.py +0 -0
  178. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/geolocalization/spacy/__init__.py +0 -0
  179. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/geolocalization/spacy/common_factory.py +0 -0
  180. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/geolocalization/spacy/dbpedia.py +0 -0
  181. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/geolocalization/spacy/nlp.config +0 -0
  182. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/exploration/geolocalization/spacy/utils.py +0 -0
  183. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/install_feeds_and_newsletters.py +0 -0
  184. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/newsletters/__init__.py +0 -0
  185. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/.streamlit/secrets.toml +0 -0
  186. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/__init__.py +0 -0
  187. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/app.py +0 -0
  188. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/authentication.py +0 -0
  189. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/dashboard_analysis.py +0 -0
  190. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/dashboard_common.py +0 -0
  191. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/dashboard_signals.py +0 -0
  192. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/feeds_common.py +0 -0
  193. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/feeds_config.py +0 -0
  194. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/feeds_data.py +0 -0
  195. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/i18n_translations.py +0 -0
  196. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/llm_utils.py +0 -0
  197. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/models_info.py +0 -0
  198. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/perf_utils.py +0 -0
  199. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/process_new_data.py +0 -0
  200. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/report_generation.py +0 -0
  201. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/report_template.html +0 -0
  202. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/report_utils.py +0 -0
  203. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/prospective_demo/streamlit_utils.py +0 -0
  204. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/start_apps.sh +0 -0
  205. {bertrend-0.3.5 → bertrend-0.3.7}/bertrend_apps/stop_apps.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bertrend
3
- Version: 0.3.5
3
+ Version: 0.3.7
4
4
  Summary: BERTrend analyses topic evolution over time using state-of-the-art transformer models: topic modelling and LLM
5
5
  License: LICENSE.md
6
6
  Keywords: topics,BERTopic,transformers,weak signals,LLM
@@ -237,6 +237,7 @@ class BERTopicModel:
237
237
  Precomputed document embeddings.
238
238
  embedding_model : SentenceTransformer or str or None, optional
239
239
  Sentence transformer (or associated model name) model for embeddings.
240
+ NB. Important: if not set, the keywords describing the topics may not be correct (e.g. accents strip); therefore, it is recommended to set this parameter.
240
241
  zeroshot_topic_list : list[str] or None, optional
241
242
  List of topics used for zeroshot classification.
242
243
  zeroshot_min_similarity : float or None, optional
@@ -30,7 +30,7 @@ prediction_data = true
30
30
 
31
31
  # CountVectorizer: https://scikit-learn.org/1.5/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html
32
32
  [vectorizer_model]
33
- ngram_range = [1, 1]
33
+ ngram_range = [1, 2]
34
34
  stop_words = true # If true, will check `language` parameter and load associated stopwords file
35
35
  min_df = 2
36
36
 
@@ -31,6 +31,9 @@ def display_embed_documents_component():
31
31
  local=False,
32
32
  url=SessionStateManager.get("embedding_service_url"),
33
33
  )
34
+ SessionStateManager.set(
35
+ "embedding_model_name", embedding_service.embedding_model_name
36
+ )
34
37
 
35
38
  texts = SessionStateManager.get_dataframe("time_filtered_df")[
36
39
  TEXT_COLUMN
@@ -0,0 +1,14 @@
1
+ #
2
+ # Copyright (c) 2024, RTE (https://www.rte-france.com)
3
+ # See AUTHORS.txt
4
+ # SPDX-License-Identifier: MPL-2.0
5
+ # This file is part of BERTrend.
6
+ #
7
+
8
+
9
+ # Set logs directory and create if not exists
10
+ export BERTREND_LOGS_DIR=$BERTREND_BASE_DIR/logs/bertrend
11
+ mkdir -p $BERTREND_LOGS_DIR
12
+
13
+ echo "Starting BERTrend Topic Analysis demo"
14
+ cd `pwd`/topic_analysis && CUDA_VISIBLE_DEVICES=0 streamlit run app.py 2>&1 | tee -a $BERTREND_LOGS_DIR/topic_analysis_demo.log
@@ -0,0 +1,14 @@
1
+ #
2
+ # Copyright (c) 2024, RTE (https://www.rte-france.com)
3
+ # See AUTHORS.txt
4
+ # SPDX-License-Identifier: MPL-2.0
5
+ # This file is part of BERTrend.
6
+ #
7
+
8
+
9
+ # Set logs directory and create if not exists
10
+ export BERTREND_LOGS_DIR=$BERTREND_BASE_DIR/logs/bertrend
11
+ mkdir -p $BERTREND_LOGS_DIR
12
+
13
+ echo "Starting BERTrend Weak Signal Analysis demo"
14
+ cd `pwd`/weak_signals && CUDA_VISIBLE_DEVICES=0 streamlit run app.py 2>&1 | tee -a $BERTREND_LOGS_DIR/weak_signals_demo.log
@@ -0,0 +1,6 @@
1
+ [theme]
2
+ primaryColor = "royalblue"
3
+ baseFontSize = 13
4
+
5
+ [server]
6
+ port = 8083
@@ -291,7 +291,9 @@ def _display_topic_description(filtered_df: pd.DataFrame):
291
291
  ):
292
292
  with st.spinner(translate("generating_description")):
293
293
  language_code = (
294
- "fr" if SessionStateManager.get("language") == "French" else "en"
294
+ "fr"
295
+ if SessionStateManager.get("internationalization_language") == "fr"
296
+ else "en"
295
297
  )
296
298
  gpt_description = generate_topic_description(
297
299
  st.session_state["topic_model"],
@@ -14,6 +14,7 @@ from bertrend.demos.demos_utils.state_utils import (
14
14
  save_widget_state,
15
15
  restore_widget_state,
16
16
  register_multiple_widget,
17
+ SessionStateManager,
17
18
  )
18
19
  from bertrend.services.summary.abstractive_summarizer import AbstractiveSummarizer
19
20
  from bertrend.services.summary.chatgpt_summarizer import GPTSummarizer
@@ -48,6 +49,12 @@ def generate_newsletter_wrapper(
48
49
  else st.session_state["newsletter_nb_docs"]
49
50
  )
50
51
 
52
+ language_code = (
53
+ "fr"
54
+ if SessionStateManager.get("internationalization_language") == "fr"
55
+ else "en"
56
+ )
57
+
51
58
  return generate_newsletter(
52
59
  topic_model=st.session_state["topic_model"],
53
60
  df=df,
@@ -60,6 +67,7 @@ def generate_newsletter_wrapper(
60
67
  st.session_state["summarizer_classname"]
61
68
  ],
62
69
  summary_mode=st.session_state["summary_mode"],
70
+ prompt_language=language_code,
63
71
  )
64
72
 
65
73
 
@@ -127,6 +127,7 @@ def train_model():
127
127
  topic_model_output = topic_model.fit(
128
128
  docs=dataset,
129
129
  embeddings=embeddings,
130
+ embedding_model=SessionStateManager.get("embedding_model_name"),
130
131
  )
131
132
  bertopic = topic_model_output.topic_model
132
133
 
@@ -0,0 +1,6 @@
1
+ [theme]
2
+ primaryColor = "royalblue"
3
+ baseFontSize = 13
4
+
5
+ [server]
6
+ port = 8084
@@ -50,7 +50,7 @@ def generate_newsletter(
50
50
  openai_model_name: str = None,
51
51
  nb_sentences: int = 3,
52
52
  ) -> tuple[str, str, str]:
53
- """Generates a newsletters based on a trained BERTopic model.
53
+ """Generates a newsletter based on a trained BERTopic model.
54
54
 
55
55
  Args:
56
56
  topic_model (BERTopic): trained BERTopic model
@@ -84,14 +84,18 @@ class DataProvider(ABC):
84
84
  return results as json lines"""
85
85
  articles = []
86
86
  for entry in queries_batch:
87
- logger.info(f"Processing query: {entry}")
88
- articles += self.get_articles(
89
- query=entry[0],
90
- after=entry[1],
91
- before=entry[2],
92
- max_results=max_results,
93
- language=language,
94
- )
87
+ try:
88
+ logger.info(f"Processing query: {entry}")
89
+ articles += self.get_articles(
90
+ query=entry[0],
91
+ after=entry[1],
92
+ before=entry[2],
93
+ max_results=max_results,
94
+ language=language,
95
+ )
96
+ except Exception as e:
97
+ logger.error("Error occurred with query: " + entry[0] + "\n " + str(e))
98
+ continue
95
99
  # remove duplicates
96
100
  articles = [dict(t) for t in {tuple(d.items()) for d in articles}]
97
101
  logger.info(f"Collected {len(articles)} articles")
@@ -0,0 +1,6 @@
1
+ [theme]
2
+ primaryColor = "royalblue"
3
+ baseFontSize = 13
4
+
5
+ [server]
6
+ port = 8082
@@ -42,12 +42,19 @@ EMBEDDING_SERVICE = EmbeddingService(local=False)
42
42
 
43
43
 
44
44
  class TopicDescription(BaseModel):
45
- """Description of topic during a time period"""
45
+ """Description of a topic during a time period"""
46
46
 
47
47
  # Title of the topic
48
48
  title: str
49
49
 
50
50
 
51
+ class TopicSummary(BaseModel):
52
+ """Summary of a topic"""
53
+
54
+ # Title of the topic
55
+ summary: str
56
+
57
+
51
58
  @st.cache_data(show_spinner=False)
52
59
  def concat_data_from_files(files: list[UploadedFile]) -> pd.DataFrame:
53
60
  """
@@ -124,6 +131,7 @@ def fit_bertopic(
124
131
  topic_model_output = topic_model.fit(
125
132
  docs=docs,
126
133
  embeddings=embeddings,
134
+ embedding_model=EMBEDDING_SERVICE.embedding_model_name,
127
135
  zeroshot_topic_list=zeroshot_topic_list,
128
136
  zeroshot_min_similarity=0.65,
129
137
  )
@@ -237,12 +245,12 @@ def create_newsletter(
237
245
  endpoint=LLM_CONFIG["endpoint"],
238
246
  model=LLM_CONFIG["model"],
239
247
  )
240
- response = llm_client.generate(
248
+ response = llm_client.parse(
241
249
  user_prompt=user_prompt,
242
250
  system_prompt=TOPIC_SUMMARY_SYSTEM_PROMPT,
243
- response_format={"type": "json_object"},
251
+ response_format=TopicSummary,
244
252
  )
245
- topic_dict["summary"] = json.loads(response)["résumé"]
253
+ topic_dict["summary"] = response.summary
246
254
  topic_dict["articles"] = []
247
255
  for _, row in topic_df.iterrows():
248
256
  article_dict = {}
@@ -19,6 +19,6 @@ Le résumé doit être concis (maximum 100 mots) et représenter au mieux la sp
19
19
  Il doit pas commencer par "Les articles parlent de..." ou équivalent et doit être écrit dans un style journalistique.
20
20
  Répondez sous la forme d'un JSON suivant le format ci-dessous :
21
21
  {
22
- "résumé": "<votre résumé du thème>"
22
+ "summary": "<votre résumé du thème>"
23
23
  }
24
24
  """
@@ -5,4 +5,9 @@
5
5
  # This file is part of BERTrend.
6
6
  #
7
7
 
8
- OPENAI_API_KEY=$OPENAI_API_KEY_VEILLE CUDA_VISIBLE_DEVICES=0 streamlit run --theme.primaryColor royalblue --server.port 8686 app.py
8
+
9
+ # Set logs directory and create if not exists
10
+ export BERTREND_LOGS_DIR=$BERTREND_BASE_DIR/logs/bertrend
11
+ mkdir -p $BERTREND_LOGS_DIR
12
+
13
+ OPENAI_API_KEY=$OPENAI_API_KEY_VEILLE CUDA_VISIBLE_DEVICES=0 streamlit run app.py | tee -a $BERTREND_LOGS_DIR/curebot_demo.log
@@ -130,9 +130,9 @@ def train_model() -> None:
130
130
 
131
131
  # Train topic model
132
132
  bertopic, topics = fit_bertopic(
133
- texts_list,
134
- embeddings,
135
- st.session_state["min_articles_per_topic"],
133
+ docs=texts_list,
134
+ embeddings=embeddings,
135
+ min_articles_per_topic=st.session_state["min_articles_per_topic"],
136
136
  zeroshot_topic_list=zeroshot_topic_list,
137
137
  )
138
138
 
@@ -216,6 +216,7 @@ if __name__ == "__main__":
216
216
  output = topic_model.fit(
217
217
  docs=dataset[TEXT_COLUMN],
218
218
  embeddings=embeddings,
219
+ embedding_model=embedding_model,
219
220
  )
220
221
  return output.topics, output.topic_model
221
222
 
@@ -0,0 +1,6 @@
1
+ [theme]
2
+ primaryColor = "royalblue"
3
+ baseFontSize = 13
4
+
5
+ [server]
6
+ port = 8081
@@ -0,0 +1,16 @@
1
+ #
2
+ # Copyright (c) 2024, RTE (https://www.rte-france.com)
3
+ # See AUTHORS.txt
4
+ # SPDX-License-Identifier: MPL-2.0
5
+ # This file is part of BERTrend.
6
+ #
7
+
8
+
9
+
10
+
11
+ # Set logs directory and create if not exists
12
+ export BERTREND_LOGS_DIR=$BERTREND_BASE_DIR/logs/bertrend
13
+ mkdir -p $BERTREND_LOGS_DIR
14
+
15
+ echo "Starting BERTrend Prospective Analysis demo"
16
+ CUDA_VISIBLE_DEVICES=0 streamlit run app.py 2>&1 | tee -a $BERTREND_LOGS_DIR/prospective_analysis_demo.log
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "bertrend"
3
- version = "0.3.5"
3
+ version = "0.3.7"
4
4
  description = "BERTrend analyses topic evolution over time using state-of-the-art transformer models: topic modelling and LLM"
5
5
  license = "LICENSE.md"
6
6
  readme = "README.md"
@@ -1,9 +0,0 @@
1
- #
2
- # Copyright (c) 2024, RTE (https://www.rte-france.com)
3
- # See AUTHORS.txt
4
- # SPDX-License-Identifier: MPL-2.0
5
- # This file is part of BERTrend.
6
- #
7
-
8
- # Starts the Topic Analysis application
9
- CUDA_VISIBLE_DEVICES=0 streamlit run --theme.primaryColor royalblue topic_analysis/app.py
@@ -1,9 +0,0 @@
1
- #
2
- # Copyright (c) 2024, RTE (https://www.rte-france.com)
3
- # See AUTHORS.txt
4
- # SPDX-License-Identifier: MPL-2.0
5
- # This file is part of BERTrend.
6
- #
7
-
8
- # Starts the Trend Analysis application
9
- CUDA_VISIBLE_DEVICES=0 streamlit run --theme.primaryColor royalblue weak_signals/app.py
@@ -1,3 +0,0 @@
1
- [theme]
2
- primaryColor = "royalblue"
3
- baseFontSize = 13
@@ -1,9 +0,0 @@
1
- #
2
- # Copyright (c) 2024, RTE (https://www.rte-france.com)
3
- # See AUTHORS.txt
4
- # SPDX-License-Identifier: MPL-2.0
5
- # This file is part of BERTrend.
6
- #
7
-
8
- # Starts the Trend Analysis application
9
- CUDA_VISIBLE_DEVICES=0 streamlit run app.py
File without changes
File without changes
File without changes
File without changes
File without changes