aait 2.3.8__tar.gz → 2.3.8.2__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 (277) hide show
  1. aait-2.3.8.2/PKG-INFO +28 -0
  2. aait-2.3.8.2/aait.egg-info/PKG-INFO +28 -0
  3. {aait-2.3.8 → aait-2.3.8.2}/aait.egg-info/SOURCES.txt +7 -0
  4. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/prompt_management.py +38 -4
  5. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/MetManagement.py +12 -0
  6. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/base_widget.py +1 -0
  7. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/mac_utils.py +7 -6
  8. aait-2.3.8.2/orangecontrib/AAIT/utils/unlink_table_domain.py +26 -0
  9. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWEndLoop.py +4 -2
  10. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWInputSelector.py +7 -3
  11. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWKeywords.py +2 -2
  12. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWKeywordsDetection.py +50 -7
  13. aait-2.3.8.2/orangecontrib/AAIT/widgets/OWLargeLanguageModel.py +125 -0
  14. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWSortAndSelect.py +1 -2
  15. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWStartLoop.py +5 -3
  16. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWTrigger.py +1 -1
  17. aait-2.3.8.2/orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui +100 -0
  18. aait-2.3.8.2/orangecontrib/AAIT/widgets/designer/owlargelanguagemodel.ui +172 -0
  19. aait-2.3.8.2/orangecontrib/AAIT/widgets/icons/blue_down_arrow.svg +6 -0
  20. aait-2.3.8.2/orangecontrib/AAIT/widgets/icons/green_check.svg +3 -0
  21. aait-2.3.8.2/orangecontrib/AAIT/widgets/icons/owlargelanguagemodel.svg +25 -0
  22. {aait-2.3.8 → aait-2.3.8.2}/setup.py +1 -1
  23. aait-2.3.8/PKG-INFO +0 -9
  24. aait-2.3.8/aait.egg-info/PKG-INFO +0 -9
  25. aait-2.3.8/orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui +0 -54
  26. {aait-2.3.8 → aait-2.3.8.2}/License.txt +0 -0
  27. {aait-2.3.8 → aait-2.3.8.2}/aait.egg-info/dependency_links.txt +0 -0
  28. {aait-2.3.8 → aait-2.3.8.2}/aait.egg-info/entry_points.txt +0 -0
  29. {aait-2.3.8 → aait-2.3.8.2}/aait.egg-info/namespace_packages.txt +0 -0
  30. {aait-2.3.8 → aait-2.3.8.2}/aait.egg-info/requires.txt +0 -0
  31. {aait-2.3.8 → aait-2.3.8.2}/aait.egg-info/top_level.txt +0 -0
  32. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/__init__.py +0 -0
  33. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
  34. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
  35. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/MergeBaseLora.py +0 -0
  36. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/SERV_kill_workflow.py +0 -0
  37. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/SERV_requests.py +0 -0
  38. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/SERV_start_workflow.py +0 -0
  39. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/Tutorial_Finetuning.py +0 -0
  40. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py +0 -0
  41. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/__init__.py +0 -0
  42. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/answers.py +0 -0
  43. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/answers_llama.py +0 -0
  44. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/chunking.py +0 -0
  45. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/embeddings.py +0 -0
  46. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/finetuning.py +0 -0
  47. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/functions_DatasetGeneration.py +0 -0
  48. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/functions_Finetuning.py +0 -0
  49. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/lemmes.py +0 -0
  50. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
  51. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/main_DatasetGeneration.py +0 -0
  52. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/main_Finetuning.py +0 -0
  53. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/process_documents.py +0 -0
  54. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/quickpy.py +0 -0
  55. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/test.py +0 -0
  56. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/test_functions.py +0 -0
  57. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/llm/translations.py +0 -0
  58. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
  59. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
  60. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/OperationSystem.py +0 -0
  61. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
  62. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/__init__.py +0 -0
  63. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
  64. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/aait_table_viewer.py +0 -0
  65. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
  66. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/import_uic.py +0 -0
  67. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
  68. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
  69. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
  70. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
  71. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/thread_management.py +0 -0
  72. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
  73. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
  74. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
  75. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
  76. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
  77. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/utils/windows_utils.py +0 -0
  78. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +0 -0
  79. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWAccumulator.py +0 -0
  80. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWAddColumns.py +0 -0
  81. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
  82. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
  83. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
  84. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -0
  85. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
  86. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
  87. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWDisplayMD.py +0 -0
  88. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWEditTable.py +0 -0
  89. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWEmptySwitch.py +0 -0
  90. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWExecuteScript.py +0 -0
  91. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
  92. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWExtractTokens.py +0 -0
  93. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWFileMetadata.py +0 -0
  94. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWFileSyncChecker.py +0 -0
  95. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWFileWithPath.py +0 -0
  96. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +0 -0
  97. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWFusionNM.py +0 -0
  98. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +0 -0
  99. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
  100. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWGenerateWord.py +0 -0
  101. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWLLMEngine.py +0 -0
  102. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
  103. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
  104. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
  105. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWLoadDocuments.py +0 -0
  106. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +0 -0
  107. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +0 -0
  108. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
  109. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
  110. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
  111. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
  112. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
  113. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
  114. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +0 -0
  115. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
  116. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
  117. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
  118. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
  119. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
  120. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
  121. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
  122. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWOperationSystem.py +0 -0
  123. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
  124. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
  125. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
  126. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
  127. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWQueryLLM.py +0 -0
  128. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
  129. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWReranking.py +0 -0
  130. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +0 -0
  131. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py +0 -0
  132. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py +0 -0
  133. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
  134. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
  135. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/OWUnzipFolder.py +0 -0
  136. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
  137. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/__init__.py +0 -0
  138. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
  139. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/ow_OperationSystem.ui +0 -0
  140. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +0 -0
  141. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
  142. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owaccumulator.ui +0 -0
  143. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owaddcolumns.ui +0 -0
  144. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
  145. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owchunkanalysis.ui +0 -0
  146. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
  147. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
  148. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
  149. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owedgellm.ui +0 -0
  150. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
  151. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owemptyswitch.ui +0 -0
  152. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
  153. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
  154. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owexecutescript_TEST.ui +0 -0
  155. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +0 -0
  156. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owextracttokens.ui +0 -0
  157. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owfilemetadata.ui +0 -0
  158. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owfilesyncchecker.ui +0 -0
  159. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +0 -0
  160. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owfindfilesfromdir.ui +0 -0
  161. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owfusion_nm.ui +0 -0
  162. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owgenerate_word.ui +0 -0
  163. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
  164. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
  165. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
  166. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
  167. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
  168. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owllm4all.ui +0 -0
  169. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owloaddocuments.ui +0 -0
  170. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
  171. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +0 -0
  172. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
  173. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
  174. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
  175. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
  176. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
  177. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
  178. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_2.5_32b.ui +0 -0
  179. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_1.5b_q6.ui +0 -0
  180. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_3b_q4.ui +0 -0
  181. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q4.ui +0 -0
  182. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q6.ui +0 -0
  183. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwencoder_7b.ui +0 -0
  184. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
  185. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
  186. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
  187. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
  188. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
  189. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
  190. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
  191. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owreranking.ui +0 -0
  192. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owsavewithpath.ui +0 -0
  193. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owselect_column_dynamic.ui +0 -0
  194. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui +0 -0
  195. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owsortandselect.ui +0 -0
  196. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
  197. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
  198. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
  199. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
  200. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/designer/owunzipfolder.ui +0 -0
  201. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
  202. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
  203. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
  204. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
  205. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
  206. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/chunking_analysis.png +0 -0
  207. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
  208. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
  209. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/document_generator.png +0 -0
  210. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
  211. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/edge_llm.svg +0 -0
  212. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
  213. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
  214. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
  215. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/input.png +0 -0
  216. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
  217. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
  218. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
  219. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
  220. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
  221. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
  222. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
  223. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
  224. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
  225. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
  226. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/models.png +0 -0
  227. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/operationSystem.png +0 -0
  228. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
  229. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
  230. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/output.png +0 -0
  231. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
  232. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owaccumulator.png +0 -0
  233. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
  234. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
  235. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
  236. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
  237. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owemptyswitch.svg +0 -0
  238. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owenvinfo.png +0 -0
  239. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
  240. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owextracttokens.svg +0 -0
  241. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owfilemetadata.svg +0 -0
  242. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owfilesfromdir.svg +0 -0
  243. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owfilesyncchecker.svg +0 -0
  244. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
  245. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owfusion_nm.png +0 -0
  246. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
  247. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
  248. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owkeywords.png +0 -0
  249. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owkeywordsdetection.png +0 -0
  250. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
  251. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owloaddocuments.svg +0 -0
  252. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +0 -0
  253. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
  254. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +0 -0
  255. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +0 -0
  256. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
  257. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +0 -0
  258. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +0 -0
  259. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
  260. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
  261. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
  262. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owreranking.svg +0 -0
  263. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
  264. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owselectcolumndynamique.png +0 -0
  265. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owsortandselect.svg +0 -0
  266. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
  267. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
  268. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
  269. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
  270. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
  271. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/select_dynamic_row.png +0 -0
  272. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
  273. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
  274. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
  275. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/AAIT/widgets/icons/zip.svg +0 -0
  276. {aait-2.3.8 → aait-2.3.8.2}/orangecontrib/__init__.py +0 -0
  277. {aait-2.3.8 → aait-2.3.8.2}/setup.cfg +0 -0
aait-2.3.8.2/PKG-INFO ADDED
@@ -0,0 +1,28 @@
1
+ Metadata-Version: 2.1
2
+ Name: aait
3
+ Version: 2.3.8.2
4
+ Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
+ Home-page:
6
+ Author: Orange community
7
+ Author-email:
8
+ Keywords: orange3 add-on
9
+ License-File: License.txt
10
+ Requires-Dist: torch
11
+ Requires-Dist: sentence-transformers==5.0.0
12
+ Requires-Dist: gpt4all[all]==2.8.2
13
+ Requires-Dist: sacremoses==0.1.1
14
+ Requires-Dist: transformers==4.51.3
15
+ Requires-Dist: sentencepiece==0.2.0
16
+ Requires-Dist: optuna
17
+ Requires-Dist: spacy==3.7.6
18
+ Requires-Dist: markdown
19
+ Requires-Dist: python-multipart
20
+ Requires-Dist: PyMuPDF==1.24.14
21
+ Requires-Dist: chonkie==0.4.1
22
+ Requires-Dist: GPUtil==1.4.0
23
+ Requires-Dist: unidecode==1.3.8
24
+ Requires-Dist: python-docx==1.1.2
25
+ Requires-Dist: psutil
26
+ Requires-Dist: thefuzz==0.22.1
27
+ Requires-Dist: beautifulsoup4==4.12.3
28
+ Requires-Dist: CATEGORIT
@@ -0,0 +1,28 @@
1
+ Metadata-Version: 2.1
2
+ Name: aait
3
+ Version: 2.3.8.2
4
+ Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
+ Home-page:
6
+ Author: Orange community
7
+ Author-email:
8
+ Keywords: orange3 add-on
9
+ License-File: License.txt
10
+ Requires-Dist: torch
11
+ Requires-Dist: sentence-transformers==5.0.0
12
+ Requires-Dist: gpt4all[all]==2.8.2
13
+ Requires-Dist: sacremoses==0.1.1
14
+ Requires-Dist: transformers==4.51.3
15
+ Requires-Dist: sentencepiece==0.2.0
16
+ Requires-Dist: optuna
17
+ Requires-Dist: spacy==3.7.6
18
+ Requires-Dist: markdown
19
+ Requires-Dist: python-multipart
20
+ Requires-Dist: PyMuPDF==1.24.14
21
+ Requires-Dist: chonkie==0.4.1
22
+ Requires-Dist: GPUtil==1.4.0
23
+ Requires-Dist: unidecode==1.3.8
24
+ Requires-Dist: python-docx==1.1.2
25
+ Requires-Dist: psutil
26
+ Requires-Dist: thefuzz==0.22.1
27
+ Requires-Dist: beautifulsoup4==4.12.3
28
+ Requires-Dist: CATEGORIT
@@ -1,4 +1,5 @@
1
1
  License.txt
2
+ setup.cfg
2
3
  setup.py
3
4
  aait.egg-info/PKG-INFO
4
5
  aait.egg-info/SOURCES.txt
@@ -52,6 +53,7 @@ orangecontrib/AAIT/utils/shared_functions.py
52
53
  orangecontrib/AAIT/utils/shared_variables.py
53
54
  orangecontrib/AAIT/utils/subprocess_management.py
54
55
  orangecontrib/AAIT/utils/thread_management.py
56
+ orangecontrib/AAIT/utils/unlink_table_domain.py
55
57
  orangecontrib/AAIT/utils/windows_utils.py
56
58
  orangecontrib/AAIT/utils/tools/__init__.py
57
59
  orangecontrib/AAIT/utils/tools/change_owcorpus.py
@@ -88,6 +90,7 @@ orangecontrib/AAIT/widgets/OWKeywordsDetection.py
88
90
  orangecontrib/AAIT/widgets/OWLLMEngine.py
89
91
  orangecontrib/AAIT/widgets/OWLMStudio.py
90
92
  orangecontrib/AAIT/widgets/OWLanguageDetection.py
93
+ orangecontrib/AAIT/widgets/OWLargeLanguageModel.py
91
94
  orangecontrib/AAIT/widgets/OWLemmatizer.py
92
95
  orangecontrib/AAIT/widgets/OWLoadDocuments.py
93
96
  orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py
@@ -155,6 +158,7 @@ orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui
155
158
  orangecontrib/AAIT/widgets/designer/owkeyword.ui
156
159
  orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui
157
160
  orangecontrib/AAIT/widgets/designer/owlangdetect.ui
161
+ orangecontrib/AAIT/widgets/designer/owlargelanguagemodel.ui
158
162
  orangecontrib/AAIT/widgets/designer/owlemmatizer.ui
159
163
  orangecontrib/AAIT/widgets/designer/owllm4all.ui
160
164
  orangecontrib/AAIT/widgets/designer/owloaddocuments.ui
@@ -193,6 +197,7 @@ orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg
193
197
  orangecontrib/AAIT/widgets/icons/MDViewer.png
194
198
  orangecontrib/AAIT/widgets/icons/Mistral.png
195
199
  orangecontrib/AAIT/widgets/icons/apply_rules.svg
200
+ orangecontrib/AAIT/widgets/icons/blue_down_arrow.svg
196
201
  orangecontrib/AAIT/widgets/icons/category.svg
197
202
  orangecontrib/AAIT/widgets/icons/chunking_analysis.png
198
203
  orangecontrib/AAIT/widgets/icons/dark_green.txt
@@ -202,6 +207,7 @@ orangecontrib/AAIT/widgets/icons/documents.png
202
207
  orangecontrib/AAIT/widgets/icons/edge_llm.svg
203
208
  orangecontrib/AAIT/widgets/icons/endloop.png
204
209
  orangecontrib/AAIT/widgets/icons/extra_chunks.png
210
+ orangecontrib/AAIT/widgets/icons/green_check.svg
205
211
  orangecontrib/AAIT/widgets/icons/in_or_out.png
206
212
  orangecontrib/AAIT/widgets/icons/input.png
207
213
  orangecontrib/AAIT/widgets/icons/languages.png
@@ -238,6 +244,7 @@ orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg
238
244
  orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png
239
245
  orangecontrib/AAIT/widgets/icons/owkeywords.png
240
246
  orangecontrib/AAIT/widgets/icons/owkeywordsdetection.png
247
+ orangecontrib/AAIT/widgets/icons/owlargelanguagemodel.svg
241
248
  orangecontrib/AAIT/widgets/icons/owlemmatizer.svg
242
249
  orangecontrib/AAIT/widgets/icons/owloaddocuments.svg
243
250
  orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg
@@ -35,13 +35,48 @@ prompt_templates = {
35
35
  {user_prompt}<|im_end|>
36
36
  <|im_start|>assistant
37
37
  {assistant_prompt}""",
38
+
39
+
40
+
41
+
42
+ "gemma":
43
+ """<start_of_turn>user
44
+ {user_prompt}<end_of_turn>
45
+ <start_of_turn>model
46
+ {assistant_prompt}
47
+ """,
48
+
49
+
50
+
51
+ "granite":
52
+ """<|system|>
53
+ {system_prompt}
54
+ <|user|>
55
+ {user_prompt}
56
+ <|assistant|>
57
+ {assistant_prompt}
58
+ """,
59
+
60
+
61
+
62
+ "phi":
63
+ """<|im_start|>system<|im_sep|>
64
+ {system_prompt}<|im_end|>
65
+ <|im_start|>user<|im_sep|>
66
+ {user_prompt}<|im_end|>
67
+ <|im_start|>assistant<|im_sep|>
68
+ {assistant_prompt}
69
+ """
38
70
  }
39
71
 
40
72
 
41
73
  stop_tokens = {
42
74
  "llama": "<|eot_id|>",
43
75
  "mistral": "</s>",
44
- "qwen": "<|im_end|>"
76
+ "qwen": "<|im_end|>",
77
+ "gemma": "<end_of_turn>",
78
+ "granite": "<|endoftext|>",
79
+ "phi": "<|im_end|>"
45
80
  }
46
81
 
47
82
 
@@ -54,7 +89,7 @@ model_types = {
54
89
  "deepseek-coder-6.7b-instruct.Q6_K.gguf": "deepseek"
55
90
  }
56
91
 
57
- model_keywords = ["qwen", "solar", "mistral", "llama", "deepseek"]
92
+ model_keywords = ["qwen", "solar", "mistral", "llama", "deepseek", "gemma", "granite", "phi"]
58
93
 
59
94
  def apply_prompt_template(model_name, user_prompt, assistant_prompt="", system_prompt=""):
60
95
  """
@@ -72,14 +107,13 @@ def apply_prompt_template(model_name, user_prompt, assistant_prompt="", system_p
72
107
  model_name = os.path.basename(model_name)
73
108
  model_type = model_types.get(model_name)
74
109
  if model_type is None:
75
- model_type = next((keyword for keyword in model_keywords if keyword in model_name.lower()), "solar")
110
+ model_type = next((keyword for keyword in model_keywords if keyword in model_name.lower()))
76
111
 
77
112
  # Retrieve the template and inject the prompts
78
113
  template = prompt_templates.get(model_type, "{user_prompt}") # Default template if none found
79
114
  # Format the template
80
115
  prompt = template.format(user_prompt=user_prompt, assistant_prompt=assistant_prompt, system_prompt=system_prompt)
81
116
  return prompt
82
- # If the definitions exist in the dicts
83
117
 
84
118
 
85
119
  def get_stop_token(model_name):
@@ -458,8 +458,20 @@ def get_local_store_path():
458
458
  none_standard_path = sys.executable.replace("\\", "/")
459
459
  none_standard_path = os.path.dirname(none_standard_path)
460
460
  none_standard_path = os.path.dirname(none_standard_path)+"/aait_store/"
461
+
462
+
463
+
464
+
461
465
  if os.path.isfile(none_standard_path+"remote_ressources_path.txt"):
462
466
  store_ia_path=none_standard_path
467
+ elif os.path.isdir(none_standard_path):
468
+ try:
469
+ with open(none_standard_path + '/remote_ressources_path.txt', 'w'):
470
+ pass
471
+ store_ia_path=none_standard_path
472
+ except:
473
+ SimpleDialogQt.BoxError("error impossible to write file :" + none_standard_path)
474
+ raise Exception("error impossible to write file :" + none_standard_path)
463
475
 
464
476
  if not os.path.exists(store_ia_path):
465
477
  # Create a new directory because it does not exist
@@ -53,6 +53,7 @@ class BaseListWidget(widget.OWWidget):
53
53
  ```python
54
54
  self.var_selector.add_variables(self.data.domain)
55
55
  self.var_selector.select_variable_by_name(self.selected_column_name)
56
+ ```
56
57
  """
57
58
  # Settings
58
59
  selected_column_name = Setting("Default") # set the targeted column by default as "Default"
@@ -1,5 +1,6 @@
1
1
  import platform
2
2
 
3
+
3
4
  if platform.system() == "Darwin":
4
5
  import os
5
6
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
@@ -9,12 +10,12 @@ if platform.system() == "Darwin":
9
10
  import sys
10
11
  import time
11
12
  import shutil
12
- from pathlib import Path
13
13
  import subprocess
14
+ import re
14
15
 
15
16
  from AnyQt.QtCore import QObject, QThread, Signal, Slot, Qt
16
17
  from AnyQt.QtWidgets import (
17
- QApplication, QDialog, QVBoxLayout, QLabel, QProgressBar, QPushButton, QMessageBox
18
+ QApplication,QDialog, QVBoxLayout, QLabel, QProgressBar, QPushButton, QMessageBox
18
19
  )
19
20
 
20
21
 
@@ -468,7 +469,7 @@ if platform.system() == "Darwin":
468
469
 
469
470
 
470
471
 
471
- if __name__ == "__main__":
472
- import sys
473
- from AnyQt.QtWidgets import QApplication
474
- app = QApplication(sys.argv)
472
+ # if __name__ == "__main__":
473
+ # from AnyQt.QtWidgets import QApplication
474
+ # import sys
475
+ # app = QApplication(sys.argv)
@@ -0,0 +1,26 @@
1
+ from Orange.data import Table, Domain, Instance
2
+
3
+
4
+ def unlink_domain(table: Table) -> Table:
5
+ dom = table.domain
6
+
7
+ # Recrée les variables sans compute_value
8
+ new_attrs = [v.copy(compute_value=None) for v in dom.attributes]
9
+ new_cls = [v.copy(compute_value=None) for v in dom.class_vars]
10
+ new_metas = [v.copy(compute_value=None) for v in dom.metas]
11
+ new_domain = Domain(new_attrs, new_cls, new_metas)
12
+
13
+ instances = []
14
+ for row in table:
15
+ # on évalue toutes les valeurs ici (les compute_value sont calculés)
16
+ attr_vals = [row[v] for v in dom.attributes]
17
+ cls_vals = [row[v] for v in dom.class_vars]
18
+ inst = Instance(new_domain, attr_vals + cls_vals)
19
+
20
+ # on renseigne les métas via l’indexation
21
+ for old_m, new_m in zip(dom.metas, new_metas):
22
+ inst[new_m] = row[old_m]
23
+
24
+ instances.append(inst)
25
+
26
+ return Table.from_list(new_domain, instances)
@@ -7,8 +7,10 @@ from Orange.data import Table
7
7
 
8
8
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
9
9
  from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
10
+ from Orange.widgets.orangecontrib.AAIT.utils.unlink_table_domain import unlink_domain
10
11
  else:
11
12
  from orangecontrib.AAIT.utils.import_uic import uic
13
+ from orangecontrib.AAIT.utils.unlink_table_domain import unlink_domain
12
14
 
13
15
  class EndLoopWidget(OWWidget):
14
16
  name = "End Loop"
@@ -64,9 +66,9 @@ class EndLoopWidget(OWWidget):
64
66
  # cas ou on boucle sur le nombre de ligne en entrée du workflow
65
67
  if "True" == self.iter_of_line_number_from_start():
66
68
  if self.out_data is None:
67
- self.out_data = self.data
69
+ self.out_data = unlink_domain(self.data)
68
70
  else:
69
- self.out_data = Table.concatenate([self.out_data, self.data])
71
+ self.out_data = Table.concatenate([self.out_data, unlink_domain(self.data)])
70
72
 
71
73
  if self.get_nb_line_from_start() == self.get_iter():
72
74
  # on s'arrete
@@ -1,7 +1,7 @@
1
1
  import os
2
2
  from AnyQt.QtWidgets import QPushButton, QApplication, QRadioButton, QComboBox,QCheckBox,QLineEdit
3
-
4
3
  import sys
4
+
5
5
  from Orange.widgets.settings import Setting
6
6
  from Orange.widgets.widget import OWWidget, Output, Input
7
7
  from Orange.data import Table, Domain, StringVariable
@@ -307,7 +307,11 @@ class OWInputSelector(OWWidget):
307
307
  self.launch_fucntionalities()
308
308
 
309
309
  def update_line_edit_setting(self):
310
- self.line_edit_value=MetManagement.TransfromPathToStorePath(str(self.lineEdit.text()))
310
+ def strip_quotes(s: str) -> str:
311
+ if len(s) >= 1 and s[0] == s[-1] and s[0] in ("'", '"'):
312
+ return s[1:-1]
313
+ return s
314
+ self.line_edit_value=MetManagement.TransfromPathToStorePath(strip_quotes(str(self.lineEdit.text())))
311
315
  if (len(self.line_edit_value)) == 0:
312
316
  self.radioButton.setEnabled(True)
313
317
  self.radioButton2.setEnabled(True)
@@ -475,7 +479,7 @@ class OWInputSelector(OWWidget):
475
479
 
476
480
  # Test standalone
477
481
  if __name__ == "__main__":
478
- import sys
482
+
479
483
  app = QApplication(sys.argv)
480
484
  window = OWInputSelector()
481
485
  window.show()
@@ -80,10 +80,10 @@ class KeywordWorker(QObject):
80
80
  class OWKeywords(widget.OWWidget):
81
81
  name = "Keywords Detection"
82
82
  description = "Give the amount of keywords from in_object in in_data"
83
- icon = "icons/keywords.png"
83
+ icon = "icons/owkeywords.png"
84
84
  category = "AAIT - LLM INTEGRATION"
85
85
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
86
- icon = "icons_dev/keywords.png"
86
+ icon = "icons_dev/owkeywords.png"
87
87
  gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owkeyword.ui")
88
88
  want_control_area = False
89
89
  priority = 1050
@@ -6,7 +6,8 @@ from Orange.widgets import widget
6
6
  from Orange.widgets.utils.signals import Input, Output
7
7
  from Orange.data import ContinuousVariable
8
8
  from thefuzz import fuzz
9
- from AnyQt.QtWidgets import QApplication
9
+ from AnyQt.QtWidgets import QApplication, QComboBox
10
+ from Orange.widgets.settings import Setting
10
11
 
11
12
  # Import intelligent selon contexte
12
13
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
@@ -28,9 +29,12 @@ class OWKeywordsDetection(widget.OWWidget):
28
29
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
29
30
  icon = "icons_dev/owkeywordsdetection.png"
30
31
  gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owkeywordsdetection.ui")
31
- want_control_area = True
32
+ want_control_area = False
32
33
  priority = 1071
33
34
 
35
+ # Settings
36
+ mode = Setting("Fuzzy")
37
+
34
38
  class Inputs:
35
39
  data = Input("Data", Orange.data.Table)
36
40
  keywords = Input("Keywords", Orange.data.Table)
@@ -54,10 +58,14 @@ class OWKeywordsDetection(widget.OWWidget):
54
58
  def __init__(self):
55
59
  super().__init__()
56
60
  # Qt Management
57
- self.setFixedWidth(700)
58
- self.setFixedHeight(700)
61
+ self.setFixedWidth(470)
62
+ self.setFixedHeight(300)
59
63
  uic.loadUi(self.gui, self)
60
64
 
65
+ self.combobox_mode = self.findChild(QComboBox, "comboBox")
66
+ self.combobox_mode.setCurrentIndex(self.combobox_mode.findText(self.mode))
67
+ self.combobox_mode.currentTextChanged.connect(self.on_mode_changed)
68
+
61
69
  # Data Management
62
70
  self.data = None
63
71
  self.keywords = None
@@ -68,6 +76,10 @@ class OWKeywordsDetection(widget.OWWidget):
68
76
  # Custom updates
69
77
  self.post_initialized()
70
78
 
79
+ def on_mode_changed(self, text):
80
+ self.mode = text
81
+ self.run()
82
+
71
83
 
72
84
  def run(self):
73
85
  self.error("")
@@ -103,7 +115,7 @@ class OWKeywordsDetection(widget.OWWidget):
103
115
  # --> progress is used in the main function to track progress (with a callback)
104
116
  # --> result is used to collect the result from main function
105
117
  # --> finish is just an empty signal to indicate that the thread is finished
106
- self.thread = thread_management.Thread(compute_keywords_on_table, self.data, self.keywords)
118
+ self.thread = thread_management.Thread(compute_keywords_on_table, self.data, self.keywords, self.mode)
107
119
  self.thread.progress.connect(self.handle_progress)
108
120
  self.thread.result.connect(self.handle_result)
109
121
  self.thread.finish.connect(self.handle_finish)
@@ -130,7 +142,7 @@ class OWKeywordsDetection(widget.OWWidget):
130
142
 
131
143
 
132
144
 
133
- def compute_keywords_on_table(table, keywords, progress_callback=None, argself=None):
145
+ def compute_keywords_on_table(table, keywords, mode="Fuzzy", progress_callback=None, argself=None):
134
146
  """
135
147
  Compute fuzzy match scores between table rows and a list of keywords,
136
148
  and add them as a new meta column.
@@ -138,6 +150,7 @@ def compute_keywords_on_table(table, keywords, progress_callback=None, argself=N
138
150
  Args:
139
151
  table (Orange.data.Table): Input table with a "content" column.
140
152
  keywords (Orange.data.Table): Table with a "keywords" column.
153
+ mode (str): Type of keyword search, "Fuzzy" or "Strict".
141
154
  progress_callback (callable, optional): Function called with progress (0–100).
142
155
  argself (object, optional): If has attribute `stop=True`, stops processing early.
143
156
 
@@ -154,7 +167,12 @@ def compute_keywords_on_table(table, keywords, progress_callback=None, argself=N
154
167
  # Iterate over each row in the copied table
155
168
  for i, row in enumerate(data):
156
169
  content = row["content"].value # Text from the 'content' column
157
- score = fuzzy_match_score(content, keywords_list) # Compute similarity score
170
+ score = 0
171
+ if mode == "Fuzzy":
172
+ score = fuzzy_match_score(content, keywords_list) # Compute similarity score
173
+ elif mode == "Strict":
174
+ score = strict_match_score(content, keywords_list)
175
+
158
176
  scores.append(score)
159
177
 
160
178
  # Update progress if a progress callback is provided
@@ -202,6 +220,31 @@ def fuzzy_match_score(text, keywords_list):
202
220
  return total_score / len(keywords_list) # Normalize score
203
221
 
204
222
 
223
+ def strict_match_score(text, keywords_list):
224
+ """
225
+ Checks if keywords are present in text using exact matching
226
+ and returns a global score (0 or 100).
227
+
228
+ Args:
229
+ text (str): The full text to search in.
230
+ keywords_list (list): List of keywords to find.
231
+
232
+ Returns:
233
+ float: Global match score (0-100).
234
+ """
235
+ keywords_list = list(filter(None, keywords_list))
236
+ if len(keywords_list) == 0:
237
+ return 0.0
238
+
239
+ # Normalize text and split into words
240
+ words = set(text.lower().split())
241
+
242
+ matches = sum(1 for keyword in keywords_list if keyword.lower() in words)
243
+ score = (matches / len(keywords_list)) * 100
244
+ return score
245
+
246
+
247
+
205
248
 
206
249
  if __name__ == "__main__":
207
250
  app = QApplication(sys.argv)
@@ -0,0 +1,125 @@
1
+ import os
2
+ import sys
3
+
4
+ from AnyQt.QtWidgets import QApplication, QComboBox
5
+ from AnyQt.QtCore import Qt
6
+ from AnyQt.QtGui import QIcon
7
+ from Orange.widgets import widget
8
+ from Orange.widgets.utils.signals import Output
9
+ from Orange.widgets.settings import Setting
10
+
11
+
12
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
13
+ from orangecontrib.AAIT.utils import SimpleDialogQt
14
+ from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
15
+ from Orange.widgets.orangecontrib.AAIT.utils.MetManagement import GetFromRemote, get_local_store_path
16
+ from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
17
+ else:
18
+ from orangecontrib.AAIT.utils import SimpleDialogQt
19
+ from orangecontrib.AAIT.utils.import_uic import uic
20
+ from orangecontrib.AAIT.utils.MetManagement import GetFromRemote, get_local_store_path
21
+ from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
22
+
23
+
24
+ model_names = {
25
+ "Qwen3 1.7B": "Qwen3-1.7B-Q6_K.gguf",
26
+ "Qwen3 4B": "Qwen3-4B-Q4_K_M.gguf",
27
+ "Qwen3 8B": "Qwen3-8B-Q4_K_M.gguf",
28
+ "Qwen3 14B": "Qwen3-14B-Q4_K_M.gguf",
29
+ "Granite4 7B": "granite-4.0-h-tiny-Q4_K_M.gguf",
30
+ "Phi4 4B": "Phi-4-mini-reasoning-Q4_K_M.gguf",
31
+ "Gemma3 12B": "gemma-3-12b-it-Q4_K_M.gguf",
32
+ "Deepseek 8B": "DeepSeek-R1-0528-Qwen3-8B-Q4_K_M.gguf"
33
+ }
34
+
35
+
36
+ @apply_modification_from_python_file(filepath_original_widget=__file__)
37
+ class OWLargeLanguageModel(widget.OWWidget):
38
+ name = "Large Language Model"
39
+ description = "Load a large language model (Qwen, Gemma, Phi...) for Engine LLM."
40
+ category = "AAIT - MODELS"
41
+ icon = "icons/owlargelanguagemodel.svg"
42
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
43
+ icon = "icons_dev/owlargelanguagemodel.svg"
44
+ gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owlargelanguagemodel.ui")
45
+ priority=1093
46
+ want_control_area = False
47
+
48
+ # Settings
49
+ model_name = Setting("Qwen3 8B")
50
+
51
+ class Outputs:
52
+ out_model_path = Output("Model", str, auto_summary=False)
53
+
54
+ def __init__(self):
55
+ super().__init__()
56
+ # Qt Management
57
+ self.setFixedWidth(470)
58
+ self.setFixedHeight(300)
59
+ uic.loadUi(self.gui, self)
60
+ ## Combobox for model choice
61
+ self.combobox_model = self.findChild(QComboBox, "comboBox")
62
+ self.display_local_models()
63
+ self.combobox_model.setCurrentIndex(self.combobox_model.findText(self.model_name))
64
+ self.combobox_model.currentTextChanged.connect(self.on_model_changed)
65
+
66
+ # Run
67
+ self.run()
68
+
69
+
70
+ def on_model_changed(self, text):
71
+ self.model_name = text
72
+ self.run()
73
+
74
+ def display_local_models(self):
75
+ local_store_path = get_local_store_path()
76
+
77
+ # Prepare your icons
78
+ icon_check = QIcon(os.path.join(os.path.dirname(os.path.abspath(__file__)), "icons/green_check.svg")) # green check
79
+ icon_down_body = QIcon(os.path.join(os.path.dirname(os.path.abspath(__file__)), "icons/blue_down_arrow.svg")) # blue arrow
80
+
81
+ for i in range(self.combobox_model.count()):
82
+ item = self.combobox_model.model().item(i)
83
+ filename = model_names[item.text()]
84
+ path = os.path.join(local_store_path, "Models", "NLP", filename)
85
+
86
+ if os.path.exists(path):
87
+ item.setForeground(Qt.black)
88
+ item.setIcon(icon_check)
89
+ else:
90
+ item.setForeground(Qt.gray)
91
+ item.setIcon(icon_down_body)
92
+
93
+
94
+ def run(self):
95
+ self.error("")
96
+ self.warning("")
97
+
98
+ # Get the model path based on the selected name
99
+ filename = model_names[self.model_name]
100
+ model_path = os.path.join(get_local_store_path(), "Models", "NLP", filename)
101
+
102
+ # Verify if model exists
103
+ if not os.path.exists(model_path):
104
+ if not SimpleDialogQt.BoxYesNo("Model isn't in your computer. Do you want to download it from AAIT store ?"):
105
+ self.error("Model is not on your computer.")
106
+ return
107
+ try:
108
+ if 0 != GetFromRemote(self.model_name):
109
+ self.error("Model is not on your computer.")
110
+ return
111
+ except Exception as e:
112
+ SimpleDialogQt.BoxError(f"Unable to get the Model ({e})")
113
+ self.error("Model is not on your computer.")
114
+ return
115
+ self.Outputs.out_model_path.send(model_path)
116
+
117
+
118
+ if __name__ == "__main__":
119
+ app = QApplication(sys.argv)
120
+ my_widget = OWLargeLanguageModel()
121
+ my_widget.show()
122
+ if hasattr(app, "exec"):
123
+ app.exec()
124
+ else:
125
+ app.exec_()
@@ -3,10 +3,9 @@ import sys
3
3
  import numpy as np
4
4
 
5
5
  import Orange.data
6
- from AnyQt.QtWidgets import QApplication, QCheckBox, QSpinBox
6
+ from AnyQt.QtWidgets import QApplication, QCheckBox, QSpinBox, QComboBox
7
7
  from Orange.widgets.settings import Setting
8
8
  from Orange.widgets.utils.signals import Input, Output
9
- from AnyQt.QtWidgets import QComboBox
10
9
 
11
10
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
12
11
  from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
@@ -11,9 +11,11 @@ from AnyQt.QtWidgets import QCheckBox, QPushButton
11
11
 
12
12
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
13
13
  from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
14
+ from Orange.widgets.orangecontrib.AAIT.utils.unlink_table_domain import unlink_domain
15
+
14
16
  else:
15
17
  from orangecontrib.AAIT.utils.import_uic import uic
16
-
18
+ from orangecontrib.AAIT.utils.unlink_table_domain import unlink_domain
17
19
 
18
20
  class LoopStartWidget(OWWidget):
19
21
  name = "Loop Start"
@@ -158,7 +160,7 @@ class LoopStartWidget(OWWidget):
158
160
  def execute_iter_of_line_number(self):
159
161
  table = Table.from_table(domain=self.data.domain, source=self.data, row_indices=[self.iter])
160
162
  self.iter += 1
161
- self.Outputs.data_out.send(table)
163
+ self.Outputs.data_out.send(unlink_domain(table))
162
164
 
163
165
  def get_column_name_and_type(self):
164
166
  """Return the name and type of 'data_in' to be called from another widget."""
@@ -180,7 +182,7 @@ class LoopStartWidget(OWWidget):
180
182
  """Main process executed when data is available."""
181
183
  if self.data is not None:
182
184
  #new_data=copy.deepcopy(self.data)
183
- self.Outputs.data_out.send(self.data) # Envoie les données en sortie
185
+ self.Outputs.data_out.send(unlink_domain(self.data)) # Envoie les données en sortie
184
186
  else:
185
187
  print("No data sent.")
186
188
 
@@ -28,7 +28,7 @@ class OWTrigger(widget.OWWidget):
28
28
 
29
29
  class Inputs:
30
30
  data = Input("Data", Orange.data.Table)
31
- trigger = Input("Trigger", Orange.data.Table)
31
+ trigger = Input("Trigger",object)
32
32
 
33
33
  class Outputs:
34
34
  data = Output("Data", Orange.data.Table)