AAIT 2.2.2.2__tar.gz → 2.2.6__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.
- {aait-2.2.2.2 → aait-2.2.6}/PKG-INFO +1 -1
- {aait-2.2.2.2 → aait-2.2.6}/aait.egg-info/PKG-INFO +1 -1
- {aait-2.2.2.2 → aait-2.2.6}/aait.egg-info/SOURCES.txt +15 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/answers.py +50 -41
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/process_documents.py +58 -5
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/MetManagement.py +13 -0
- aait-2.2.6/orangecontrib/AAIT/utils/base_widget.py +173 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/windows_utils.py +158 -114
- aait-2.2.6/orangecontrib/AAIT/widgets/OWAccumulator.py +147 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWDisplayMD.py +8 -13
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWEditTable.py +2 -2
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWEmptySwitch.py +0 -1
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWExecuteScript.py +62 -34
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWFileMetadata.py +32 -33
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWFileSyncChecker.py +9 -9
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWFileWithPath.py +5 -6
- aait-2.2.6/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +335 -0
- aait-2.2.6/orangecontrib/AAIT/widgets/OWFusionNM.py +410 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +3 -3
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWKeywords.py +5 -1
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWKeywordsDetection.py +5 -1
- aait-2.2.6/orangecontrib/AAIT/widgets/OWLoadDocuments.py +125 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +4 -1
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWQueryLLM.py +3 -3
- aait-2.2.6/orangecontrib/AAIT/widgets/OWSortAndSelect.py +194 -0
- aait-2.2.6/orangecontrib/AAIT/widgets/designer/owaccumulator.ui +83 -0
- aait-2.2.6/orangecontrib/AAIT/widgets/designer/owchunkanalysis.ui +64 -0
- aait-2.2.6/orangecontrib/AAIT/widgets/designer/owexecutescript_TEST.ui +210 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +14 -1
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owfindfilesfromdir.ui +77 -6
- aait-2.2.6/orangecontrib/AAIT/widgets/designer/owllm4all.ui +54 -0
- aait-2.2.6/orangecontrib/AAIT/widgets/designer/owloaddocuments.ui +86 -0
- aait-2.2.6/orangecontrib/AAIT/widgets/designer/owsortandselect.ui +204 -0
- aait-2.2.6/orangecontrib/AAIT/widgets/icons/chunking_analysis.png +0 -0
- aait-2.2.6/orangecontrib/AAIT/widgets/icons/edge_llm.svg +6 -0
- aait-2.2.6/orangecontrib/AAIT/widgets/icons/owaccumulator.png +0 -0
- aait-2.2.6/orangecontrib/AAIT/widgets/icons/owloaddocuments.svg +52 -0
- aait-2.2.6/orangecontrib/AAIT/widgets/icons/owsortandselect.svg +6 -0
- {aait-2.2.2.2 → aait-2.2.6}/setup.py +1 -1
- aait-2.2.2.2/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +0 -161
- aait-2.2.2.2/orangecontrib/AAIT/widgets/OWFusionNM.py +0 -450
- {aait-2.2.2.2 → aait-2.2.6}/License.txt +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/aait.egg-info/dependency_links.txt +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/aait.egg-info/entry_points.txt +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/aait.egg-info/namespace_packages.txt +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/aait.egg-info/requires.txt +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/aait.egg-info/top_level.txt +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/__init__.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/SignalReceiver.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/__init__.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/audit_widget.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (2).TIF +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (3).TIF +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (4).TIF +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0001.csv +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0002.csv +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0003.csv +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/dynamic_results.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/test_all_widgets.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/test_server.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/widget_4all.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/widget_chunking.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/widget_edit_table.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/widget_mpnet_create_embeddings.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/widget_optimisation.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/widget_optimisationselection.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/widget_powfactory.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/widget_queryllm.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/widget_spacy_md_fr_lemmatizer.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/widget_traduction.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/audit_widget/widgets_model.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/encapsulation/__init__.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/MergeBaseLora.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/SERV_kill_workflow.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/SERV_requests.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/SERV_start_workflow.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/Tutorial_Finetuning.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/__init__.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/chunking.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/embeddings.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/finetuning.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/functions_DatasetGeneration.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/functions_Finetuning.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/lemmes.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/main_DatasetGeneration.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/main_Finetuning.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/quickpy.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/test.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/test_functions.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/llm/translations.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/CheckMetaData.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/__init__.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/check_data_in.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/import_uic.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/mac_utils.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/thread_management.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWAddColumns.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWEndLoop.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWExtractTokens.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWGenerateWord.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWInputSelector.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWReranking.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWStartLoop.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWTrigger.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/OWUnzipFolder.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/__init__.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owaddcolumns.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owemptyswitch.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owextracttokens.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owfilemetadata.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owfilesyncchecker.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owfusion_nm.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owgenerate_word.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_2.5_32b.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_1.5b_q6.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_3b_q4.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q4.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q6.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_qwencoder_7b.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owreranking.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owsavewithpath.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owselect_column_dynamic.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/designer/owunzipfolder.ui +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/document_generator.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/input.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/models.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/output.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owemptyswitch.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owenvinfo.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owextracttokens.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owfilemetadata.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owfilesfromdir.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owfilesyncchecker.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owfusion_nm.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owkeywords.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owkeywordsdetection.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owreranking.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owselectcolumndynamique.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/select_dynamic_row.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/AAIT/widgets/icons/zip.svg +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/orangecontrib/__init__.py +0 -0
- {aait-2.2.2.2 → aait-2.2.6}/setup.cfg +0 -0
|
@@ -66,6 +66,7 @@ orangecontrib/AAIT/utils/MetManagement.py
|
|
|
66
66
|
orangecontrib/AAIT/utils/SimpleDialogQt.py
|
|
67
67
|
orangecontrib/AAIT/utils/__init__.py
|
|
68
68
|
orangecontrib/AAIT/utils/aait_repo_file.py
|
|
69
|
+
orangecontrib/AAIT/utils/base_widget.py
|
|
69
70
|
orangecontrib/AAIT/utils/check_data_in.py
|
|
70
71
|
orangecontrib/AAIT/utils/delta_local_shared_fodler.py
|
|
71
72
|
orangecontrib/AAIT/utils/import_uic.py
|
|
@@ -82,6 +83,7 @@ orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py
|
|
|
82
83
|
orangecontrib/AAIT/utils/tools/first_time_check.py
|
|
83
84
|
orangecontrib/AAIT/utils/tools/owcorpus_ok.txt
|
|
84
85
|
orangecontrib/AAIT/widgets/OWAAITResourcesManager.py
|
|
86
|
+
orangecontrib/AAIT/widgets/OWAccumulator.py
|
|
85
87
|
orangecontrib/AAIT/widgets/OWAddColumns.py
|
|
86
88
|
orangecontrib/AAIT/widgets/OWApplyRules.py
|
|
87
89
|
orangecontrib/AAIT/widgets/OWCN2rule_view.py
|
|
@@ -110,6 +112,7 @@ orangecontrib/AAIT/widgets/OWKeywordsDetection.py
|
|
|
110
112
|
orangecontrib/AAIT/widgets/OWLMStudio.py
|
|
111
113
|
orangecontrib/AAIT/widgets/OWLanguageDetection.py
|
|
112
114
|
orangecontrib/AAIT/widgets/OWLemmatizer.py
|
|
115
|
+
orangecontrib/AAIT/widgets/OWLoadDocuments.py
|
|
113
116
|
orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py
|
|
114
117
|
orangecontrib/AAIT/widgets/OWModel_Falcon.py
|
|
115
118
|
orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py
|
|
@@ -136,6 +139,7 @@ orangecontrib/AAIT/widgets/OWReranking.py
|
|
|
136
139
|
orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py
|
|
137
140
|
orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py
|
|
138
141
|
orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py
|
|
142
|
+
orangecontrib/AAIT/widgets/OWSortAndSelect.py
|
|
139
143
|
orangecontrib/AAIT/widgets/OWStartLoop.py
|
|
140
144
|
orangecontrib/AAIT/widgets/OWTable2Corpus.py
|
|
141
145
|
orangecontrib/AAIT/widgets/OWTranslation.py
|
|
@@ -146,8 +150,10 @@ orangecontrib/AAIT/widgets/__init__.py
|
|
|
146
150
|
orangecontrib/AAIT/widgets/designer/owMarkdown.ui
|
|
147
151
|
orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui
|
|
148
152
|
orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui
|
|
153
|
+
orangecontrib/AAIT/widgets/designer/owaccumulator.ui
|
|
149
154
|
orangecontrib/AAIT/widgets/designer/owaddcolumns.ui
|
|
150
155
|
orangecontrib/AAIT/widgets/designer/owapplyrules.ui
|
|
156
|
+
orangecontrib/AAIT/widgets/designer/owchunkanalysis.ui
|
|
151
157
|
orangecontrib/AAIT/widgets/designer/owchunking.ui
|
|
152
158
|
orangecontrib/AAIT/widgets/designer/owconcatrules.ui
|
|
153
159
|
orangecontrib/AAIT/widgets/designer/owconversellm.ui
|
|
@@ -155,6 +161,7 @@ orangecontrib/AAIT/widgets/designer/owembeddings.ui
|
|
|
155
161
|
orangecontrib/AAIT/widgets/designer/owemptyswitch.ui
|
|
156
162
|
orangecontrib/AAIT/widgets/designer/owendloop.ui
|
|
157
163
|
orangecontrib/AAIT/widgets/designer/owexecutescript.ui
|
|
164
|
+
orangecontrib/AAIT/widgets/designer/owexecutescript_TEST.ui
|
|
158
165
|
orangecontrib/AAIT/widgets/designer/owextrachunks.ui
|
|
159
166
|
orangecontrib/AAIT/widgets/designer/owextracttokens.ui
|
|
160
167
|
orangecontrib/AAIT/widgets/designer/owfilemetadata.ui
|
|
@@ -169,6 +176,8 @@ orangecontrib/AAIT/widgets/designer/owkeyword.ui
|
|
|
169
176
|
orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui
|
|
170
177
|
orangecontrib/AAIT/widgets/designer/owlangdetect.ui
|
|
171
178
|
orangecontrib/AAIT/widgets/designer/owlemmatizer.ui
|
|
179
|
+
orangecontrib/AAIT/widgets/designer/owllm4all.ui
|
|
180
|
+
orangecontrib/AAIT/widgets/designer/owloaddocuments.ui
|
|
172
181
|
orangecontrib/AAIT/widgets/designer/owloadworkflow.ui
|
|
173
182
|
orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui
|
|
174
183
|
orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui
|
|
@@ -194,6 +203,7 @@ orangecontrib/AAIT/widgets/designer/owreranking.ui
|
|
|
194
203
|
orangecontrib/AAIT/widgets/designer/owsavewithpath.ui
|
|
195
204
|
orangecontrib/AAIT/widgets/designer/owselect_column_dynamic.ui
|
|
196
205
|
orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui
|
|
206
|
+
orangecontrib/AAIT/widgets/designer/owsortandselect.ui
|
|
197
207
|
orangecontrib/AAIT/widgets/designer/owstartloop.ui
|
|
198
208
|
orangecontrib/AAIT/widgets/designer/owtable2corpus.ui
|
|
199
209
|
orangecontrib/AAIT/widgets/designer/owtranslation.ui
|
|
@@ -204,10 +214,12 @@ orangecontrib/AAIT/widgets/icons/MDViewer.png
|
|
|
204
214
|
orangecontrib/AAIT/widgets/icons/Mistral.png
|
|
205
215
|
orangecontrib/AAIT/widgets/icons/apply_rules.svg
|
|
206
216
|
orangecontrib/AAIT/widgets/icons/category.svg
|
|
217
|
+
orangecontrib/AAIT/widgets/icons/chunking_analysis.png
|
|
207
218
|
orangecontrib/AAIT/widgets/icons/dark_green.txt
|
|
208
219
|
orangecontrib/AAIT/widgets/icons/de.png
|
|
209
220
|
orangecontrib/AAIT/widgets/icons/document_generator.png
|
|
210
221
|
orangecontrib/AAIT/widgets/icons/documents.png
|
|
222
|
+
orangecontrib/AAIT/widgets/icons/edge_llm.svg
|
|
211
223
|
orangecontrib/AAIT/widgets/icons/endloop.png
|
|
212
224
|
orangecontrib/AAIT/widgets/icons/extra_chunks.png
|
|
213
225
|
orangecontrib/AAIT/widgets/icons/in_or_out.png
|
|
@@ -227,6 +239,7 @@ orangecontrib/AAIT/widgets/icons/optimisation.png
|
|
|
227
239
|
orangecontrib/AAIT/widgets/icons/optimizer.png
|
|
228
240
|
orangecontrib/AAIT/widgets/icons/output.png
|
|
229
241
|
orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg
|
|
242
|
+
orangecontrib/AAIT/widgets/icons/owaccumulator.png
|
|
230
243
|
orangecontrib/AAIT/widgets/icons/owchunking.png
|
|
231
244
|
orangecontrib/AAIT/widgets/icons/owconversellm.svg
|
|
232
245
|
orangecontrib/AAIT/widgets/icons/owedittable.svg
|
|
@@ -245,6 +258,7 @@ orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png
|
|
|
245
258
|
orangecontrib/AAIT/widgets/icons/owkeywords.png
|
|
246
259
|
orangecontrib/AAIT/widgets/icons/owkeywordsdetection.png
|
|
247
260
|
orangecontrib/AAIT/widgets/icons/owlemmatizer.svg
|
|
261
|
+
orangecontrib/AAIT/widgets/icons/owloaddocuments.svg
|
|
248
262
|
orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg
|
|
249
263
|
orangecontrib/AAIT/widgets/icons/owmodel_falcon.png
|
|
250
264
|
orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg
|
|
@@ -258,6 +272,7 @@ orangecontrib/AAIT/widgets/icons/owqueryllm.svg
|
|
|
258
272
|
orangecontrib/AAIT/widgets/icons/owreranking.svg
|
|
259
273
|
orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg
|
|
260
274
|
orangecontrib/AAIT/widgets/icons/owselectcolumndynamique.png
|
|
275
|
+
orangecontrib/AAIT/widgets/icons/owsortandselect.svg
|
|
261
276
|
orangecontrib/AAIT/widgets/icons/owtable2corpus.svg
|
|
262
277
|
orangecontrib/AAIT/widgets/icons/owtranslation.svg
|
|
263
278
|
orangecontrib/AAIT/widgets/icons/owtrigger.svg
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import copy
|
|
2
2
|
import os
|
|
3
|
-
|
|
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
|
-
#
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
90
|
-
|
|
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):
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import json
|
|
3
3
|
import ntpath
|
|
4
|
+
from pathlib import Path
|
|
4
5
|
|
|
5
6
|
from Orange.data import Table, Domain, StringVariable
|
|
6
7
|
|
|
@@ -133,6 +134,49 @@ def check_for_embeddings(folder_path):
|
|
|
133
134
|
return None
|
|
134
135
|
|
|
135
136
|
|
|
137
|
+
def load_documents_in_table(table, progress_callback=None, argself=None):
|
|
138
|
+
"""
|
|
139
|
+
Load the text content of each document listed in a table and add it
|
|
140
|
+
as a new column "content".
|
|
141
|
+
|
|
142
|
+
:param table: Orange.data.Table containing file paths in a column named "path".
|
|
143
|
+
:return: Orange.data.Table with an added meta column "content" containing the extracted text.
|
|
144
|
+
"""
|
|
145
|
+
# Make a copy of the table to avoid modifying the original
|
|
146
|
+
data = table.copy()
|
|
147
|
+
|
|
148
|
+
# List to store text from each document
|
|
149
|
+
texts = []
|
|
150
|
+
names = []
|
|
151
|
+
# Iterate over all rows in the table
|
|
152
|
+
for i, row in enumerate(data):
|
|
153
|
+
# Get file path from the "path" column
|
|
154
|
+
filepath = row["path"].value
|
|
155
|
+
# Get text and name
|
|
156
|
+
name = Path(filepath).name
|
|
157
|
+
text = extract_text(filepath)
|
|
158
|
+
# Store results
|
|
159
|
+
names.append(name)
|
|
160
|
+
texts.append(text)
|
|
161
|
+
# Update progress if a callback is provided
|
|
162
|
+
if progress_callback is not None:
|
|
163
|
+
progress_value = float(100 * (i + 1) / len(data))
|
|
164
|
+
progress_callback(progress_value)
|
|
165
|
+
# Check if processing should be stopped
|
|
166
|
+
if argself is not None and getattr(argself, "stop", False):
|
|
167
|
+
break
|
|
168
|
+
|
|
169
|
+
# Create a StringVariable for the new column
|
|
170
|
+
var_content = StringVariable("content")
|
|
171
|
+
var_name = StringVariable("name")
|
|
172
|
+
|
|
173
|
+
# Add the column as a meta-column in the table
|
|
174
|
+
data = data.add_column(variable=var_name, data=names, to_metas=True)
|
|
175
|
+
data = data.add_column(variable=var_content, data=texts, to_metas=True)
|
|
176
|
+
return data
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
136
180
|
def extract_text(filepath):
|
|
137
181
|
"""
|
|
138
182
|
Extrait le texte d'un fichier en fonction de son type (PDF ou DOCX).
|
|
@@ -148,11 +192,13 @@ def extract_text(filepath):
|
|
|
148
192
|
return extract_text_from_pdf(filepath)
|
|
149
193
|
elif file_extension == ".docx":
|
|
150
194
|
return extract_text_from_docx(filepath)
|
|
195
|
+
elif file_extension in [".txt", ".md"]:
|
|
196
|
+
return extract_text_from_txt(filepath)
|
|
151
197
|
else:
|
|
152
|
-
|
|
198
|
+
return "ERROR: Unsupported file format. Please use a .pdf, .docx, .txt, or .md file."
|
|
153
199
|
except Exception as e:
|
|
154
200
|
print(f"Erreur lors de l'extraction de texte depuis {filepath}: {e}")
|
|
155
|
-
return "Extraction Error"
|
|
201
|
+
return f"ERROR: Extraction Error ({e})"
|
|
156
202
|
|
|
157
203
|
|
|
158
204
|
def extract_text_from_pdf(pdf_path):
|
|
@@ -176,7 +222,7 @@ def extract_text_from_pdf(pdf_path):
|
|
|
176
222
|
return extracted_text
|
|
177
223
|
except Exception as e:
|
|
178
224
|
print(f"Erreur lors de l'extraction de texte depuis {pdf_path}: {e}")
|
|
179
|
-
return "Extraction Error"
|
|
225
|
+
return f"ERROR: Extraction Error ({e})"
|
|
180
226
|
|
|
181
227
|
|
|
182
228
|
def extract_text_from_docx(docx_path):
|
|
@@ -221,13 +267,20 @@ def extract_text_from_docx(docx_path):
|
|
|
221
267
|
row_text = [cell.text.strip() for cell in row.cells] # Extrait le texte de chaque cellule
|
|
222
268
|
table_text.append("\t".join(row_text)) # Sépare les colonnes par des tabulations
|
|
223
269
|
extracted_text.append("\n".join(table_text)) # Ajoute le tableau sous forme de texte
|
|
224
|
-
|
|
225
270
|
return "\n".join(filter(None, extracted_text)) # Retourne le texte en filtrant les vides
|
|
226
271
|
|
|
227
272
|
except Exception as e:
|
|
228
273
|
print(f"Erreur lors de l'extraction de texte depuis {docx_path}: {e}")
|
|
229
|
-
return "Extraction Error"
|
|
274
|
+
return f"ERROR: Extraction Error ({e})"
|
|
275
|
+
|
|
230
276
|
|
|
277
|
+
def extract_text_from_txt(filepath):
|
|
278
|
+
try:
|
|
279
|
+
with open(filepath, 'r', encoding='utf-8') as f:
|
|
280
|
+
return f.read()
|
|
281
|
+
except Exception as e:
|
|
282
|
+
print(f"Erreur lors de l'extraction de texte depuis {filepath}: {e}")
|
|
283
|
+
return f"ERROR: Extraction Error ({e})"
|
|
231
284
|
|
|
232
285
|
|
|
233
286
|
def get_pages_of_extract(pdf_path, extract):
|
|
@@ -1368,6 +1368,19 @@ def write_file_time(path):
|
|
|
1368
1368
|
except Exception as e:
|
|
1369
1369
|
print(f"Error creating .ok file: {e}")
|
|
1370
1370
|
return
|
|
1371
|
+
def write_file_arbitrary_time(path,time):
|
|
1372
|
+
time= int(time)
|
|
1373
|
+
time_ok=path[:-4]+".ok"
|
|
1374
|
+
reset_files([time_ok])
|
|
1375
|
+
with open(path, "w") as f:
|
|
1376
|
+
f.write(str(time))
|
|
1377
|
+
f.flush()
|
|
1378
|
+
try:
|
|
1379
|
+
with open(time_ok, "w"):
|
|
1380
|
+
pass
|
|
1381
|
+
except Exception as e:
|
|
1382
|
+
print(f"Error creating .ok file: {e}")
|
|
1383
|
+
return
|
|
1371
1384
|
|
|
1372
1385
|
def read_file_time(path):
|
|
1373
1386
|
time_ok = path[:-4] + ".ok"
|
|
@@ -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
|