aait 1.0.1__tar.gz → 1.0.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 (234) hide show
  1. {aait-1.0.1 → aait-1.0.2.1}/PKG-INFO +10 -2
  2. {aait-1.0.1 → aait-1.0.2.1}/aait.egg-info/PKG-INFO +10 -2
  3. {aait-1.0.1 → aait-1.0.2.1}/aait.egg-info/SOURCES.txt +5 -1
  4. {aait-1.0.1 → aait-1.0.2.1}/aait.egg-info/requires.txt +3 -0
  5. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +1 -1
  6. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +3 -4
  7. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWChunking.py +3 -0
  8. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -4
  9. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWConverseLLM.py +3 -0
  10. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +4 -1
  11. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWDisplayMD.py +0 -2
  12. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWExtraChunks.py +2 -0
  13. aait-1.0.2.1/orangecontrib/AAIT/widgets/OWFileWithPath.py +90 -0
  14. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +7 -0
  15. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +6 -0
  16. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWInputSelector.py +15 -7
  17. aait-1.0.2.1/orangecontrib/AAIT/widgets/OWKeywords.py +152 -0
  18. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWLLM4ALL.py +0 -1
  19. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +5 -0
  20. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWLemmatizer.py +2 -0
  21. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +6 -12
  22. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -1
  23. aait-1.0.2.1/orangecontrib/AAIT/widgets/OWPaddleOCR.py +210 -0
  24. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +3 -1
  25. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWQueryLLM.py +50 -8
  26. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +34 -17
  27. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWStartLoop.py +1 -1
  28. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +1 -0
  29. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWTranslation.py +3 -0
  30. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWTrigger.py +1 -1
  31. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/POW_Wfactory.py +2 -2
  32. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +14 -4
  33. aait-1.0.2.1/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +41 -0
  34. aait-1.0.2.1/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +304 -0
  35. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +1 -1
  36. aait-1.0.2.1/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +4 -0
  37. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +27 -27
  38. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +27 -27
  39. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +27 -27
  40. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +27 -27
  41. {aait-1.0.1 → aait-1.0.2.1}/setup.py +5 -2
  42. aait-1.0.1/orangecontrib/AAIT/widgets/OWDeep_Search.py +0 -208
  43. aait-1.0.1/orangecontrib/AAIT/widgets/OWKeywords.py +0 -169
  44. aait-1.0.1/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -99
  45. {aait-1.0.1 → aait-1.0.2.1}/License.txt +0 -0
  46. {aait-1.0.1 → aait-1.0.2.1}/aait.egg-info/dependency_links.txt +0 -0
  47. {aait-1.0.1 → aait-1.0.2.1}/aait.egg-info/entry_points.txt +0 -0
  48. {aait-1.0.1 → aait-1.0.2.1}/aait.egg-info/namespace_packages.txt +0 -0
  49. {aait-1.0.1 → aait-1.0.2.1}/aait.egg-info/top_level.txt +0 -0
  50. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/__init__.py +0 -0
  51. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/SignalReceiver.py +0 -0
  52. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/__init__.py +0 -0
  53. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/audit_widget.py +0 -0
  54. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (2).TIF +0 -0
  55. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (3).TIF +0 -0
  56. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (4).TIF +0 -0
  57. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0001.csv +0 -0
  58. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0002.csv +0 -0
  59. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0003.csv +0 -0
  60. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/dynamic_results.py +0 -0
  61. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/test_all_widgets.py +0 -0
  62. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/test_server.py +0 -0
  63. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/widget_4all.py +0 -0
  64. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/widget_chunking.py +0 -0
  65. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/widget_edit_table.py +0 -0
  66. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/widget_mpnet_create_embeddings.py +0 -0
  67. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/widget_optimisation.py +0 -0
  68. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/widget_optimisationselection.py +0 -0
  69. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/widget_powfactory.py +0 -0
  70. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/widget_queryllm.py +0 -0
  71. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/widget_spacy_md_fr_lemmatizer.py +0 -0
  72. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/widget_traduction.py +0 -0
  73. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/audit_widget/widgets_model.py +0 -0
  74. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/encapsulation/__init__.py +0 -0
  75. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
  76. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
  77. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/GPT4ALL.py +0 -0
  78. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/GPT4ALL_killer.py +0 -0
  79. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/MergeBaseLora.py +0 -0
  80. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/SERV_kill_workflow.py +0 -0
  81. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/SERV_requests.py +0 -0
  82. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/SERV_start_workflow.py +0 -0
  83. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/Tutorial_Finetuning.py +0 -0
  84. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py +0 -0
  85. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/__init__.py +0 -0
  86. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/answers.py +0 -0
  87. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/chunking.py +0 -0
  88. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/embeddings.py +0 -0
  89. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/finetuning.py +0 -0
  90. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/functions_DatasetGeneration.py +0 -0
  91. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/functions_Finetuning.py +0 -0
  92. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/lemmes.py +0 -0
  93. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
  94. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/main_DatasetGeneration.py +0 -0
  95. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/main_Finetuning.py +0 -0
  96. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/process_documents.py +0 -0
  97. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
  98. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/quickpy.py +0 -0
  99. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/test.py +0 -0
  100. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/test_functions.py +0 -0
  101. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/llm/translations.py +0 -0
  102. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
  103. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
  104. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/CheckMetaData.py +0 -0
  105. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/MetManagement.py +0 -0
  106. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
  107. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/__init__.py +0 -0
  108. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
  109. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/check_data_in.py +0 -0
  110. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
  111. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/import_uic.py +0 -0
  112. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
  113. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
  114. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
  115. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
  116. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/thread_management.py +0 -0
  117. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
  118. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
  119. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
  120. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
  121. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
  122. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/utils/windows_utils.py +0 -0
  123. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
  124. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWEditTable.py +0 -0
  125. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWEndLoop.py +0 -0
  126. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
  127. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +0 -0
  128. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
  129. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
  130. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
  131. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
  132. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
  133. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
  134. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
  135. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
  136. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
  137. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
  138. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
  139. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
  140. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
  141. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
  142. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
  143. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/__init__.py +0 -0
  144. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
  145. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
  146. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
  147. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
  148. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
  149. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
  150. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owdeepsearch.ui +0 -0
  151. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
  152. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
  153. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +0 -0
  154. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
  155. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
  156. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
  157. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
  158. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
  159. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owllm4all.ui +0 -0
  160. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
  161. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
  162. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
  163. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
  164. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
  165. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
  166. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
  167. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
  168. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
  169. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
  170. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
  171. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
  172. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owpaddleocr.ui +0 -0
  173. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
  174. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
  175. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
  176. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
  177. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
  178. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
  179. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
  180. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
  181. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
  182. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
  183. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
  184. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
  185. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
  186. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
  187. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
  188. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/keyword.png +0 -0
  189. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
  190. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/llm4all.svg +0 -0
  191. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
  192. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
  193. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
  194. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
  195. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
  196. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
  197. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
  198. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
  199. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
  200. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
  201. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
  202. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
  203. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
  204. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
  205. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
  206. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
  207. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
  208. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
  209. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
  210. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
  211. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
  212. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
  213. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
  214. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
  215. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
  216. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
  217. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
  218. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/paddleocr.svg +0 -0
  219. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
  220. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
  221. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
  222. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
  223. {aait-1.0.1 → aait-1.0.2.1}/orangecontrib/__init__.py +0 -0
  224. {aait-1.0.1 → aait-1.0.2.1}/setup.cfg +0 -0
  225. {aait-1.0.1 → aait-1.0.2.1}/tests/test_class_values_context_handler.py +0 -0
  226. {aait-1.0.1 → aait-1.0.2.1}/tests/test_credentials.py +0 -0
  227. {aait-1.0.1 → aait-1.0.2.1}/tests/test_domain_context_handler.py +0 -0
  228. {aait-1.0.1 → aait-1.0.2.1}/tests/test_gui.py +0 -0
  229. {aait-1.0.1 → aait-1.0.2.1}/tests/test_matplotlib_export.py +0 -0
  230. {aait-1.0.1 → aait-1.0.2.1}/tests/test_perfect_domain_context_handler.py +0 -0
  231. {aait-1.0.1 → aait-1.0.2.1}/tests/test_scatterplot_density.py +0 -0
  232. {aait-1.0.1 → aait-1.0.2.1}/tests/test_settings_handler.py +0 -0
  233. {aait-1.0.1 → aait-1.0.2.1}/tests/test_widgets_outputs.py +0 -0
  234. {aait-1.0.1 → aait-1.0.2.1}/tests/test_workflows.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: aait
3
- Version: 1.0.1
3
+ Version: 1.0.2.1
4
4
  Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
5
  Home-page:
6
6
  Author: Orange community
@@ -27,3 +27,11 @@ Requires-Dist: unidecode==1.3.8
27
27
  Requires-Dist: python-docx==1.1.2
28
28
  Requires-Dist: psutil
29
29
  Requires-Dist: thefuzz==0.22.1
30
+ Requires-Dist: paddleocr==2.8.0
31
+ Requires-Dist: beautifulsoup4==4.12.3
32
+ Requires-Dist: paddlepaddle==2.6.2
33
+ Dynamic: author
34
+ Dynamic: keywords
35
+ Dynamic: license-file
36
+ Dynamic: requires-dist
37
+ Dynamic: summary
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: aait
3
- Version: 1.0.1
3
+ Version: 1.0.2.1
4
4
  Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
5
  Home-page:
6
6
  Author: Orange community
@@ -27,3 +27,11 @@ Requires-Dist: unidecode==1.3.8
27
27
  Requires-Dist: python-docx==1.1.2
28
28
  Requires-Dist: psutil
29
29
  Requires-Dist: thefuzz==0.22.1
30
+ Requires-Dist: paddleocr==2.8.0
31
+ Requires-Dist: beautifulsoup4==4.12.3
32
+ Requires-Dist: paddlepaddle==2.6.2
33
+ Dynamic: author
34
+ Dynamic: keywords
35
+ Dynamic: license-file
36
+ Dynamic: requires-dist
37
+ Dynamic: summary
@@ -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
@@ -88,11 +89,11 @@ orangecontrib/AAIT/widgets/OWChunking.py
88
89
  orangecontrib/AAIT/widgets/OWConcatRules.py
89
90
  orangecontrib/AAIT/widgets/OWConverseLLM.py
90
91
  orangecontrib/AAIT/widgets/OWCreateEmbeddings.py
91
- orangecontrib/AAIT/widgets/OWDeep_Search.py
92
92
  orangecontrib/AAIT/widgets/OWDisplayMD.py
93
93
  orangecontrib/AAIT/widgets/OWEditTable.py
94
94
  orangecontrib/AAIT/widgets/OWEndLoop.py
95
95
  orangecontrib/AAIT/widgets/OWExtraChunks.py
96
+ orangecontrib/AAIT/widgets/OWFileWithPath.py
96
97
  orangecontrib/AAIT/widgets/OWGenerateQuestions.py
97
98
  orangecontrib/AAIT/widgets/OWGenerateSynthesis.py
98
99
  orangecontrib/AAIT/widgets/OWInputSelector.py
@@ -118,6 +119,7 @@ orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py
118
119
  orangecontrib/AAIT/widgets/OWOptimisation.py
119
120
  orangecontrib/AAIT/widgets/OWOptimisationSelection.py
120
121
  orangecontrib/AAIT/widgets/OWOptimisationSendScore.py
122
+ orangecontrib/AAIT/widgets/OWPaddleOCR.py
121
123
  orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py
122
124
  orangecontrib/AAIT/widgets/OWQueryLLM.py
123
125
  orangecontrib/AAIT/widgets/OWRandomData.py
@@ -139,6 +141,7 @@ orangecontrib/AAIT/widgets/designer/owdeepsearch.ui
139
141
  orangecontrib/AAIT/widgets/designer/owembeddings.ui
140
142
  orangecontrib/AAIT/widgets/designer/owendloop.ui
141
143
  orangecontrib/AAIT/widgets/designer/owextrachunks.ui
144
+ orangecontrib/AAIT/widgets/designer/owfilewithpath.ui
142
145
  orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui
143
146
  orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui
144
147
  orangecontrib/AAIT/widgets/designer/owkeyword.ui
@@ -193,6 +196,7 @@ orangecontrib/AAIT/widgets/icons/owchunking.png
193
196
  orangecontrib/AAIT/widgets/icons/owconversellm.svg
194
197
  orangecontrib/AAIT/widgets/icons/owedittable.svg
195
198
  orangecontrib/AAIT/widgets/icons/owembeddings.svg
199
+ orangecontrib/AAIT/widgets/icons/owfilewithpath.svg
196
200
  orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg
197
201
  orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png
198
202
  orangecontrib/AAIT/widgets/icons/owlemmatizer.svg
@@ -16,6 +16,9 @@ unidecode==1.3.8
16
16
  python-docx==1.1.2
17
17
  psutil
18
18
  thefuzz==0.22.1
19
+ paddleocr==2.8.0
20
+ beautifulsoup4==4.12.3
21
+ paddlepaddle==2.6.2
19
22
 
20
23
  [:sys_platform != "darwin"]
21
24
  torch==2.6.0
@@ -438,7 +438,7 @@ class OWAAITResourcesManager(widget.OWWidget):
438
438
  def show_repository_manager(self):
439
439
  """Show the repository manager dialog"""
440
440
  dialog = RepositoryManager(self)
441
- dialog.exec_()
441
+ dialog.exec()
442
442
 
443
443
  def update_requirements(self):
444
444
  """Update requirements from all repositories"""
@@ -12,8 +12,6 @@ from AnyQt.QtWidgets import (
12
12
 
13
13
  from Orange.classification.rules import _RuleClassifier
14
14
  from Orange.widgets import widget, gui, settings
15
- from Orange.widgets.utils.annotated_data import (create_annotated_table,
16
- ANNOTATED_DATA_SIGNAL_NAME)
17
15
  from Orange.widgets.utils.widgetpreview import WidgetPreview
18
16
  from Orange.widgets.widget import Input, Output
19
17
  from Orange.data import Table, Domain, ContinuousVariable, StringVariable
@@ -161,9 +159,9 @@ class OWRuleViewer(widget.OWWidget):
161
159
  QApplication.clipboard().setText(output)
162
160
 
163
161
  def commit(self):
164
- data_output = None
162
+
165
163
  self._save_selected(actual=True)
166
- selected_indices = []
164
+ # selected_indices = []
167
165
 
168
166
  data = self.data or self.classifier and self.classifier.instances
169
167
  if (self.selected is not None and
@@ -206,6 +204,7 @@ class OWRuleViewer(widget.OWWidget):
206
204
  # Envoyer les données modifiées
207
205
  # self.Outputs.annotated_data.send(outdata_status)
208
206
 
207
+ # a verifier surement fausse alarme pyflakes
209
208
  data_output = data.from_table_rows(data, selected_indices) \
210
209
  if len(selected_indices) else None
211
210
  if self.classifier!=None:
@@ -44,6 +44,9 @@ class OWChunker(widget.OWWidget):
44
44
 
45
45
  @Inputs.data
46
46
  def set_data(self, in_data):
47
+ if in_data is None:
48
+ self.Outputs.data.send(None)
49
+ return
47
50
  self.data = in_data
48
51
  if self.autorun:
49
52
  self.run()
@@ -4,11 +4,7 @@ import re
4
4
  import Orange.data
5
5
 
6
6
 
7
- from Orange.classification.rules import _RuleClassifier
8
7
  from Orange.widgets import widget
9
- from Orange.widgets.utils.annotated_data import (create_annotated_table,
10
- ANNOTATED_DATA_SIGNAL_NAME)
11
- from Orange.widgets.utils.widgetpreview import WidgetPreview
12
8
  from Orange.widgets.widget import Input, Output
13
9
  from Orange.data import Table, Domain, StringVariable
14
10
 
@@ -42,6 +42,9 @@ class OWConverseLLM(widget.OWWidget):
42
42
 
43
43
  @Inputs.data
44
44
  def set_data(self, in_data):
45
+ if in_data is None:
46
+ self.Outputs.data.send(None)
47
+ return
45
48
  self.data = in_data
46
49
  if self.autorun:
47
50
  self.run()
@@ -7,7 +7,6 @@ from Orange.widgets import widget
7
7
  from Orange.widgets.utils.signals import Input, Output
8
8
  from sentence_transformers import SentenceTransformer
9
9
 
10
-
11
10
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
12
11
  from Orange.widgets.orangecontrib.AAIT.llm import embeddings
13
12
  from Orange.widgets.orangecontrib.AAIT.utils import thread_management
@@ -19,6 +18,7 @@ else:
19
18
  from orangecontrib.AAIT.utils.import_uic import uic
20
19
  from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
21
20
 
21
+
22
22
  @apply_modification_from_python_file(filepath_original_widget=__file__)
23
23
  class OWCreateEmbeddings(widget.OWWidget):
24
24
  name = "Create Embeddings"
@@ -39,6 +39,9 @@ class OWCreateEmbeddings(widget.OWWidget):
39
39
 
40
40
  @Inputs.data
41
41
  def set_data(self, in_data):
42
+ if in_data is None:
43
+ self.Outputs.data.send(None)
44
+ return
42
45
  self.data = in_data
43
46
  if self.autorun:
44
47
  self.run()
@@ -1,8 +1,6 @@
1
1
  import os
2
2
  import re
3
3
  from typing import Any, Iterable, List, Set
4
- from pygments import highlight
5
- from pygments.lexers import get_lexer_by_name, guess_lexer
6
4
  from pygments.formatters import HtmlFormatter
7
5
  import markdown
8
6
 
@@ -64,6 +64,8 @@ class OWExtraChunks(widget.OWWidget):
64
64
 
65
65
  def process(self):
66
66
  if self.complete_data is None or self.selected_data is None:
67
+ self.Outputs.concatenate_data.send(None)
68
+ self.Outputs.data.send(None)
67
69
  return
68
70
 
69
71
  domain = self.complete_data.domain
@@ -0,0 +1,90 @@
1
+ import os
2
+ import sys
3
+
4
+ import Orange.data
5
+ from AnyQt.QtWidgets import QApplication
6
+ from Orange.widgets import widget
7
+ from Orange.widgets.utils.signals import Input, Output
8
+
9
+
10
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
11
+ from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
12
+ from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
13
+ else:
14
+ from orangecontrib.AAIT.utils.import_uic import uic
15
+ from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
16
+
17
+
18
+ @apply_modification_from_python_file(filepath_original_widget=__file__)
19
+ class OWFileWithPath(widget.OWWidget):
20
+ name = "File with Path"
21
+ description = "Load some tabular data specified with a filepath ('.../data/example.xlsx')."
22
+ icon = "icons/owfilewithpath.svg"
23
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
24
+ icon = "icons_dev/owfilewithpath.svg"
25
+ gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owfilewithpath.ui")
26
+ want_control_area = False
27
+ priority = 1060
28
+
29
+ class Inputs:
30
+ filepath = Input("Path", str)
31
+ path_table = Input("Path Table", Orange.data.Table)
32
+
33
+ class Outputs:
34
+ data = Output("Data", Orange.data.Table)
35
+
36
+
37
+ @Inputs.filepath
38
+ def set_filepath(self, in_filepath):
39
+ if in_filepath is not None:
40
+ self.filepath = in_filepath
41
+ self.run()
42
+
43
+ @Inputs.path_table
44
+ def set_path_table(self, in_path_table):
45
+ if in_path_table is not None:
46
+ if "path" in in_path_table.domain:
47
+ self.filepath = in_path_table[0]["path"].value
48
+ self.run()
49
+ else:
50
+ self.warning("You need a 'path' variable from which the data will be loaded.")
51
+
52
+
53
+ def __init__(self):
54
+ super().__init__()
55
+ # Qt Management
56
+ self.setFixedWidth(470)
57
+ self.setFixedHeight(300)
58
+ uic.loadUi(self.gui, self)
59
+
60
+ # Data Management
61
+ self.filepath = None
62
+ self.data = None
63
+ self.autorun = True
64
+ self.post_initialized()
65
+
66
+ def run(self):
67
+ self.error("")
68
+ self.warning("")
69
+
70
+ if self.filepath is None:
71
+ return
72
+
73
+ try:
74
+ self.filepath = self.filepath.strip('"')
75
+ out_data = Orange.data.Table.from_file(self.filepath)
76
+ out_data.name = self.filepath
77
+ except Exception as e:
78
+ self.error(f"An error occurred: the provided file path may not be supported ({e})")
79
+ return
80
+
81
+ self.Outputs.data.send(out_data)
82
+
83
+ def post_initialized(self):
84
+ pass
85
+
86
+ if __name__ == "__main__":
87
+ app = QApplication(sys.argv)
88
+ my_widget = OWFileWithPath()
89
+ my_widget.show()
90
+ app.exec_()
@@ -46,6 +46,10 @@ class OWGenerateQuestions(widget.OWWidget):
46
46
 
47
47
  @Inputs.data
48
48
  def set_data(self, in_data):
49
+ if in_data is None:
50
+ self.Outputs.data.send(None)
51
+ return
52
+
49
53
  self.data = in_data
50
54
  self.data_lmstudio = None
51
55
  if self.autorun:
@@ -53,6 +57,9 @@ class OWGenerateQuestions(widget.OWWidget):
53
57
 
54
58
  @Inputs.data_lmstudio
55
59
  def set_data_lmstudio(self, in_data):
60
+ if in_data is None:
61
+ self.Outputs.data.send(None)
62
+ return
56
63
  self.data_lmstudio = in_data
57
64
  self.data = None
58
65
  if self.autorun:
@@ -46,6 +46,9 @@ class OWGenerateSynthesis(widget.OWWidget):
46
46
 
47
47
  @Inputs.data
48
48
  def set_data(self, in_data):
49
+ if in_data is None:
50
+ self.Outputs.data.send(None)
51
+ return
49
52
  self.data = in_data
50
53
  self.data_lmstudio = None
51
54
  if self.autorun:
@@ -53,6 +56,9 @@ class OWGenerateSynthesis(widget.OWWidget):
53
56
 
54
57
  @Inputs.data_lmstudio
55
58
  def set_data_lmstudio(self, in_data):
59
+ if in_data is None:
60
+ self.Outputs.data.send(None)
61
+ return
56
62
  self.data_lmstudio = in_data
57
63
  self.data = None
58
64
  if self.autorun:
@@ -1,5 +1,5 @@
1
1
  import os
2
- from AnyQt.QtWidgets import QPushButton, QApplication, QRadioButton, QComboBox,QCheckBox
2
+ from AnyQt.QtWidgets import QPushButton, QApplication, QRadioButton, QComboBox,QCheckBox,QLineEdit
3
3
  from AnyQt import uic
4
4
 
5
5
 
@@ -9,9 +9,10 @@ from Orange.data import Table, Domain, StringVariable
9
9
 
10
10
 
11
11
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
12
- from Orange.widgets.orangecontrib.AAIT.utils import windows_utils
12
+ from Orange.widgets.orangecontrib.AAIT.utils import windows_utils,MetManagement
13
13
  else:
14
- from orangecontrib.AAIT.utils import windows_utils
14
+ from orangecontrib.AAIT.utils import windows_utils, MetManagement
15
+
15
16
 
16
17
  class OWInputSelector(OWWidget):
17
18
  name = "Input Selector"
@@ -32,7 +33,7 @@ class OWInputSelector(OWWidget):
32
33
  select_folder_radio_button_checked: str = Setting("True")
33
34
  select_multiple_file_checked: str = Setting("False")
34
35
  combo_box_current_text: str=Setting("All (*.*)")
35
-
36
+ line_edit_value:str=Setting("")
36
37
  def update_qt_view_from_settings(self):
37
38
  if str(self.select_folder_radio_button_checked) =="True":
38
39
  self.radioButton.setChecked(True)
@@ -92,7 +93,8 @@ class OWInputSelector(OWWidget):
92
93
  self.checkBox = self.findChild(QCheckBox, 'checkBox')
93
94
  self.comboBox = self.findChild(QComboBox, 'comboBox')
94
95
  self.pushButton = self.findChild(QPushButton, 'pushButton')
95
-
96
+ self.lineEdit=self.findChild(QLineEdit,'lineEdit')
97
+ self.lineEdit.setText(self.line_edit_value)
96
98
 
97
99
  # based on the string you can modify orders and add without problem
98
100
  file_types = [
@@ -202,8 +204,10 @@ class OWInputSelector(OWWidget):
202
204
  self.checkBox.clicked.connect(self.update_setting_from_qt_view)
203
205
  self.comboBox.currentTextChanged.connect(self.on_text_changed)
204
206
  self.pushButton.clicked.connect(self.launch_fucntionalities)
205
-
206
-
207
+ self.lineEdit.editingFinished.connect(self.update_line_edit_setting)
208
+ def update_line_edit_setting(self):
209
+ self.line_edit_value=MetManagement.TransfromPathToStorePath(str(self.lineEdit.text()))
210
+ print(self.line_edit_value)
207
211
 
208
212
  @Inputs.input_table
209
213
  def input_table(self, data):
@@ -217,6 +221,10 @@ class OWInputSelector(OWWidget):
217
221
 
218
222
 
219
223
  def launch_fucntionalities(self):
224
+ if self.line_edit_value!="":
225
+ self.selected_path=MetManagement.TransfromStorePathToPath(self.line_edit_value)
226
+ self.commit_path()
227
+ return
220
228
  if str(self.select_folder_radio_button_checked) =="True":
221
229
  self.selected_path=self.select_folder()
222
230
  if self.selected_path is None:
@@ -0,0 +1,152 @@
1
+ import os
2
+ import sys
3
+
4
+ from Orange.widgets import widget
5
+ from Orange.widgets.utils.signals import Input, Output
6
+ from Orange.data import Table, Domain, ContinuousVariable
7
+ from thefuzz import fuzz
8
+ from AnyQt.QtWidgets import QApplication
9
+ from AnyQt.QtCore import QObject, QThread, pyqtSignal
10
+
11
+ # Import intelligent selon contexte
12
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
13
+ from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
14
+ from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
15
+ else:
16
+ from orangecontrib.AAIT.utils.import_uic import uic
17
+ from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
18
+
19
+ # Worker pour exécution asynchrone
20
+ class KeywordWorker(QObject):
21
+ finished = pyqtSignal(Table)
22
+ error = pyqtSignal(str)
23
+
24
+ def __init__(self, data, keywords, threshold=80):
25
+ super().__init__()
26
+ self.data = data
27
+ self.keywords = keywords
28
+ self.threshold = threshold
29
+
30
+ def extract_matched_keywords(self, text, keywords):
31
+ words = text.split(" ")
32
+ matched_keywords = []
33
+ for keyword in keywords:
34
+ best_score = max(fuzz.ratio(word.lower(), keyword.lower()) for word in words)
35
+ if best_score >= self.threshold:
36
+ matched_keywords.append(keyword)
37
+ return matched_keywords
38
+
39
+ def run(self):
40
+ try:
41
+ if "Content" not in self.data.domain or "Keywords" not in self.keywords.domain:
42
+ self.error.emit("Missing 'Content' or 'Keywords' column")
43
+ return
44
+
45
+ keyword_list = [
46
+ str(row["Keywords"])
47
+ for row in self.keywords
48
+ if str(row["Keywords"]).strip() != ""
49
+ ]
50
+
51
+ new_metas_vars = list(self.data.domain.metas)
52
+ if not any(var.name == "Keywords" for var in new_metas_vars):
53
+ new_metas_vars.append(ContinuousVariable("Keywords"))
54
+
55
+ new_domain = Domain(
56
+ self.data.domain.attributes,
57
+ self.data.domain.class_vars,
58
+ new_metas_vars
59
+ )
60
+
61
+ new_metas = []
62
+ for row in self.data:
63
+ text = str(row["Content"])
64
+ matched_keywords = self.extract_matched_keywords(text, keyword_list)
65
+ score = (
66
+ sum(fuzz.ratio(word.lower(), kw.lower()) for kw in matched_keywords for word in text.split())
67
+ / len(keyword_list)
68
+ if matched_keywords else 0.0
69
+ )
70
+ new_metas.append(list(row.metas) + [score])
71
+
72
+ out_data = Table(new_domain, self.data.X, self.data.Y, new_metas)
73
+ self.finished.emit(out_data)
74
+
75
+ except Exception as e:
76
+ self.error.emit(str(e))
77
+
78
+ # Définition du widget principal
79
+ @apply_modification_from_python_file(filepath_original_widget=__file__)
80
+ class OWKeywords(widget.OWWidget):
81
+ name = "Keywords Detection"
82
+ description = "Give the amount of keywords from in_object in in_data"
83
+ icon = "icons/keyword.png"
84
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
85
+ icon = "icons_dev/keyword.png"
86
+ gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owkeyword.ui")
87
+ want_control_area = False
88
+ priority = 1050
89
+
90
+ class Inputs:
91
+ data = Input("Content", Table)
92
+ keywords = Input("Keywords", Table)
93
+
94
+ class Outputs:
95
+ data = Output("Keywords per Content", Table)
96
+
97
+ def __init__(self):
98
+ super().__init__()
99
+ self.data = None
100
+ self.keywords = None
101
+ self.setFixedWidth(470)
102
+ self.setFixedHeight(300)
103
+ uic.loadUi(self.gui, self)
104
+ self.autorun = True
105
+ self.thread = None
106
+ self.worker = None
107
+
108
+ @Inputs.data
109
+ def set_data(self, in_data):
110
+ self.data = in_data
111
+ if self.autorun and self.keywords:
112
+ self.process()
113
+
114
+ @Inputs.keywords
115
+ def set_keywords(self, in_keywords):
116
+ self.keywords = in_keywords
117
+ if self.autorun and self.data:
118
+ self.process()
119
+
120
+ def process(self):
121
+ if self.data is None or self.keywords is None:
122
+ self.Outputs.data.send(None)
123
+ return
124
+
125
+ self.error("") # Clear errors
126
+ self.thread = QThread()
127
+ self.worker = KeywordWorker(self.data, self.keywords)
128
+ self.worker.moveToThread(self.thread)
129
+
130
+ self.thread.started.connect(self.worker.run)
131
+ self.worker.finished.connect(self.on_worker_finished)
132
+ self.worker.error.connect(self.on_worker_error)
133
+ self.worker.finished.connect(self.thread.quit)
134
+ self.worker.finished.connect(self.worker.deleteLater)
135
+ self.thread.finished.connect(self.thread.deleteLater)
136
+
137
+ self.thread.start()
138
+
139
+ def on_worker_finished(self, out_data):
140
+ print("[INFO] Thread finished. Output ready.")
141
+ self.Outputs.data.send(out_data)
142
+
143
+ def on_worker_error(self, message):
144
+ print(f"[ERROR] Worker error: {message}")
145
+ self.error(message)
146
+
147
+
148
+ if __name__ == "__main__":
149
+ app = QApplication(sys.argv)
150
+ ow = OWKeywords()
151
+ ow.show()
152
+ app.exec_()
@@ -1,7 +1,6 @@
1
1
  import os
2
2
  import sys
3
3
  import ntpath
4
- import platform
5
4
 
6
5
  import Orange.data
7
6
  from AnyQt.QtWidgets import QApplication, QLabel
@@ -42,6 +42,11 @@ class OWLanguageDetection(widget.OWWidget):
42
42
 
43
43
  @Inputs.data
44
44
  def set_data(self, in_data):
45
+ if in_data is None:
46
+ self.Outputs.data.send(None)
47
+ return
48
+
49
+
45
50
  self.data = in_data
46
51
  if self.autorun and self.data:
47
52
  self.process()
@@ -79,9 +79,11 @@ class OWLemmatizer(widget.OWWidget):
79
79
  self.thread.safe_quit()
80
80
 
81
81
  if self.data is None:
82
+ self.Outputs.data.send(None)
82
83
  return
83
84
 
84
85
  if self.model_path is None:
86
+ self.Outputs.data.send(None)
85
87
  return
86
88
 
87
89
  # Verification of in_data
@@ -8,12 +8,12 @@ from sentence_transformers import SentenceTransformer
8
8
 
9
9
 
10
10
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
11
- from orangecontrib.AAIT.utils import SimpleDialogQt, thread_management
11
+ from orangecontrib.AAIT.utils import SimpleDialogQt
12
12
  from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
13
13
  from Orange.widgets.orangecontrib.AAIT.utils.MetManagement import GetFromRemote, get_local_store_path
14
14
  from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
15
15
  else:
16
- from orangecontrib.AAIT.utils import SimpleDialogQt, thread_management
16
+ from orangecontrib.AAIT.utils import SimpleDialogQt
17
17
  from orangecontrib.AAIT.utils.import_uic import uic
18
18
  from orangecontrib.AAIT.utils.MetManagement import GetFromRemote, get_local_store_path
19
19
  from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
@@ -53,22 +53,16 @@ class OWModelMPNET(widget.OWWidget):
53
53
  except: # TODO ciblage de l'erreur
54
54
  SimpleDialogQt.BoxError("Unable to get the Model.")
55
55
  return
56
- # Data Management
57
- self.progressBarInit()
58
- self.thread = thread_management.Thread(self.load_sentence_transformer, self.model_path)
59
- self.thread.finish.connect(self.handle_loading_finish)
60
- self.thread.start()
61
56
 
62
- def load_sentence_transformer(self, model_path):
63
- self.model = SentenceTransformer(model_path)
64
-
65
- def handle_loading_finish(self):
57
+ self.load_sentence_transformer(self.model_path)
66
58
  if self.model is not None:
67
59
  self.Outputs.out_model.send(self.model)
68
60
  else:
69
61
  SimpleDialogQt.BoxError("An Error Occurred when loading model.")
70
62
  self.Outputs.out_model.send(None)
71
- self.progressBarFinished()
63
+
64
+ def load_sentence_transformer(self, model_path):
65
+ self.model = SentenceTransformer(model_path, device="cpu")
72
66
 
73
67
 
74
68
  if __name__ == "__main__":
@@ -10,7 +10,6 @@ from AnyQt.QtCore import QTimer
10
10
  from AnyQt.QtWidgets import QButtonGroup, QLabel, QRadioButton
11
11
  from Orange.widgets import widget
12
12
  from Orange.widgets.settings import Setting
13
- from Orange.widgets.utils.signals import Input, Output
14
13
  from Orange.widgets.widget import Input, Output
15
14
 
16
15