aait 2.2.1__tar.gz → 2.2.2.1__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 (271) hide show
  1. aait-2.2.2.1/PKG-INFO +28 -0
  2. aait-2.2.2.1/aait.egg-info/PKG-INFO +28 -0
  3. {aait-2.2.1 → aait-2.2.2.1}/aait.egg-info/SOURCES.txt +1 -0
  4. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/process_documents.py +70 -99
  5. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWFusionNM.py +15 -3
  6. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWGenerateWord.py +4 -16
  7. {aait-2.2.1 → aait-2.2.2.1}/setup.py +1 -1
  8. aait-2.2.1/PKG-INFO +0 -9
  9. aait-2.2.1/aait.egg-info/PKG-INFO +0 -9
  10. {aait-2.2.1 → aait-2.2.2.1}/License.txt +0 -0
  11. {aait-2.2.1 → aait-2.2.2.1}/aait.egg-info/dependency_links.txt +0 -0
  12. {aait-2.2.1 → aait-2.2.2.1}/aait.egg-info/entry_points.txt +0 -0
  13. {aait-2.2.1 → aait-2.2.2.1}/aait.egg-info/namespace_packages.txt +0 -0
  14. {aait-2.2.1 → aait-2.2.2.1}/aait.egg-info/requires.txt +0 -0
  15. {aait-2.2.1 → aait-2.2.2.1}/aait.egg-info/top_level.txt +0 -0
  16. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/__init__.py +0 -0
  17. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/SignalReceiver.py +0 -0
  18. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/__init__.py +0 -0
  19. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/audit_widget.py +0 -0
  20. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (2).TIF +0 -0
  21. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (3).TIF +0 -0
  22. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (4).TIF +0 -0
  23. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0001.csv +0 -0
  24. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0002.csv +0 -0
  25. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0003.csv +0 -0
  26. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/dynamic_results.py +0 -0
  27. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/test_all_widgets.py +0 -0
  28. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/test_server.py +0 -0
  29. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/widget_4all.py +0 -0
  30. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/widget_chunking.py +0 -0
  31. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/widget_edit_table.py +0 -0
  32. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/widget_mpnet_create_embeddings.py +0 -0
  33. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/widget_optimisation.py +0 -0
  34. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/widget_optimisationselection.py +0 -0
  35. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/widget_powfactory.py +0 -0
  36. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/widget_queryllm.py +0 -0
  37. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/widget_spacy_md_fr_lemmatizer.py +0 -0
  38. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/widget_traduction.py +0 -0
  39. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/audit_widget/widgets_model.py +0 -0
  40. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/encapsulation/__init__.py +0 -0
  41. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
  42. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
  43. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/MergeBaseLora.py +0 -0
  44. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/SERV_kill_workflow.py +0 -0
  45. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/SERV_requests.py +0 -0
  46. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/SERV_start_workflow.py +0 -0
  47. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/Tutorial_Finetuning.py +0 -0
  48. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py +0 -0
  49. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/__init__.py +0 -0
  50. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/answers.py +0 -0
  51. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/chunking.py +0 -0
  52. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/embeddings.py +0 -0
  53. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/finetuning.py +0 -0
  54. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/functions_DatasetGeneration.py +0 -0
  55. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/functions_Finetuning.py +0 -0
  56. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/lemmes.py +0 -0
  57. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
  58. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/main_DatasetGeneration.py +0 -0
  59. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/main_Finetuning.py +0 -0
  60. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
  61. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/quickpy.py +0 -0
  62. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/test.py +0 -0
  63. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/test_functions.py +0 -0
  64. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/llm/translations.py +0 -0
  65. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
  66. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
  67. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/CheckMetaData.py +0 -0
  68. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/MetManagement.py +0 -0
  69. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
  70. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/__init__.py +0 -0
  71. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
  72. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/check_data_in.py +0 -0
  73. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
  74. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/import_uic.py +0 -0
  75. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
  76. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/mac_utils.py +0 -0
  77. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
  78. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
  79. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
  80. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/thread_management.py +0 -0
  81. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
  82. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
  83. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
  84. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
  85. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
  86. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/utils/windows_utils.py +0 -0
  87. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +0 -0
  88. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWAddColumns.py +0 -0
  89. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
  90. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
  91. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
  92. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -0
  93. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
  94. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
  95. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWDisplayMD.py +0 -0
  96. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWEditTable.py +0 -0
  97. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWEmptySwitch.py +0 -0
  98. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWEndLoop.py +0 -0
  99. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWExecuteScript.py +0 -0
  100. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
  101. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWExtractTokens.py +0 -0
  102. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWFileMetadata.py +0 -0
  103. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWFileSyncChecker.py +0 -0
  104. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWFileWithPath.py +0 -0
  105. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +0 -0
  106. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +0 -0
  107. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
  108. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWInputSelector.py +0 -0
  109. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWKeywordsDetection.py +0 -0
  110. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
  111. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
  112. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
  113. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +0 -0
  114. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +0 -0
  115. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
  116. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
  117. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
  118. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
  119. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
  120. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
  121. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +0 -0
  122. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
  123. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
  124. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
  125. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
  126. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
  127. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
  128. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
  129. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
  130. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
  131. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
  132. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
  133. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWQueryLLM.py +0 -0
  134. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
  135. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWReranking.py +0 -0
  136. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +0 -0
  137. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py +0 -0
  138. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py +0 -0
  139. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWStartLoop.py +0 -0
  140. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
  141. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
  142. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWTrigger.py +0 -0
  143. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/OWUnzipFolder.py +0 -0
  144. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
  145. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/__init__.py +0 -0
  146. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
  147. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +0 -0
  148. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
  149. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owaddcolumns.ui +0 -0
  150. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
  151. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
  152. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
  153. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
  154. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
  155. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owemptyswitch.ui +0 -0
  156. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
  157. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
  158. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +0 -0
  159. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owextracttokens.ui +0 -0
  160. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owfilemetadata.ui +0 -0
  161. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owfilesyncchecker.ui +0 -0
  162. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +0 -0
  163. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owfindfilesfromdir.ui +0 -0
  164. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owfusion_nm.ui +0 -0
  165. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owgenerate_word.ui +0 -0
  166. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
  167. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
  168. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
  169. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui +0 -0
  170. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
  171. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
  172. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
  173. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +0 -0
  174. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
  175. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
  176. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
  177. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
  178. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
  179. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
  180. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_2.5_32b.ui +0 -0
  181. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_1.5b_q6.ui +0 -0
  182. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_3b_q4.ui +0 -0
  183. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q4.ui +0 -0
  184. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q6.ui +0 -0
  185. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwencoder_7b.ui +0 -0
  186. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
  187. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
  188. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
  189. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
  190. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
  191. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
  192. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
  193. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owreranking.ui +0 -0
  194. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owsavewithpath.ui +0 -0
  195. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owselect_column_dynamic.ui +0 -0
  196. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui +0 -0
  197. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
  198. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
  199. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
  200. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
  201. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/designer/owunzipfolder.ui +0 -0
  202. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
  203. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
  204. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
  205. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
  206. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
  207. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
  208. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
  209. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/document_generator.png +0 -0
  210. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
  211. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
  212. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
  213. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
  214. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/input.png +0 -0
  215. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
  216. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
  217. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
  218. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
  219. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
  220. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
  221. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
  222. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
  223. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
  224. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
  225. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/models.png +0 -0
  226. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
  227. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
  228. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/output.png +0 -0
  229. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
  230. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
  231. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
  232. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
  233. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
  234. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owemptyswitch.svg +0 -0
  235. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owenvinfo.png +0 -0
  236. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
  237. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owextracttokens.svg +0 -0
  238. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owfilemetadata.svg +0 -0
  239. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owfilesfromdir.svg +0 -0
  240. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owfilesyncchecker.svg +0 -0
  241. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
  242. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owfusion_nm.png +0 -0
  243. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
  244. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
  245. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owkeywordsdetection.png +0 -0
  246. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
  247. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +0 -0
  248. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
  249. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +0 -0
  250. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +0 -0
  251. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
  252. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +0 -0
  253. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +0 -0
  254. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
  255. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
  256. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
  257. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owreranking.svg +0 -0
  258. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
  259. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owselectcolumndynamique.png +0 -0
  260. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
  261. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
  262. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
  263. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
  264. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
  265. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/select_dynamic_row.png +0 -0
  266. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
  267. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
  268. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
  269. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/AAIT/widgets/icons/zip.svg +0 -0
  270. {aait-2.2.1 → aait-2.2.2.1}/orangecontrib/__init__.py +0 -0
  271. {aait-2.2.1 → aait-2.2.2.1}/setup.cfg +0 -0
aait-2.2.2.1/PKG-INFO ADDED
@@ -0,0 +1,28 @@
1
+ Metadata-Version: 2.1
2
+ Name: aait
3
+ Version: 2.2.2.1
4
+ Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
+ Home-page:
6
+ Author: Orange community
7
+ Author-email:
8
+ Keywords: orange3 add-on
9
+ License-File: License.txt
10
+ Requires-Dist: torch
11
+ Requires-Dist: sentence-transformers==5.0.0
12
+ Requires-Dist: gpt4all[all]==2.8.2
13
+ Requires-Dist: sacremoses==0.1.1
14
+ Requires-Dist: transformers==4.51.3
15
+ Requires-Dist: sentencepiece==0.2.0
16
+ Requires-Dist: optuna
17
+ Requires-Dist: spacy==3.7.6
18
+ Requires-Dist: markdown
19
+ Requires-Dist: python-multipart
20
+ Requires-Dist: PyMuPDF==1.24.14
21
+ Requires-Dist: chonkie==0.4.1
22
+ Requires-Dist: GPUtil==1.4.0
23
+ Requires-Dist: unidecode==1.3.8
24
+ Requires-Dist: python-docx==1.1.2
25
+ Requires-Dist: psutil
26
+ Requires-Dist: thefuzz==0.22.1
27
+ Requires-Dist: beautifulsoup4==4.12.3
28
+ Requires-Dist: CATEGORIT
@@ -0,0 +1,28 @@
1
+ Metadata-Version: 2.1
2
+ Name: aait
3
+ Version: 2.2.2.1
4
+ Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
+ Home-page:
6
+ Author: Orange community
7
+ Author-email:
8
+ Keywords: orange3 add-on
9
+ License-File: License.txt
10
+ Requires-Dist: torch
11
+ Requires-Dist: sentence-transformers==5.0.0
12
+ Requires-Dist: gpt4all[all]==2.8.2
13
+ Requires-Dist: sacremoses==0.1.1
14
+ Requires-Dist: transformers==4.51.3
15
+ Requires-Dist: sentencepiece==0.2.0
16
+ Requires-Dist: optuna
17
+ Requires-Dist: spacy==3.7.6
18
+ Requires-Dist: markdown
19
+ Requires-Dist: python-multipart
20
+ Requires-Dist: PyMuPDF==1.24.14
21
+ Requires-Dist: chonkie==0.4.1
22
+ Requires-Dist: GPUtil==1.4.0
23
+ Requires-Dist: unidecode==1.3.8
24
+ Requires-Dist: python-docx==1.1.2
25
+ Requires-Dist: psutil
26
+ Requires-Dist: thefuzz==0.22.1
27
+ Requires-Dist: beautifulsoup4==4.12.3
28
+ Requires-Dist: CATEGORIT
@@ -1,4 +1,5 @@
1
1
  License.txt
2
+ setup.cfg
2
3
  setup.py
3
4
  aait.egg-info/PKG-INFO
4
5
  aait.egg-info/SOURCES.txt
@@ -1,7 +1,6 @@
1
1
  import os
2
2
  import json
3
3
  import ntpath
4
- from pathlib import Path
5
4
 
6
5
  from Orange.data import Table, Domain, StringVariable
7
6
 
@@ -9,37 +8,31 @@ import fitz
9
8
  import docx
10
9
 
11
10
 
11
+
12
12
  def process_documents(dirpath):
13
- if dirpath is None or not Path(dirpath).exists():
13
+ if dirpath is None or not os.path.exists(dirpath):
14
14
  return None, None
15
15
 
16
- # Normalize dirpath
17
- dirpath = Path(dirpath).resolve()
18
-
19
16
  # get path from user selection
20
17
  embeddings = check_for_embeddings(dirpath)
18
+ dirpath = dirpath.replace("\\","/")
21
19
 
22
20
  # Set selected path in the saved embeddings
23
21
  if embeddings is not None:
24
- common_path = Path(find_common_root(embeddings)).resolve()
22
+ common_path = find_common_root(embeddings).replace("\\","/")
25
23
  for row in embeddings:
26
- row_path = Path(str(row["path"].value)).resolve()
27
- # Replace common root with the current dirpath
28
- try:
29
- row["path"] = str(dirpath / row_path.relative_to(common_path))
30
- except ValueError:
31
- # If relative_to fails (paths not matching), just normalize
32
- row["path"] = str(row_path)
24
+ row["path"] = row["path"].value.replace("\\","/").replace(common_path, dirpath)
33
25
 
34
26
  # Verify which files are already processed
35
27
  files_to_process = get_files_to_process(dirpath, embeddings)
36
28
 
37
29
  rows = []
38
30
  for file in files_to_process:
39
- file = Path(file).resolve()
40
- content = extract_text(str(file)) # extractor may expect string
41
- filename = file.name
42
- row = [str(file), filename, content] # store strings in Orange table
31
+ # Get the text content from the file
32
+ content = extract_text(file)
33
+ filename = ntpath.basename(file)
34
+ # Build a row containing dirpath | filename | content
35
+ row = [file, filename, content]
43
36
  rows.append(row)
44
37
 
45
38
  # Build a table with the constructed rows
@@ -51,115 +44,93 @@ def process_documents(dirpath):
51
44
  return out_data, embeddings
52
45
 
53
46
 
54
- def check_for_embeddings(folder_path):
55
- """
56
- Check for an embeddings.pkl file in a given folder. Return its content if it exists.
57
-
58
- Parameters:
59
- folder_path (str | Path): The path to the folder where embeddings.pkl may exist.
60
-
61
- Returns:
62
- Table or None: The content of embeddings.pkl, or None if not found.
63
- """
64
- folder_path = Path(folder_path).resolve()
65
-
66
- filepaths = [
67
- folder_path / "embeddings_question.pkl",
68
- folder_path / "embeddings.pkl"
69
- ]
70
-
71
- for filepath in filepaths:
72
- if filepath.exists():
73
- return Table.from_file(str(filepath)) # Table.from_file expects a str
74
- return None
75
-
76
-
77
47
  def find_common_root(data_table, column_name="path"):
78
48
  """Finds the common root path from a column of file paths in an Orange Data Table."""
79
- paths = [Path(str(row[column_name].value)).resolve()
80
- for row in data_table if row[column_name] is not None]
49
+ paths = [str(row[column_name]) for row in data_table if row[column_name] is not None]
81
50
  if not paths:
82
51
  return ""
83
- return str(Path(os.path.commonpath(paths)).resolve())
52
+ return os.path.commonpath(paths)
84
53
 
85
54
 
86
55
  def get_files_to_process(folder_path, table=None):
87
56
  """
88
- Finds all PDF/DOCX files in a folder (including subfolders) that are not already in the table
89
- or that have changed since last check (based on file size).
57
+ Finds all PDF files in a folder (including subfolders) that are not already in the table.
58
+ The comparison is based on "name" (relative path from the main folder) instead of full paths.
90
59
 
91
60
  :param folder_path: Path to the folder to scan for documents.
92
- :param table: Orange Data Table with column "path".
93
- :return: List of new/changed file paths.
61
+ :param table: Orange Data Table with columns "path", "name", and "content".
62
+ :return: List of paths to files not present in the table (by name, including subfolder structure).
94
63
  """
95
- supported_extensions = {".pdf", ".docx"}
64
+ #TODO
65
+ # Supported file extensions
66
+ supported_extensions = [".pdf", ".docx"]
96
67
 
97
- folder_path = Path(folder_path).resolve()
98
- filepath_sizes = folder_path / "sizes.json"
99
-
100
- print(filepath_sizes)
101
- print(filepath_sizes.exists())
102
-
103
- # Load previous file sizes
104
- if filepath_sizes.exists():
68
+ # Read the json containing file sizes
69
+ filepath_sizes = os.path.join(folder_path, "sizes.json")
70
+ if os.path.exists(filepath_sizes):
105
71
  with open(filepath_sizes, "r") as json_file:
106
- sizes = {Path(k): v for k, v in json.load(json_file).items()}
72
+ sizes = json.load(json_file)
107
73
  else:
108
- sizes = {}
74
+ sizes = dict()
109
75
 
110
- print(sizes)
111
-
112
- # Extract the existing paths from the Orange Data Table
76
+ # Extract the existing file names from the Orange Data Table
113
77
  if table:
114
- # Orange stores metas as strings turn them into Paths
115
- existing_paths = {Path(str(p)).resolve() for p in table[:, "path"].metas.flatten()}
78
+ existing_paths = set(table[:, "path"].metas.flatten()) # Extract names from the table
116
79
  else:
117
80
  existing_paths = set()
118
81
 
119
- new_files = []
120
-
121
- # Walk through the folder and subfolders
122
- for file in folder_path.rglob("*"):
123
- if file.suffix.lower() in supported_extensions:
124
- file = file.resolve()
125
- size = file.stat().st_size
126
-
127
- if file not in existing_paths:
128
- # New file
129
- new_files.append(str(file))
130
- sizes[Path(ntpath.basename(file))] = size
131
- else:
132
- # File already in table: check if size changed
133
- print("File: ", Path(ntpath.basename(file)))
134
- old_size = sizes.get(Path(ntpath.basename(file)))
135
- print(old_size)
136
- if old_size is None or old_size != size:
137
- new_files.append(str(file))
138
- table = remove_from_table(file, table)
139
- sizes[Path(ntpath.basename(file))] = size
140
82
 
141
-
142
- # Save updated sizes.json (keys must be strings for JSON)
83
+ # Walk through the folder and its subfolders
84
+ new_files = []
85
+ for root, _, files in os.walk(folder_path):
86
+ for file in files:
87
+ # Check if the file has a supported extension
88
+ if os.path.splitext(file)[1].lower() in supported_extensions:
89
+ # Add the file if it is not already in the table
90
+ filepath = os.path.join(root, file).replace("\\","/")
91
+ if filepath not in existing_paths:
92
+ new_files.append(filepath)
93
+ sizes[filepath] = os.path.getsize(filepath)
94
+ # If the file is in the table, verify if the file has been modified (comparing the size)
95
+ else:
96
+ new_size = os.path.getsize(filepath)
97
+ if filepath not in sizes.keys():
98
+ sizes[filepath] = new_size
99
+ else:
100
+ old_size = sizes[filepath]
101
+ if old_size != new_size:
102
+ new_files.append(filepath)
103
+ table = remove_from_table(filepath, table)
104
+ sizes[filepath] = new_size
143
105
  with open(filepath_sizes, "w") as json_file:
144
- json.dump({str(k): v for k, v in sizes.items()}, json_file, indent=4)
145
-
106
+ json.dump(sizes, json_file, indent=4)
146
107
  return new_files
147
108
 
148
109
 
149
110
  def remove_from_table(filepath, table):
111
+ filtered_table = Table.from_list(domain=table.domain,
112
+ rows=[row for row in table if row["path"].value != filepath])
113
+ return filtered_table
114
+
115
+
116
+ def check_for_embeddings(folder_path):
150
117
  """
151
- Remove rows from the Orange table where 'path' matches the given filepath.
118
+ Check for an embeddings.pkl file in a given folder. Return its content if it exists.
119
+
120
+ Parameters:
121
+ folder_path (str): The path to the folder where embeddings.pkl may exist.
122
+
123
+ Returns:
124
+ Table or None: The content of embeddings.pkl.
152
125
  """
153
- filepath = Path(filepath).resolve()
154
-
155
- filtered_table = Table.from_list(
156
- domain=table.domain,
157
- rows=[
158
- row for row in table
159
- if Path(str(row["path"].value)).resolve() != filepath
160
- ]
161
- )
162
- return filtered_table
126
+ filepaths = [os.path.join(folder_path, "embeddings_question.pkl"),
127
+ os.path.join(folder_path, "embeddings.pkl")]
128
+ for filepath in filepaths:
129
+ if os.path.exists(filepath):
130
+ data = Table.from_file(filepath)
131
+ return data
132
+ else:
133
+ return None
163
134
 
164
135
 
165
136
  def extract_text(filepath):
@@ -368,8 +368,19 @@ class OWFusionNN(widget.OWWidget):
368
368
  Y_out = np.full((n_rows,), np.nan)
369
369
  else:
370
370
  Y_out = np.full((n_rows, len(out_classes)), np.nan)
371
- M_out = np.empty((n_rows, len(out_metas)), dtype=object)
372
- M_out[:] = np.nan
371
+ M_out = np.full((n_rows, len(out_metas)), None, dtype=object)
372
+ def normalize_meta_value(value):
373
+ if value is None:
374
+ return None
375
+ if isinstance(value, (float, np.floating)):
376
+ if np.isnan(value):
377
+ return None
378
+ try:
379
+ if value != value:
380
+ return None
381
+ except Exception:
382
+ pass
383
+ return value
373
384
 
374
385
  # Helpers d'accès aux valeurs source
375
386
  def get_class_val(table: Orange.data.Table, row: int, idx: int):
@@ -405,7 +416,8 @@ class OWFusionNN(widget.OWWidget):
405
416
  if s != side:
406
417
  continue
407
418
  if src_table.metas.shape[1] > idx:
408
- M_out[out_row, pos] = src_table.metas[src_row, idx]
419
+ raw_value = src_table.metas[src_row, idx]
420
+ M_out[out_row, pos] = normalize_meta_value(raw_value)
409
421
 
410
422
  # Remplir lignes: appariées, puis A-only, puis B-only
411
423
  r = 0
@@ -139,13 +139,10 @@ class OWDocumentGenerator(widget.OWWidget):
139
139
  @Inputs.tables
140
140
  def set_table(self, index, data):
141
141
  """Tables à insérer - le nom de la connexion = balise cible"""
142
- print(index)
143
142
  if data is not None:
144
143
  # Essayer de récupérer le nom de la table depuis les métadonnées
145
144
  table_name = self.get_table_name(data, index)
146
145
  self.tables_dict[table_name] = data
147
- print(self.tables_dict)
148
- print(f"Table '{table_name}' connectée")
149
146
  self.check_and_run()
150
147
 
151
148
  @Inputs.tables.insert
@@ -155,8 +152,6 @@ class OWDocumentGenerator(widget.OWWidget):
155
152
  if data is not None:
156
153
  table_name = self.get_table_name(data, index)
157
154
  self.tables_dict[table_name] = data
158
- print(self.tables_dict)
159
- print(f"Table '{table_name}' ajoutée")
160
155
  self.check_and_run()
161
156
 
162
157
  @Inputs.tables.remove
@@ -164,7 +159,6 @@ class OWDocumentGenerator(widget.OWWidget):
164
159
  """Gère la suppression d'une table"""
165
160
  # Trouver et supprimer la table correspondante
166
161
  key=list(self.tables_dict.keys())
167
- print(" la table a supprimer:",self.tables_dict[key[index]])
168
162
  del self.tables_dict[key[index]]
169
163
  self.check_and_run()
170
164
 
@@ -198,7 +192,6 @@ class OWDocumentGenerator(widget.OWWidget):
198
192
  """Méthode principale de traitement"""
199
193
  self.error("")
200
194
  self.warning("")
201
- print("")
202
195
 
203
196
  try:
204
197
  # 1. Charger le template
@@ -208,7 +201,6 @@ class OWDocumentGenerator(widget.OWWidget):
208
201
  return
209
202
 
210
203
  self.doc = Document(template_path)
211
- print(f"Template chargé : {os.path.basename(template_path)}")
212
204
 
213
205
  # 2. Effectuer les remplacements de texte
214
206
  if self.replacements_table is not None:
@@ -224,7 +216,6 @@ class OWDocumentGenerator(widget.OWWidget):
224
216
  # 5. Envoyer le résultat
225
217
  self.send_result(output_path)
226
218
 
227
- print(f"✅ Document généré : {os.path.basename(output_path)}")
228
219
 
229
220
  except Exception as e:
230
221
  self.error(f"Erreur : {str(e)}")
@@ -322,7 +313,6 @@ class OWDocumentGenerator(widget.OWWidget):
322
313
  self.replace_text_in_doc(target, value)
323
314
  count += 1
324
315
 
325
- print(f"✓ {count} remplacements de texte effectués")
326
316
 
327
317
  def replace_text_in_doc(self, placeholder: str, value: str):
328
318
  """Remplace du texte dans tout le document"""
@@ -387,11 +377,8 @@ class OWDocumentGenerator(widget.OWWidget):
387
377
 
388
378
  if self.insert_table_in_doc(target, table_data):
389
379
  count += 1 # Compteur pour l'app
390
- print(f"✓ Table insérée à la position {target}")
391
380
 
392
- if count > 0:
393
- print("✓ ", count, "tableaux insérés")
394
- print(f"✓ {count} tableaux insérés")
381
+
395
382
 
396
383
  def insert_table_in_doc(self, tag: str, table_data: Table) -> bool:
397
384
  """Insère un tableau dans le document"""
@@ -534,6 +521,7 @@ class OWDocumentGenerator(widget.OWWidget):
534
521
  rFonts.set(qn('w:hAnsi'), self.default_font)
535
522
 
536
523
 
524
+
537
525
  def save_document(self) -> str:
538
526
  """Sauvegarde le document"""
539
527
  output_name = "output.docx"
@@ -544,12 +532,12 @@ class OWDocumentGenerator(widget.OWWidget):
544
532
 
545
533
  # Chercher Output_Name
546
534
  for attr in self.paths_table.domain.attributes:
547
- if attr.name == "Output_Name":
535
+ if attr.name == "Output_Path":
548
536
  output_name = str(row[attr])
549
537
  break
550
538
  else:
551
539
  for i, meta in enumerate(self.paths_table.domain.metas):
552
- if meta.name == "Output_Name":
540
+ if meta.name == "Output_Path":
553
541
  output_name = str(self.paths_table.metas[0, i])
554
542
  break
555
543
 
@@ -4,7 +4,7 @@ from setuptools import setup, find_packages
4
4
  NAME = "aait"
5
5
 
6
6
  # Version du package PyPI
7
- VERSION = "2.2.1" # la version doit être supérieure à la précédente sinon la publication sera refusée
7
+ VERSION = "2.2.2.1" # la version doit être supérieure à la précédente sinon la publication sera refusée
8
8
 
9
9
  # Facultatif / Adaptable à souhait
10
10
  AUTHOR = "Orange community"
aait-2.2.1/PKG-INFO DELETED
@@ -1,9 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: aait
3
- Version: 2.2.1
4
- Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
- Home-page:
6
- Author: Orange community
7
- Author-email:
8
- Keywords: orange3 add-on
9
- License-File: License.txt
@@ -1,9 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: aait
3
- Version: 2.2.1
4
- Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
- Home-page:
6
- Author: Orange community
7
- Author-email:
8
- Keywords: orange3 add-on
9
- License-File: License.txt
File without changes
File without changes
File without changes