aait 2.2.2.3__tar.gz → 2.2.4__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 (287) hide show
  1. aait-2.2.4/PKG-INFO +9 -0
  2. aait-2.2.4/aait.egg-info/PKG-INFO +9 -0
  3. {aait-2.2.2.3 → aait-2.2.4}/aait.egg-info/SOURCES.txt +9 -1
  4. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/answers.py +51 -42
  5. aait-2.2.4/orangecontrib/AAIT/utils/base_widget.py +173 -0
  6. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWAccumulator.py +8 -23
  7. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWDisplayMD.py +8 -13
  8. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWExecuteScript.py +61 -29
  9. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWKeywords.py +5 -1
  10. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +4 -1
  11. aait-2.2.4/orangecontrib/AAIT/widgets/OWSortAndSelect.py +194 -0
  12. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owaccumulator.ui +20 -20
  13. aait-2.2.4/orangecontrib/AAIT/widgets/designer/owchunkanalysis.ui +64 -0
  14. aait-2.2.4/orangecontrib/AAIT/widgets/designer/owexecutescript_TEST.ui +210 -0
  15. aait-2.2.4/orangecontrib/AAIT/widgets/designer/owllm4all.ui +54 -0
  16. aait-2.2.4/orangecontrib/AAIT/widgets/icons/chunking_analysis.png +0 -0
  17. aait-2.2.4/orangecontrib/AAIT/widgets/icons/edge_llm.svg +6 -0
  18. aait-2.2.4/orangecontrib/AAIT/widgets/icons/owsortandselect.svg +6 -0
  19. {aait-2.2.2.3 → aait-2.2.4}/setup.py +1 -1
  20. aait-2.2.2.3/PKG-INFO +0 -33
  21. aait-2.2.2.3/aait.egg-info/PKG-INFO +0 -33
  22. {aait-2.2.2.3 → aait-2.2.4}/License.txt +0 -0
  23. {aait-2.2.2.3 → aait-2.2.4}/aait.egg-info/dependency_links.txt +0 -0
  24. {aait-2.2.2.3 → aait-2.2.4}/aait.egg-info/entry_points.txt +0 -0
  25. {aait-2.2.2.3 → aait-2.2.4}/aait.egg-info/namespace_packages.txt +0 -0
  26. {aait-2.2.2.3 → aait-2.2.4}/aait.egg-info/requires.txt +0 -0
  27. {aait-2.2.2.3 → aait-2.2.4}/aait.egg-info/top_level.txt +0 -0
  28. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/__init__.py +0 -0
  29. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/SignalReceiver.py +0 -0
  30. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/__init__.py +0 -0
  31. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/audit_widget.py +0 -0
  32. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (2).TIF +0 -0
  33. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (3).TIF +0 -0
  34. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (4).TIF +0 -0
  35. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0001.csv +0 -0
  36. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0002.csv +0 -0
  37. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0003.csv +0 -0
  38. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/dynamic_results.py +0 -0
  39. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/test_all_widgets.py +0 -0
  40. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/test_server.py +0 -0
  41. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/widget_4all.py +0 -0
  42. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/widget_chunking.py +0 -0
  43. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/widget_edit_table.py +0 -0
  44. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/widget_mpnet_create_embeddings.py +0 -0
  45. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/widget_optimisation.py +0 -0
  46. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/widget_optimisationselection.py +0 -0
  47. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/widget_powfactory.py +0 -0
  48. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/widget_queryllm.py +0 -0
  49. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/widget_spacy_md_fr_lemmatizer.py +0 -0
  50. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/widget_traduction.py +0 -0
  51. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/audit_widget/widgets_model.py +0 -0
  52. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/encapsulation/__init__.py +0 -0
  53. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
  54. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
  55. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/MergeBaseLora.py +0 -0
  56. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/SERV_kill_workflow.py +0 -0
  57. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/SERV_requests.py +0 -0
  58. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/SERV_start_workflow.py +0 -0
  59. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/Tutorial_Finetuning.py +0 -0
  60. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py +0 -0
  61. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/__init__.py +0 -0
  62. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/chunking.py +0 -0
  63. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/embeddings.py +0 -0
  64. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/finetuning.py +0 -0
  65. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/functions_DatasetGeneration.py +0 -0
  66. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/functions_Finetuning.py +0 -0
  67. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/lemmes.py +0 -0
  68. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
  69. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/main_DatasetGeneration.py +0 -0
  70. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/main_Finetuning.py +0 -0
  71. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/process_documents.py +0 -0
  72. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
  73. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/quickpy.py +0 -0
  74. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/test.py +0 -0
  75. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/test_functions.py +0 -0
  76. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/llm/translations.py +0 -0
  77. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
  78. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
  79. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/CheckMetaData.py +0 -0
  80. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/MetManagement.py +0 -0
  81. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
  82. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/__init__.py +0 -0
  83. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
  84. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/check_data_in.py +0 -0
  85. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
  86. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/import_uic.py +0 -0
  87. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
  88. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/mac_utils.py +0 -0
  89. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
  90. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
  91. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
  92. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/thread_management.py +0 -0
  93. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
  94. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
  95. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
  96. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
  97. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
  98. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/utils/windows_utils.py +0 -0
  99. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +0 -0
  100. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWAddColumns.py +0 -0
  101. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
  102. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
  103. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
  104. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -0
  105. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
  106. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
  107. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWEditTable.py +0 -0
  108. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWEmptySwitch.py +0 -0
  109. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWEndLoop.py +0 -0
  110. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
  111. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWExtractTokens.py +0 -0
  112. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWFileMetadata.py +0 -0
  113. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWFileSyncChecker.py +0 -0
  114. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWFileWithPath.py +0 -0
  115. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +0 -0
  116. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWFusionNM.py +0 -0
  117. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +0 -0
  118. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
  119. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWGenerateWord.py +0 -0
  120. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWInputSelector.py +0 -0
  121. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWKeywordsDetection.py +0 -0
  122. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
  123. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
  124. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
  125. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWLoadDocuments.py +0 -0
  126. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +0 -0
  127. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
  128. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
  129. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
  130. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
  131. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
  132. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
  133. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +0 -0
  134. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
  135. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
  136. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
  137. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
  138. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
  139. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
  140. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
  141. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
  142. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
  143. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
  144. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
  145. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWQueryLLM.py +0 -0
  146. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
  147. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWReranking.py +0 -0
  148. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +0 -0
  149. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py +0 -0
  150. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py +0 -0
  151. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWStartLoop.py +0 -0
  152. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
  153. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
  154. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWTrigger.py +0 -0
  155. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/OWUnzipFolder.py +0 -0
  156. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
  157. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/__init__.py +0 -0
  158. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
  159. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +0 -0
  160. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
  161. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owaddcolumns.ui +0 -0
  162. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
  163. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
  164. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
  165. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
  166. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
  167. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owemptyswitch.ui +0 -0
  168. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
  169. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
  170. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +0 -0
  171. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owextracttokens.ui +0 -0
  172. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owfilemetadata.ui +0 -0
  173. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owfilesyncchecker.ui +0 -0
  174. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +0 -0
  175. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owfindfilesfromdir.ui +0 -0
  176. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owfusion_nm.ui +0 -0
  177. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owgenerate_word.ui +0 -0
  178. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
  179. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
  180. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
  181. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui +0 -0
  182. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
  183. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
  184. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owloaddocuments.ui +0 -0
  185. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
  186. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +0 -0
  187. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
  188. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
  189. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
  190. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
  191. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
  192. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
  193. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_2.5_32b.ui +0 -0
  194. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_1.5b_q6.ui +0 -0
  195. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_3b_q4.ui +0 -0
  196. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q4.ui +0 -0
  197. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q6.ui +0 -0
  198. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_qwencoder_7b.ui +0 -0
  199. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
  200. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
  201. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
  202. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
  203. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
  204. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
  205. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
  206. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owreranking.ui +0 -0
  207. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owsavewithpath.ui +0 -0
  208. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owselect_column_dynamic.ui +0 -0
  209. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui +0 -0
  210. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
  211. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
  212. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
  213. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
  214. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/designer/owunzipfolder.ui +0 -0
  215. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
  216. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
  217. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
  218. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
  219. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
  220. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
  221. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
  222. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/document_generator.png +0 -0
  223. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
  224. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
  225. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
  226. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
  227. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/input.png +0 -0
  228. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
  229. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
  230. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
  231. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
  232. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
  233. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
  234. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
  235. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
  236. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
  237. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
  238. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/models.png +0 -0
  239. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
  240. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
  241. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/output.png +0 -0
  242. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
  243. /aait-2.2.2.3/orangecontrib/AAIT/widgets/icons/owaccumulatator.png → /aait-2.2.4/orangecontrib/AAIT/widgets/icons/owaccumulator.png +0 -0
  244. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
  245. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
  246. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
  247. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
  248. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owemptyswitch.svg +0 -0
  249. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owenvinfo.png +0 -0
  250. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
  251. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owextracttokens.svg +0 -0
  252. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owfilemetadata.svg +0 -0
  253. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owfilesfromdir.svg +0 -0
  254. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owfilesyncchecker.svg +0 -0
  255. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
  256. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owfusion_nm.png +0 -0
  257. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
  258. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
  259. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owkeywords.png +0 -0
  260. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owkeywordsdetection.png +0 -0
  261. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
  262. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owloaddocuments.svg +0 -0
  263. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +0 -0
  264. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
  265. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +0 -0
  266. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +0 -0
  267. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
  268. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +0 -0
  269. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +0 -0
  270. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
  271. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
  272. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
  273. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owreranking.svg +0 -0
  274. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
  275. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owselectcolumndynamique.png +0 -0
  276. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
  277. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
  278. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
  279. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
  280. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
  281. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/select_dynamic_row.png +0 -0
  282. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
  283. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
  284. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
  285. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/AAIT/widgets/icons/zip.svg +0 -0
  286. {aait-2.2.2.3 → aait-2.2.4}/orangecontrib/__init__.py +0 -0
  287. {aait-2.2.2.3 → aait-2.2.4}/setup.cfg +0 -0
aait-2.2.4/PKG-INFO ADDED
@@ -0,0 +1,9 @@
1
+ Metadata-Version: 2.1
2
+ Name: aait
3
+ Version: 2.2.4
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
@@ -0,0 +1,9 @@
1
+ Metadata-Version: 2.1
2
+ Name: aait
3
+ Version: 2.2.4
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
@@ -65,6 +65,7 @@ orangecontrib/AAIT/utils/MetManagement.py
65
65
  orangecontrib/AAIT/utils/SimpleDialogQt.py
66
66
  orangecontrib/AAIT/utils/__init__.py
67
67
  orangecontrib/AAIT/utils/aait_repo_file.py
68
+ orangecontrib/AAIT/utils/base_widget.py
68
69
  orangecontrib/AAIT/utils/check_data_in.py
69
70
  orangecontrib/AAIT/utils/delta_local_shared_fodler.py
70
71
  orangecontrib/AAIT/utils/import_uic.py
@@ -137,6 +138,7 @@ orangecontrib/AAIT/widgets/OWReranking.py
137
138
  orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py
138
139
  orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py
139
140
  orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py
141
+ orangecontrib/AAIT/widgets/OWSortAndSelect.py
140
142
  orangecontrib/AAIT/widgets/OWStartLoop.py
141
143
  orangecontrib/AAIT/widgets/OWTable2Corpus.py
142
144
  orangecontrib/AAIT/widgets/OWTranslation.py
@@ -150,6 +152,7 @@ orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui
150
152
  orangecontrib/AAIT/widgets/designer/owaccumulator.ui
151
153
  orangecontrib/AAIT/widgets/designer/owaddcolumns.ui
152
154
  orangecontrib/AAIT/widgets/designer/owapplyrules.ui
155
+ orangecontrib/AAIT/widgets/designer/owchunkanalysis.ui
153
156
  orangecontrib/AAIT/widgets/designer/owchunking.ui
154
157
  orangecontrib/AAIT/widgets/designer/owconcatrules.ui
155
158
  orangecontrib/AAIT/widgets/designer/owconversellm.ui
@@ -157,6 +160,7 @@ orangecontrib/AAIT/widgets/designer/owembeddings.ui
157
160
  orangecontrib/AAIT/widgets/designer/owemptyswitch.ui
158
161
  orangecontrib/AAIT/widgets/designer/owendloop.ui
159
162
  orangecontrib/AAIT/widgets/designer/owexecutescript.ui
163
+ orangecontrib/AAIT/widgets/designer/owexecutescript_TEST.ui
160
164
  orangecontrib/AAIT/widgets/designer/owextrachunks.ui
161
165
  orangecontrib/AAIT/widgets/designer/owextracttokens.ui
162
166
  orangecontrib/AAIT/widgets/designer/owfilemetadata.ui
@@ -171,6 +175,7 @@ orangecontrib/AAIT/widgets/designer/owkeyword.ui
171
175
  orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui
172
176
  orangecontrib/AAIT/widgets/designer/owlangdetect.ui
173
177
  orangecontrib/AAIT/widgets/designer/owlemmatizer.ui
178
+ orangecontrib/AAIT/widgets/designer/owllm4all.ui
174
179
  orangecontrib/AAIT/widgets/designer/owloaddocuments.ui
175
180
  orangecontrib/AAIT/widgets/designer/owloadworkflow.ui
176
181
  orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui
@@ -207,10 +212,12 @@ orangecontrib/AAIT/widgets/icons/MDViewer.png
207
212
  orangecontrib/AAIT/widgets/icons/Mistral.png
208
213
  orangecontrib/AAIT/widgets/icons/apply_rules.svg
209
214
  orangecontrib/AAIT/widgets/icons/category.svg
215
+ orangecontrib/AAIT/widgets/icons/chunking_analysis.png
210
216
  orangecontrib/AAIT/widgets/icons/dark_green.txt
211
217
  orangecontrib/AAIT/widgets/icons/de.png
212
218
  orangecontrib/AAIT/widgets/icons/document_generator.png
213
219
  orangecontrib/AAIT/widgets/icons/documents.png
220
+ orangecontrib/AAIT/widgets/icons/edge_llm.svg
214
221
  orangecontrib/AAIT/widgets/icons/endloop.png
215
222
  orangecontrib/AAIT/widgets/icons/extra_chunks.png
216
223
  orangecontrib/AAIT/widgets/icons/in_or_out.png
@@ -230,7 +237,7 @@ orangecontrib/AAIT/widgets/icons/optimisation.png
230
237
  orangecontrib/AAIT/widgets/icons/optimizer.png
231
238
  orangecontrib/AAIT/widgets/icons/output.png
232
239
  orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg
233
- orangecontrib/AAIT/widgets/icons/owaccumulatator.png
240
+ orangecontrib/AAIT/widgets/icons/owaccumulator.png
234
241
  orangecontrib/AAIT/widgets/icons/owchunking.png
235
242
  orangecontrib/AAIT/widgets/icons/owconversellm.svg
236
243
  orangecontrib/AAIT/widgets/icons/owedittable.svg
@@ -263,6 +270,7 @@ orangecontrib/AAIT/widgets/icons/owqueryllm.svg
263
270
  orangecontrib/AAIT/widgets/icons/owreranking.svg
264
271
  orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg
265
272
  orangecontrib/AAIT/widgets/icons/owselectcolumndynamique.png
273
+ orangecontrib/AAIT/widgets/icons/owsortandselect.svg
266
274
  orangecontrib/AAIT/widgets/icons/owtable2corpus.svg
267
275
  orangecontrib/AAIT/widgets/icons/owtranslation.svg
268
276
  orangecontrib/AAIT/widgets/icons/owtrigger.svg
@@ -1,6 +1,9 @@
1
1
  import copy
2
2
  import os
3
- import GPUtil
3
+ try:
4
+ import GPUtil #sometimes errors occurs on gpu testing
5
+ except:
6
+ pass
4
7
  import psutil
5
8
  import ntpath
6
9
  import platform
@@ -44,50 +47,56 @@ def check_gpu(model_path, argself):
44
47
  argself.can_run = False
45
48
  argself.error("Model is not compatible. It must be a .gguf format.")
46
49
  return
47
- # Calculate the model size in MB with a 1500 MB buffer
48
- model_size = os.path.getsize(model_path) / (1024 ** 3) * 1000
49
- model_size += token_weight * int(argself.n_ctx)
50
- print(f"Required memory: {model_size/1000:.2f}GB")
51
- # If there is no GPU, set use_gpu to False
52
- if len(GPUtil.getGPUs()) == 0:
53
- argself.use_gpu = False
54
- argself.information("Running on CPU. No GPU detected.")
55
- return
56
- # Else
57
- else:
58
- # Get the available VRAM on the first GPU
59
- gpu = GPUtil.getGPUs()[0]
60
- free_vram = gpu.memoryFree
61
- # If there is not enough VRAM on GPU
62
- if free_vram < model_size:
63
- # Set use_gpu to False
64
- argself.use_gpu = False
65
- # Check for available RAM
66
- available_ram = psutil.virtual_memory().available / 1024 / 1024
67
- if available_ram < model_size:
68
- argself.can_run = False
69
- argself.error(f"Cannot run. Both GPU and CPU are too small for this model (required: {model_size/1000:.2f}GB).")
50
+ # sometimes errors occurs on gpu testing
51
+ try:
52
+ # Calculate the model size in MB with a 1500 MB buffer
53
+ model_size = os.path.getsize(model_path) / (1024 ** 3) * 1000
54
+ model_size += token_weight * int(argself.n_ctx)
55
+ print(f"Required memory: {model_size/1000:.2f}GB")
56
+ # If there is no GPU, set use_gpu to False
57
+ if len(GPUtil.getGPUs()) == 0:
58
+ argself.use_gpu = False
59
+ argself.information("Running on CPU. No GPU detected.")
70
60
  return
61
+ # Else
71
62
  else:
72
- argself.warning(f"Running on CPU. GPU seems to be too small for this model (available: {free_vram/1000:.2f}GB || required: {model_size/1000:.2f}GB).")
73
- return
74
- # If there is enough space on GPU
75
- else:
76
- try:
77
- # Load the model and test it
78
- # model = GPT4All(model_name=model_path, model_path=model_path, n_ctx=int(argself.n_ctx),
79
- # allow_download=False, device="cuda")
80
- # answer = model.generate("What if ?", max_tokens=3)
81
- # # If it works, set use_gpu to True
82
- argself.use_gpu = True
83
- argself.information("Running on GPU.")
84
- return
85
- # If importing Llama and reading the model doesn't work
86
- except Exception as e:
63
+ # Get the available VRAM on the first GPU
64
+ gpu = GPUtil.getGPUs()[0]
65
+ free_vram = gpu.memoryFree
66
+ # If there is not enough VRAM on GPU
67
+ if free_vram < model_size:
87
68
  # Set use_gpu to False
88
69
  argself.use_gpu = False
89
- argself.warning(f"GPU cannot be used. (detail: {e})")
90
- return
70
+ # Check for available RAM
71
+ available_ram = psutil.virtual_memory().available / 1024 / 1024
72
+ if available_ram < model_size:
73
+ argself.can_run = False
74
+ argself.error(f"Cannot run. Both GPU and CPU are too small for this model (required: {model_size/1000:.2f}GB).")
75
+ return
76
+ else:
77
+ argself.warning(f"Running on CPU. GPU seems to be too small for this model (available: {free_vram/1000:.2f}GB || required: {model_size/1000:.2f}GB).")
78
+ return
79
+ # If there is enough space on GPU
80
+ else:
81
+ try:
82
+ # Load the model and test it
83
+ # model = GPT4All(model_name=model_path, model_path=model_path, n_ctx=int(argself.n_ctx),
84
+ # allow_download=False, device="cuda")
85
+ # answer = model.generate("What if ?", max_tokens=3)
86
+ # # If it works, set use_gpu to True
87
+ argself.use_gpu = True
88
+ argself.information("Running on GPU.")
89
+ return
90
+ # If importing Llama and reading the model doesn't work
91
+ except Exception as e:
92
+ # Set use_gpu to False
93
+ argself.use_gpu = False
94
+ argself.warning(f"GPU cannot be used. (detail: {e})")
95
+ return
96
+ except:
97
+ argself.use_gpu = False
98
+ argself.warning(f"GPU cannot be used.")
99
+ return
91
100
 
92
101
 
93
102
  def load_model(model_path, use_gpu, n_ctx=10000):
@@ -224,7 +233,7 @@ def write_tokens_to_file(token: str, workflow_id=""):
224
233
  f.flush()
225
234
 
226
235
 
227
- def run_query(prompt, model, max_tokens=4096, temperature=0, top_p=0, top_k=40, repeat_penalty=1.15,
236
+ def run_query(prompt, model, max_tokens=4096, temperature=0.4, top_p=0.4, top_k=40, repeat_penalty=1.15,
228
237
  workflow_id="", argself=None, progress_callback=None):
229
238
  """
230
239
  Generates a response from a local LLM model using the given prompt, with support for streaming output
@@ -0,0 +1,173 @@
1
+ import os
2
+ from AnyQt.QtWidgets import QWidget, QVBoxLayout, QLineEdit, QListWidget, QListWidgetItem
3
+ from AnyQt.QtCore import pyqtSignal
4
+ import Orange
5
+ from Orange.widgets import gui, widget
6
+ from Orange.widgets.settings import Setting
7
+ from Orange.widgets.utils.signals import Input, Output
8
+
9
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
10
+ from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
11
+ else:
12
+ from orangecontrib.AAIT.utils.import_uic import uic
13
+
14
+
15
+ class BaseListWidget(widget.OWWidget):
16
+ """
17
+ Base Orange widget providing a filterable list of variables from the input data domain.
18
+
19
+ This class automatically:
20
+ - Adds a `FilterableVariableList` UI component.
21
+ - Handles input data and populates the list with variables.
22
+ - Restores the last selected variable (`selected_column_name`).
23
+
24
+ ______________________________________________________________________________________
25
+ How to use:
26
+ ⚠️ The linked .ui file **must include a `QWidget` named "placeholder"`**, where the
27
+ variable list will be inserted (see owexecutescript_TEST.ui).
28
+
29
+ 1. Inherit from `BaseListWidget` instead of `Orange.widgets.OWWidget`.
30
+ Your widget will automatically have the attribute `selected_column_name`.
31
+
32
+ 2. Use `selected_column_name` in your `run()` function to determine
33
+ which column should be processed. For example, check if it's in
34
+ `data.domain` or verify its type (e.g., `StringVariable`).
35
+
36
+ 3. Pass `selected_column_name` to any threaded function you use:
37
+ ```python
38
+ thread_management.Thread(self.my_function, self.data, self.selected_column_name)
39
+ ```
40
+
41
+ 4. Update your processing functions (e.g., `generate_answers`, `create_embeddings`,
42
+ `execute_scripts_in_table`) to accept the column name as an argument.
43
+
44
+ 5. Remove any `uic.loadUi(self.gui, self)` calls from your widget, as the UI is already loaded automatically by `BaseListWidget`.
45
+
46
+ 6. If you only need "Data" as input and "Data" as output, remove the Inputs, Outputs and set() methods from your widget.
47
+
48
+ 6. By default, your widget already handles "Data" as input and output.
49
+ You **must NOT** define the `Inputs`, `Outputs`, or `set_data()` methods
50
+ in your subclass, because they are already implemented in `BaseListWidget`.
51
+
52
+ ⚠️ Optional: Only if you truly need to customize input handling, you can
53
+ override the `set_data()` method. In that case, make sure to update
54
+ the `var_selector` (a `FilterableVariableList`) like this:
55
+
56
+ ```python
57
+ self.var_selector.add_variables(self.data.domain)
58
+ self.var_selector.select_variable_by_name(self.selected_column_name)
59
+ """
60
+ # Settings
61
+ selected_column_name = Setting("Default") # set the targeted column by default as "Default"
62
+
63
+ class Inputs:
64
+ data = Input("Data", Orange.data.Table)
65
+
66
+ class Outputs:
67
+ data = Output("Data", Orange.data.Table)
68
+
69
+ @Inputs.data
70
+ def set_data(self, in_data):
71
+ self.data = in_data
72
+ if self.data:
73
+ self.var_selector.add_variables(self.data.domain)
74
+ self.var_selector.select_variable_by_name(self.selected_column_name)
75
+ if self.autorun:
76
+ self.run()
77
+
78
+
79
+ def __init__(self):
80
+ super().__init__()
81
+ # Load the .ui file if defined
82
+ if self.gui and os.path.exists(self.gui):
83
+ uic.loadUi(self.gui, self)
84
+
85
+ # --- Insert filterable variable list ---
86
+ self.var_selector = FilterableVariableList(self)
87
+ placeholder = self.findChild(QWidget, "placeholder") # add a QWidget in your .ui
88
+ if placeholder:
89
+ self.var_selector.setParent(placeholder)
90
+ self.var_selector.setGeometry(0, 0, placeholder.width(), placeholder.height())
91
+ self.var_selector.show()
92
+ self.var_selector.selected_variable.connect(self.on_variable_selected)
93
+
94
+ # Data management
95
+ self.data = None
96
+ self.autorun = True
97
+
98
+
99
+ def on_variable_selected(self, var_name):
100
+ """Update the selected column when the user clicks an item."""
101
+ self.selected_column_name = var_name
102
+
103
+
104
+
105
+
106
+ # Widget Qt pour sélectionner des variables dans un widget Orange
107
+ class FilterableVariableList(QWidget):
108
+ """
109
+ A scrollable list of Orange variables with:
110
+ - Single selection
111
+ - Colored icons based on type
112
+ - Filter field at the top
113
+ """
114
+ selected_variable = pyqtSignal(str)
115
+
116
+ def __init__(self, parent=None):
117
+ super().__init__(parent)
118
+ self.all_vars = []
119
+
120
+ # Layout
121
+ self.layout = QVBoxLayout(self)
122
+ self.filter_edit = QLineEdit()
123
+ self.filter_edit.setPlaceholderText("Filter variables...")
124
+ self.layout.addWidget(self.filter_edit)
125
+
126
+ self.list_widget = QListWidget()
127
+ self.list_widget.setSelectionMode(QListWidget.SingleSelection)
128
+ self.layout.addWidget(self.list_widget)
129
+
130
+ # Connect filter
131
+ self.filter_edit.textChanged.connect(self.apply_filter)
132
+ # Connect variable selection
133
+ self.list_widget.itemSelectionChanged.connect(self.on_selection_changed)
134
+
135
+
136
+ def add_variables(self, variables):
137
+ """Store all variables and populate the list"""
138
+ self.all_vars = variables
139
+ self.populate_list(self.all_vars)
140
+
141
+ def populate_list(self, variables):
142
+ """Populate the QListWidget with items and icons using Orange standard icons"""
143
+ self.list_widget.clear()
144
+ if variables is not None:
145
+ for var in variables:
146
+ item = QListWidgetItem(var.name)
147
+ item.setIcon(gui.attributeIconDict[var]) # <-- standard Orange icon
148
+ self.list_widget.addItem(item)
149
+
150
+ def apply_filter(self, text):
151
+ """Filter the list based on input"""
152
+ text = text.lower()
153
+ filtered = [v for v in self.all_vars if text in v.name.lower()]
154
+ self.populate_list(filtered)
155
+
156
+ def on_selection_changed(self):
157
+ selected = self.get_selected_name()
158
+ if selected:
159
+ self.selected_variable.emit(selected)
160
+
161
+ def get_selected_name(self):
162
+ """Get the selected variable's name"""
163
+ selected_items = self.list_widget.selectedItems()
164
+ return selected_items[0].text() if selected_items else None
165
+
166
+ def select_variable_by_name(self, name):
167
+ """Select an item in the list by its variable name."""
168
+ for i in range(self.list_widget.count()):
169
+ item = self.list_widget.item(i)
170
+ if item.text() == name:
171
+ self.list_widget.setCurrentItem(item)
172
+ self.list_widget.scrollToItem(item) # optional: ensure it's visible
173
+ return
@@ -1,21 +1,10 @@
1
- import Orange.data
2
- from Orange.data import Table, Domain, Variable
3
- from orangewidget.widget import OWBaseWidget, Input, Output
4
- from orangewidget.utils.widgetpreview import WidgetPreview
5
- from orangewidget import gui
1
+ from orangewidget.widget import OWBaseWidget
6
2
  import sys
7
- # Les imports suivants ne sont pas utilisés dans le corps du widget Orange,
8
- # mais je les laisse car ils étaient dans votre base de code.
9
3
  import os
10
- import docx
11
- import pandas as pd
12
- import re
13
- import json
14
4
 
15
5
  from AnyQt.QtWidgets import QApplication
16
- from Orange.widgets import widget
17
6
  from Orange.widgets.utils.signals import Input, Output
18
- from Orange.data import Domain, StringVariable, Table, DiscreteVariable
7
+ from Orange.data import Domain, Table
19
8
 
20
9
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
21
10
  from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
@@ -57,14 +46,7 @@ class OWAccumulator(OWBaseWidget):
57
46
  uic.loadUi(self.gui, self)
58
47
 
59
48
  # Connexion du bouton 'pushButton_send' défini dans le .ui
60
- try:
61
- # Assurez-vous que votre bouton dans Qt Designer s'appelle 'pushButton_send'
62
- self.pushButton_send.clicked.connect(self.push)
63
- except AttributeError:
64
- # Fallback en cas d'échec de la connexion du bouton UI
65
- print("Error: Could not connect 'pushButton_send'. Using fallback GUI button.")
66
- box = gui.widgetBox(self.mainArea, orientation="vertical")
67
- gui.button(box, self, label="Send Accumulated Data and Purge (Fallback)", callback=self.push)
49
+ self.pushButton_send.clicked.connect(self.push)
68
50
 
69
51
  # --- Variables d'état ---
70
52
  self.data = None
@@ -157,6 +139,9 @@ class OWAccumulator(OWBaseWidget):
157
139
 
158
140
  if __name__ == "__main__":
159
141
  app = QApplication(sys.argv)
160
- my_widget = OWAccumulatator()
142
+ my_widget = OWAccumulator()
161
143
  my_widget.show()
162
- app.exec()
144
+ if hasattr(app, "exec"):
145
+ app.exec()
146
+ else:
147
+ app.exec_()
@@ -3,7 +3,7 @@ import re
3
3
  from typing import Any, Iterable, List, Set
4
4
  from pygments.formatters import HtmlFormatter
5
5
  import markdown
6
-
6
+ import sys
7
7
  # Dans la classe OWCorpusViewer, ajoutez les méthodes suivantes :
8
8
  import numpy as np
9
9
  from AnyQt.QtCore import (
@@ -829,15 +829,10 @@ class OWCorpusViewer(OWWidget, ConcurrentWidgetMixin):
829
829
  )
830
830
 
831
831
  if __name__ == "__main__":
832
- pass
833
- # from orangewidget.utils.widgetpreview import WidgetPreview
834
-
835
- # from orangecontrib.text.preprocess import BASE_TOKENIZER
836
-
837
- # corpus_ = Corpus.from_file(r"C:\Users\timot\Desktop\exemple sortie md.tab")
838
- # #corpus_ = Corpus.from_file("book-excerpts")
839
- # #corpus_ = corpus_[:3]
840
- # corpus_ = BASE_TOKENIZER(corpus_)
841
- # WidgetPreview(OWCorpusViewer).run(corpus_)
842
-
843
- # TODO: Implement a test that works on all platform.
832
+ app = QApplication(sys.argv)
833
+ obj = OWCorpusViewer()
834
+ obj.show()
835
+ if hasattr(app, "exec"):
836
+ app.exec()
837
+ else:
838
+ app.exec_()
@@ -9,16 +9,17 @@ import traceback
9
9
 
10
10
  import Orange.data
11
11
  from Orange.data import Table, Domain, StringVariable
12
- from AnyQt.QtWidgets import QApplication, QCheckBox, QPushButton
12
+ from AnyQt.QtWidgets import QApplication, QCheckBox, QPushButton, QWidget
13
13
  from AnyQt import QtWidgets, QtGui
14
14
  from Orange.widgets import widget
15
15
  from Orange.widgets.settings import Setting
16
16
  from Orange.widgets.utils.signals import Input, Output
17
17
 
18
+
18
19
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
19
20
  from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
20
21
  from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
21
- from Orange.widgets.orangecontrib.AAIT.utils import thread_management
22
+ from Orange.widgets.orangecontrib.AAIT.utils import thread_management, base_widget
22
23
  else:
23
24
  from orangecontrib.AAIT.utils.import_uic import uic
24
25
  from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
@@ -26,38 +27,41 @@ else:
26
27
 
27
28
 
28
29
  @apply_modification_from_python_file(filepath_original_widget=__file__)
29
- class OWExecuteScript(widget.OWWidget):
30
+ class OWExecuteScript(base_widget.BaseListWidget):
30
31
  name = "Execute Script"
31
32
  description = "Locally execute the scripts contained in the column 'Script'."
32
33
  category = "AAIT - TOOLBOX"
33
34
  icon = "icons/owexecutescript.svg"
34
35
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
35
36
  icon = "icons_dev/owexecutescript.svg"
36
- gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owexecutescript.ui")
37
+ gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owexecutescript_TEST.ui")
37
38
  want_control_area = False
38
39
  priority = 1060
39
40
 
40
41
  # Settings
41
42
  interactive = Setting(False)
42
43
 
43
- class Inputs:
44
- data = Input("Data", Orange.data.Table)
45
-
46
- class Outputs:
47
- data = Output("Data", Orange.data.Table)
48
-
49
- @Inputs.data
50
- def set_data(self, in_data):
51
- self.data = in_data
52
- if self.autorun:
53
- self.run()
44
+ # class Inputs:
45
+ # data = Input("Data", Orange.data.Table)
46
+ #
47
+ # class Outputs:
48
+ # data = Output("Data", Orange.data.Table)
49
+ #
50
+ # @Inputs.data
51
+ # def set_data(self, in_data):
52
+ # self.data = in_data
53
+ # if self.data:
54
+ # self.var_selector.add_variables(self.data.domain)
55
+ # self.var_selector.select_variable_by_name(self.selected_column_name)
56
+ # if self.autorun:
57
+ # self.run()
54
58
 
55
59
  def __init__(self):
56
60
  super().__init__()
57
61
  # Qt Management
58
62
  self.setFixedWidth(470)
59
- self.setFixedHeight(300)
60
- uic.loadUi(self.gui, self)
63
+ self.setFixedHeight(500)
64
+ # uic.loadUi(self.gui, self)
61
65
  # Checkbox
62
66
  self.checkbox_mode = self.findChild(QCheckBox, 'checkBox')
63
67
  self.checkbox_mode.setChecked(self.interactive)
@@ -69,6 +73,16 @@ class OWExecuteScript(widget.OWWidget):
69
73
  self.button_reset = self.findChild(QPushButton, "pushButton_2")
70
74
  self.button_reset.clicked.connect(self.reset_state)
71
75
 
76
+ # --- Insert filterable variable list ---
77
+ # self.var_selector = FilterableVariableList(self)
78
+ # placeholder = self.findChild(QWidget, "placeholder") # add a QWidget in your .ui
79
+ # if placeholder:
80
+ # self.var_selector.setParent(placeholder)
81
+ # self.var_selector.setGeometry(0, 0, placeholder.width(), placeholder.height())
82
+ # self.var_selector.show()
83
+ # self.var_selector.select_variable_by_name(self.selected_column_name)
84
+ # self.var_selector.selected_variable.connect(self.on_variable_selected)
85
+
72
86
  # Data Management
73
87
  self.data = None
74
88
  self.code = None
@@ -96,6 +110,10 @@ class OWExecuteScript(widget.OWWidget):
96
110
  popup = ScriptPopup(self.script_text, self)
97
111
  popup.exec_() # modal popup
98
112
 
113
+ # def on_variable_selected(self, var_name):
114
+ # """Update the selected column when the user clicks an item."""
115
+ # self.selected_column_name = var_name
116
+
99
117
 
100
118
  def run(self):
101
119
  self.warning("")
@@ -109,19 +127,29 @@ class OWExecuteScript(widget.OWWidget):
109
127
  if self.data is None:
110
128
  return
111
129
 
112
- if not "Script" in self.data.domain:
113
- self.error("You do not have a 'Script' column, nothing happened.")
130
+ if not self.selected_column_name in self.data.domain:
131
+ self.warning(f'Previously selected column "{self.selected_column_name}" does not exist in your data.')
132
+ return
133
+
134
+ if not isinstance(self.data.domain[self.selected_column_name], StringVariable):
135
+ self.error(f'You must select a text variable.')
114
136
  return
115
137
 
116
138
  # Start progress bar
117
139
  self.progressBarInit()
118
140
 
119
141
  # Thread management
120
- self.thread = thread_management.Thread(self.execute_scripts_in_table, self.data)
121
- self.thread.progress.connect(self.handle_progress)
122
- self.thread.result.connect(self.handle_result)
123
- self.thread.finish.connect(self.handle_finish)
124
- self.thread.start()
142
+ if self.interactive:
143
+ # Interactive mode: Run in main thread for GUI compatibility
144
+ self.result = self.execute_scripts_in_table(self.data, self.selected_column_name)
145
+ self.handle_result(self.result)
146
+ self.handle_finish()
147
+ else:
148
+ self.thread = thread_management.Thread(self.execute_scripts_in_table, self.data, self.selected_column_name)
149
+ self.thread.progress.connect(self.handle_progress)
150
+ self.thread.result.connect(self.handle_result)
151
+ self.thread.finish.connect(self.handle_finish)
152
+ self.thread.start()
125
153
 
126
154
 
127
155
  def handle_progress(self, value: float) -> None:
@@ -145,7 +173,7 @@ class OWExecuteScript(widget.OWWidget):
145
173
  pass
146
174
 
147
175
 
148
- def execute_scripts_in_table(self, table, progress_callback=None, argself=None):
176
+ def execute_scripts_in_table(self, table, selected_var, progress_callback=None, argself=None):
149
177
  # Copy of input data
150
178
  data = table.copy()
151
179
  attr_dom = list(data.domain.attributes)
@@ -160,7 +188,7 @@ class OWExecuteScript(widget.OWWidget):
160
188
  targets = [row[y] for y in class_dom]
161
189
  metas = list(data.metas[i])
162
190
  # Execute the script for the given row
163
- output, error = self.execute_script(row["Script"].value)
191
+ output, error = self.execute_script(row[selected_var].value)
164
192
  # Store the output / error
165
193
  new_row = features + targets + metas + [output, error]
166
194
  rows.append(new_row)
@@ -184,13 +212,15 @@ class OWExecuteScript(widget.OWWidget):
184
212
  if self.console is None:
185
213
  self.console = SmartConsole()
186
214
 
187
- self.script_text += f"\n\n{script}"
215
+ executable_code = f"exec({script!r})"
216
+ self.script_text += f"\n\n{script}" if self.script_text else script
217
+
188
218
 
189
219
  stdout, stderr = io.StringIO(), io.StringIO()
190
220
  with contextlib.redirect_stdout(stdout), contextlib.redirect_stderr(stderr):
191
221
  self.console.last_error = ""
192
222
  try:
193
- self.console.push(f"exec('''{script}''')")
223
+ self.console.push(executable_code)
194
224
  except Exception:
195
225
  pass # all errors are captured in showtraceback
196
226
 
@@ -216,6 +246,7 @@ class SmartConsole(code.InteractiveConsole):
216
246
  def __init__(self, *args, **kwargs):
217
247
  super().__init__(*args, **kwargs)
218
248
  self.last_error = ""
249
+ self.push("import matplotlib; matplotlib.use('QtAgg')")
219
250
 
220
251
  def push(self, line):
221
252
  if line.startswith("!pip "):
@@ -229,6 +260,8 @@ class SmartConsole(code.InteractiveConsole):
229
260
  self.last_error = traceback.format_exc()
230
261
 
231
262
 
263
+
264
+
232
265
  class PythonHighlighter(QtGui.QSyntaxHighlighter):
233
266
  def __init__(self, document):
234
267
  super().__init__(document)
@@ -301,7 +334,6 @@ class ScriptPopup(QtWidgets.QDialog):
301
334
 
302
335
 
303
336
 
304
-
305
337
  if __name__ == "__main__":
306
338
  app = QApplication(sys.argv)
307
339
  my_widget = OWExecuteScript()