aait 2.2.3__tar.gz → 2.2.5__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.5/PKG-INFO +28 -0
- aait-2.2.5/aait.egg-info/PKG-INFO +28 -0
- {aait-2.2.3 → aait-2.2.5}/aait.egg-info/SOURCES.txt +14 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/answers.py +50 -41
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/process_documents.py +125 -101
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/MetManagement.py +13 -0
- aait-2.2.5/orangecontrib/AAIT/utils/base_widget.py +173 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/windows_utils.py +158 -114
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWDisplayMD.py +8 -13
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWEditTable.py +2 -2
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWEmptySwitch.py +0 -1
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWExecuteScript.py +62 -34
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWFileMetadata.py +32 -33
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWFileSyncChecker.py +9 -9
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWFileWithPath.py +5 -6
- aait-2.2.5/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +335 -0
- aait-2.2.5/orangecontrib/AAIT/widgets/OWFusionNM.py +410 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +3 -3
- aait-2.2.5/orangecontrib/AAIT/widgets/OWKeywords.py +157 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWKeywordsDetection.py +5 -1
- aait-2.2.5/orangecontrib/AAIT/widgets/OWLoadDocuments.py +125 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +4 -1
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWQueryLLM.py +3 -3
- aait-2.2.5/orangecontrib/AAIT/widgets/OWSortAndSelect.py +194 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owaccumulator.ui +21 -18
- aait-2.2.5/orangecontrib/AAIT/widgets/designer/owchunkanalysis.ui +64 -0
- aait-2.2.5/orangecontrib/AAIT/widgets/designer/owexecutescript_TEST.ui +210 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +14 -1
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owfindfilesfromdir.ui +77 -6
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +1 -1
- aait-2.2.5/orangecontrib/AAIT/widgets/designer/owllm4all.ui +54 -0
- aait-2.2.5/orangecontrib/AAIT/widgets/designer/owloaddocuments.ui +86 -0
- aait-2.2.5/orangecontrib/AAIT/widgets/icons/chunking_analysis.png +0 -0
- aait-2.2.5/orangecontrib/AAIT/widgets/icons/edge_llm.svg +6 -0
- aait-2.2.5/orangecontrib/AAIT/widgets/icons/owkeywords.png +0 -0
- aait-2.2.5/orangecontrib/AAIT/widgets/icons/owloaddocuments.svg +52 -0
- aait-2.2.5/orangecontrib/AAIT/widgets/icons/owsortandselect.svg +6 -0
- {aait-2.2.3 → aait-2.2.5}/setup.py +1 -1
- aait-2.2.3/PKG-INFO +0 -9
- aait-2.2.3/aait.egg-info/PKG-INFO +0 -9
- aait-2.2.3/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +0 -161
- aait-2.2.3/orangecontrib/AAIT/widgets/OWFusionNM.py +0 -450
- {aait-2.2.3 → aait-2.2.5}/License.txt +0 -0
- {aait-2.2.3 → aait-2.2.5}/aait.egg-info/dependency_links.txt +0 -0
- {aait-2.2.3 → aait-2.2.5}/aait.egg-info/entry_points.txt +0 -0
- {aait-2.2.3 → aait-2.2.5}/aait.egg-info/namespace_packages.txt +0 -0
- {aait-2.2.3 → aait-2.2.5}/aait.egg-info/requires.txt +0 -0
- {aait-2.2.3 → aait-2.2.5}/aait.egg-info/top_level.txt +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/__init__.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/SignalReceiver.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/__init__.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/audit_widget.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (2).TIF +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (3).TIF +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (4).TIF +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0001.csv +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0002.csv +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0003.csv +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/dynamic_results.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/test_all_widgets.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/test_server.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/widget_4all.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/widget_chunking.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/widget_edit_table.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/widget_mpnet_create_embeddings.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/widget_optimisation.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/widget_optimisationselection.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/widget_powfactory.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/widget_queryllm.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/widget_spacy_md_fr_lemmatizer.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/widget_traduction.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/audit_widget/widgets_model.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/encapsulation/__init__.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/MergeBaseLora.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/SERV_kill_workflow.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/SERV_requests.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/SERV_start_workflow.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/Tutorial_Finetuning.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/__init__.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/chunking.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/embeddings.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/finetuning.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/functions_DatasetGeneration.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/functions_Finetuning.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/lemmes.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/main_DatasetGeneration.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/main_Finetuning.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/quickpy.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/test.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/test_functions.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/llm/translations.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/CheckMetaData.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/__init__.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/check_data_in.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/import_uic.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/mac_utils.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/thread_management.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWAccumulator.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWAddColumns.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWEndLoop.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWExtractTokens.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWGenerateWord.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWInputSelector.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWReranking.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWStartLoop.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWTrigger.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/OWUnzipFolder.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/__init__.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owaddcolumns.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owemptyswitch.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owextracttokens.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owfilemetadata.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owfilesyncchecker.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owfusion_nm.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owgenerate_word.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_2.5_32b.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_1.5b_q6.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_3b_q4.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q4.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q6.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_qwencoder_7b.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owreranking.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owsavewithpath.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owselect_column_dynamic.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/designer/owunzipfolder.ui +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/document_generator.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/input.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/models.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/output.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owaccumulator.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owemptyswitch.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owenvinfo.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owextracttokens.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owfilemetadata.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owfilesfromdir.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owfilesyncchecker.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owfusion_nm.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owkeywordsdetection.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owreranking.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owselectcolumndynamique.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/select_dynamic_row.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/AAIT/widgets/icons/zip.svg +0 -0
- {aait-2.2.3 → aait-2.2.5}/orangecontrib/__init__.py +0 -0
- {aait-2.2.3 → aait-2.2.5}/setup.cfg +0 -0
aait-2.2.5/PKG-INFO
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: aait
|
|
3
|
+
Version: 2.2.5
|
|
4
|
+
Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
|
|
5
|
+
Home-page:
|
|
6
|
+
Author: Orange community
|
|
7
|
+
Author-email:
|
|
8
|
+
Keywords: orange3 add-on
|
|
9
|
+
License-File: License.txt
|
|
10
|
+
Requires-Dist: torch
|
|
11
|
+
Requires-Dist: sentence-transformers==5.0.0
|
|
12
|
+
Requires-Dist: gpt4all[all]==2.8.2
|
|
13
|
+
Requires-Dist: sacremoses==0.1.1
|
|
14
|
+
Requires-Dist: transformers==4.51.3
|
|
15
|
+
Requires-Dist: sentencepiece==0.2.0
|
|
16
|
+
Requires-Dist: optuna
|
|
17
|
+
Requires-Dist: spacy==3.7.6
|
|
18
|
+
Requires-Dist: markdown
|
|
19
|
+
Requires-Dist: python-multipart
|
|
20
|
+
Requires-Dist: PyMuPDF==1.24.14
|
|
21
|
+
Requires-Dist: chonkie==0.4.1
|
|
22
|
+
Requires-Dist: GPUtil==1.4.0
|
|
23
|
+
Requires-Dist: unidecode==1.3.8
|
|
24
|
+
Requires-Dist: python-docx==1.1.2
|
|
25
|
+
Requires-Dist: psutil
|
|
26
|
+
Requires-Dist: thefuzz==0.22.1
|
|
27
|
+
Requires-Dist: beautifulsoup4==4.12.3
|
|
28
|
+
Requires-Dist: CATEGORIT
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: aait
|
|
3
|
+
Version: 2.2.5
|
|
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
|
|
@@ -65,6 +66,7 @@ orangecontrib/AAIT/utils/MetManagement.py
|
|
|
65
66
|
orangecontrib/AAIT/utils/SimpleDialogQt.py
|
|
66
67
|
orangecontrib/AAIT/utils/__init__.py
|
|
67
68
|
orangecontrib/AAIT/utils/aait_repo_file.py
|
|
69
|
+
orangecontrib/AAIT/utils/base_widget.py
|
|
68
70
|
orangecontrib/AAIT/utils/check_data_in.py
|
|
69
71
|
orangecontrib/AAIT/utils/delta_local_shared_fodler.py
|
|
70
72
|
orangecontrib/AAIT/utils/import_uic.py
|
|
@@ -105,10 +107,12 @@ orangecontrib/AAIT/widgets/OWGenerateQuestions.py
|
|
|
105
107
|
orangecontrib/AAIT/widgets/OWGenerateSynthesis.py
|
|
106
108
|
orangecontrib/AAIT/widgets/OWGenerateWord.py
|
|
107
109
|
orangecontrib/AAIT/widgets/OWInputSelector.py
|
|
110
|
+
orangecontrib/AAIT/widgets/OWKeywords.py
|
|
108
111
|
orangecontrib/AAIT/widgets/OWKeywordsDetection.py
|
|
109
112
|
orangecontrib/AAIT/widgets/OWLMStudio.py
|
|
110
113
|
orangecontrib/AAIT/widgets/OWLanguageDetection.py
|
|
111
114
|
orangecontrib/AAIT/widgets/OWLemmatizer.py
|
|
115
|
+
orangecontrib/AAIT/widgets/OWLoadDocuments.py
|
|
112
116
|
orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py
|
|
113
117
|
orangecontrib/AAIT/widgets/OWModel_Falcon.py
|
|
114
118
|
orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py
|
|
@@ -135,6 +139,7 @@ orangecontrib/AAIT/widgets/OWReranking.py
|
|
|
135
139
|
orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py
|
|
136
140
|
orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py
|
|
137
141
|
orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py
|
|
142
|
+
orangecontrib/AAIT/widgets/OWSortAndSelect.py
|
|
138
143
|
orangecontrib/AAIT/widgets/OWStartLoop.py
|
|
139
144
|
orangecontrib/AAIT/widgets/OWTable2Corpus.py
|
|
140
145
|
orangecontrib/AAIT/widgets/OWTranslation.py
|
|
@@ -148,6 +153,7 @@ orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui
|
|
|
148
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
|
|
@@ -204,10 +213,12 @@ orangecontrib/AAIT/widgets/icons/MDViewer.png
|
|
|
204
213
|
orangecontrib/AAIT/widgets/icons/Mistral.png
|
|
205
214
|
orangecontrib/AAIT/widgets/icons/apply_rules.svg
|
|
206
215
|
orangecontrib/AAIT/widgets/icons/category.svg
|
|
216
|
+
orangecontrib/AAIT/widgets/icons/chunking_analysis.png
|
|
207
217
|
orangecontrib/AAIT/widgets/icons/dark_green.txt
|
|
208
218
|
orangecontrib/AAIT/widgets/icons/de.png
|
|
209
219
|
orangecontrib/AAIT/widgets/icons/document_generator.png
|
|
210
220
|
orangecontrib/AAIT/widgets/icons/documents.png
|
|
221
|
+
orangecontrib/AAIT/widgets/icons/edge_llm.svg
|
|
211
222
|
orangecontrib/AAIT/widgets/icons/endloop.png
|
|
212
223
|
orangecontrib/AAIT/widgets/icons/extra_chunks.png
|
|
213
224
|
orangecontrib/AAIT/widgets/icons/in_or_out.png
|
|
@@ -243,8 +254,10 @@ orangecontrib/AAIT/widgets/icons/owfilewithpath.svg
|
|
|
243
254
|
orangecontrib/AAIT/widgets/icons/owfusion_nm.png
|
|
244
255
|
orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg
|
|
245
256
|
orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png
|
|
257
|
+
orangecontrib/AAIT/widgets/icons/owkeywords.png
|
|
246
258
|
orangecontrib/AAIT/widgets/icons/owkeywordsdetection.png
|
|
247
259
|
orangecontrib/AAIT/widgets/icons/owlemmatizer.svg
|
|
260
|
+
orangecontrib/AAIT/widgets/icons/owloaddocuments.svg
|
|
248
261
|
orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg
|
|
249
262
|
orangecontrib/AAIT/widgets/icons/owmodel_falcon.png
|
|
250
263
|
orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg
|
|
@@ -258,6 +271,7 @@ orangecontrib/AAIT/widgets/icons/owqueryllm.svg
|
|
|
258
271
|
orangecontrib/AAIT/widgets/icons/owreranking.svg
|
|
259
272
|
orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg
|
|
260
273
|
orangecontrib/AAIT/widgets/icons/owselectcolumndynamique.png
|
|
274
|
+
orangecontrib/AAIT/widgets/icons/owsortandselect.svg
|
|
261
275
|
orangecontrib/AAIT/widgets/icons/owtable2corpus.svg
|
|
262
276
|
orangecontrib/AAIT/widgets/icons/owtranslation.svg
|
|
263
277
|
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):
|
|
@@ -9,37 +9,31 @@ import fitz
|
|
|
9
9
|
import docx
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
def process_documents(dirpath):
|
|
13
|
-
if dirpath is None or not
|
|
14
|
+
if dirpath is None or not os.path.exists(dirpath):
|
|
14
15
|
return None, None
|
|
15
16
|
|
|
16
|
-
# Normalize dirpath
|
|
17
|
-
dirpath = Path(dirpath).resolve()
|
|
18
|
-
|
|
19
17
|
# get path from user selection
|
|
20
18
|
embeddings = check_for_embeddings(dirpath)
|
|
19
|
+
dirpath = dirpath.replace("\\","/")
|
|
21
20
|
|
|
22
21
|
# Set selected path in the saved embeddings
|
|
23
22
|
if embeddings is not None:
|
|
24
|
-
common_path =
|
|
23
|
+
common_path = find_common_root(embeddings).replace("\\","/")
|
|
25
24
|
for row in embeddings:
|
|
26
|
-
|
|
27
|
-
# Replace common root with the current dirpath
|
|
28
|
-
try:
|
|
29
|
-
row["path"] = str(dirpath / row_path.relative_to(common_path))
|
|
30
|
-
except ValueError:
|
|
31
|
-
# If relative_to fails (paths not matching), just normalize
|
|
32
|
-
row["path"] = str(row_path)
|
|
25
|
+
row["path"] = row["path"].value.replace("\\","/").replace(common_path, dirpath)
|
|
33
26
|
|
|
34
27
|
# Verify which files are already processed
|
|
35
28
|
files_to_process = get_files_to_process(dirpath, embeddings)
|
|
36
29
|
|
|
37
30
|
rows = []
|
|
38
31
|
for file in files_to_process:
|
|
39
|
-
|
|
40
|
-
content = extract_text(
|
|
41
|
-
filename = file
|
|
42
|
-
|
|
32
|
+
# Get the text content from the file
|
|
33
|
+
content = extract_text(file)
|
|
34
|
+
filename = ntpath.basename(file)
|
|
35
|
+
# Build a row containing dirpath | filename | content
|
|
36
|
+
row = [file, filename, content]
|
|
43
37
|
rows.append(row)
|
|
44
38
|
|
|
45
39
|
# Build a table with the constructed rows
|
|
@@ -51,115 +45,136 @@ def process_documents(dirpath):
|
|
|
51
45
|
return out_data, embeddings
|
|
52
46
|
|
|
53
47
|
|
|
54
|
-
def check_for_embeddings(folder_path):
|
|
55
|
-
"""
|
|
56
|
-
Check for an embeddings.pkl file in a given folder. Return its content if it exists.
|
|
57
|
-
|
|
58
|
-
Parameters:
|
|
59
|
-
folder_path (str | Path): The path to the folder where embeddings.pkl may exist.
|
|
60
|
-
|
|
61
|
-
Returns:
|
|
62
|
-
Table or None: The content of embeddings.pkl, or None if not found.
|
|
63
|
-
"""
|
|
64
|
-
folder_path = Path(folder_path).resolve()
|
|
65
|
-
|
|
66
|
-
filepaths = [
|
|
67
|
-
folder_path / "embeddings_question.pkl",
|
|
68
|
-
folder_path / "embeddings.pkl"
|
|
69
|
-
]
|
|
70
|
-
|
|
71
|
-
for filepath in filepaths:
|
|
72
|
-
if filepath.exists():
|
|
73
|
-
return Table.from_file(str(filepath)) # Table.from_file expects a str
|
|
74
|
-
return None
|
|
75
|
-
|
|
76
|
-
|
|
77
48
|
def find_common_root(data_table, column_name="path"):
|
|
78
49
|
"""Finds the common root path from a column of file paths in an Orange Data Table."""
|
|
79
|
-
paths = [
|
|
80
|
-
for row in data_table if row[column_name] is not None]
|
|
50
|
+
paths = [str(row[column_name]) for row in data_table if row[column_name] is not None]
|
|
81
51
|
if not paths:
|
|
82
52
|
return ""
|
|
83
|
-
return
|
|
53
|
+
return os.path.commonpath(paths)
|
|
84
54
|
|
|
85
55
|
|
|
86
56
|
def get_files_to_process(folder_path, table=None):
|
|
87
57
|
"""
|
|
88
|
-
Finds all PDF
|
|
89
|
-
|
|
58
|
+
Finds all PDF files in a folder (including subfolders) that are not already in the table.
|
|
59
|
+
The comparison is based on "name" (relative path from the main folder) instead of full paths.
|
|
90
60
|
|
|
91
61
|
:param folder_path: Path to the folder to scan for documents.
|
|
92
|
-
:param table: Orange Data Table with
|
|
93
|
-
:return: List of
|
|
62
|
+
:param table: Orange Data Table with columns "path", "name", and "content".
|
|
63
|
+
:return: List of paths to files not present in the table (by name, including subfolder structure).
|
|
94
64
|
"""
|
|
95
|
-
|
|
65
|
+
#TODO
|
|
66
|
+
# Supported file extensions
|
|
67
|
+
supported_extensions = [".pdf", ".docx"]
|
|
96
68
|
|
|
97
|
-
|
|
98
|
-
filepath_sizes = folder_path
|
|
99
|
-
|
|
100
|
-
print(filepath_sizes)
|
|
101
|
-
print(filepath_sizes.exists())
|
|
102
|
-
|
|
103
|
-
# Load previous file sizes
|
|
104
|
-
if filepath_sizes.exists():
|
|
69
|
+
# Read the json containing file sizes
|
|
70
|
+
filepath_sizes = os.path.join(folder_path, "sizes.json")
|
|
71
|
+
if os.path.exists(filepath_sizes):
|
|
105
72
|
with open(filepath_sizes, "r") as json_file:
|
|
106
|
-
sizes =
|
|
73
|
+
sizes = json.load(json_file)
|
|
107
74
|
else:
|
|
108
|
-
sizes =
|
|
109
|
-
|
|
110
|
-
print(sizes)
|
|
75
|
+
sizes = dict()
|
|
111
76
|
|
|
112
|
-
# Extract the existing
|
|
77
|
+
# Extract the existing file names from the Orange Data Table
|
|
113
78
|
if table:
|
|
114
|
-
|
|
115
|
-
existing_paths = {Path(str(p)).resolve() for p in table[:, "path"].metas.flatten()}
|
|
79
|
+
existing_paths = set(table[:, "path"].metas.flatten()) # Extract names from the table
|
|
116
80
|
else:
|
|
117
81
|
existing_paths = set()
|
|
118
82
|
|
|
83
|
+
|
|
84
|
+
# Walk through the folder and its subfolders
|
|
119
85
|
new_files = []
|
|
86
|
+
for root, _, files in os.walk(folder_path):
|
|
87
|
+
for file in files:
|
|
88
|
+
# Check if the file has a supported extension
|
|
89
|
+
if os.path.splitext(file)[1].lower() in supported_extensions:
|
|
90
|
+
# Add the file if it is not already in the table
|
|
91
|
+
filepath = os.path.join(root, file).replace("\\","/")
|
|
92
|
+
if filepath not in existing_paths:
|
|
93
|
+
new_files.append(filepath)
|
|
94
|
+
sizes[filepath] = os.path.getsize(filepath)
|
|
95
|
+
# If the file is in the table, verify if the file has been modified (comparing the size)
|
|
96
|
+
else:
|
|
97
|
+
new_size = os.path.getsize(filepath)
|
|
98
|
+
if filepath not in sizes.keys():
|
|
99
|
+
sizes[filepath] = new_size
|
|
100
|
+
else:
|
|
101
|
+
old_size = sizes[filepath]
|
|
102
|
+
if old_size != new_size:
|
|
103
|
+
new_files.append(filepath)
|
|
104
|
+
table = remove_from_table(filepath, table)
|
|
105
|
+
sizes[filepath] = new_size
|
|
106
|
+
with open(filepath_sizes, "w") as json_file:
|
|
107
|
+
json.dump(sizes, json_file, indent=4)
|
|
108
|
+
return new_files
|
|
120
109
|
|
|
121
|
-
# Walk through the folder and subfolders
|
|
122
|
-
for file in folder_path.rglob("*"):
|
|
123
|
-
if file.suffix.lower() in supported_extensions:
|
|
124
|
-
file = file.resolve()
|
|
125
|
-
size = file.stat().st_size
|
|
126
110
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
else:
|
|
132
|
-
# File already in table: check if size changed
|
|
133
|
-
print("File: ", Path(ntpath.basename(file)))
|
|
134
|
-
old_size = sizes.get(Path(ntpath.basename(file)))
|
|
135
|
-
print(old_size)
|
|
136
|
-
if old_size is None or old_size != size:
|
|
137
|
-
new_files.append(str(file))
|
|
138
|
-
table = remove_from_table(file, table)
|
|
139
|
-
sizes[Path(ntpath.basename(file))] = size
|
|
111
|
+
def remove_from_table(filepath, table):
|
|
112
|
+
filtered_table = Table.from_list(domain=table.domain,
|
|
113
|
+
rows=[row for row in table if row["path"].value != filepath])
|
|
114
|
+
return filtered_table
|
|
140
115
|
|
|
141
116
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
117
|
+
def check_for_embeddings(folder_path):
|
|
118
|
+
"""
|
|
119
|
+
Check for an embeddings.pkl file in a given folder. Return its content if it exists.
|
|
145
120
|
|
|
146
|
-
|
|
121
|
+
Parameters:
|
|
122
|
+
folder_path (str): The path to the folder where embeddings.pkl may exist.
|
|
123
|
+
|
|
124
|
+
Returns:
|
|
125
|
+
Table or None: The content of embeddings.pkl.
|
|
126
|
+
"""
|
|
127
|
+
filepaths = [os.path.join(folder_path, "embeddings_question.pkl"),
|
|
128
|
+
os.path.join(folder_path, "embeddings.pkl")]
|
|
129
|
+
for filepath in filepaths:
|
|
130
|
+
if os.path.exists(filepath):
|
|
131
|
+
data = Table.from_file(filepath)
|
|
132
|
+
return data
|
|
133
|
+
else:
|
|
134
|
+
return None
|
|
147
135
|
|
|
148
136
|
|
|
149
|
-
def
|
|
137
|
+
def load_documents_in_table(table, progress_callback=None, argself=None):
|
|
150
138
|
"""
|
|
151
|
-
|
|
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.
|
|
152
144
|
"""
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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
|
+
|
|
163
178
|
|
|
164
179
|
|
|
165
180
|
def extract_text(filepath):
|
|
@@ -177,11 +192,13 @@ def extract_text(filepath):
|
|
|
177
192
|
return extract_text_from_pdf(filepath)
|
|
178
193
|
elif file_extension == ".docx":
|
|
179
194
|
return extract_text_from_docx(filepath)
|
|
195
|
+
elif file_extension in [".txt", ".md"]:
|
|
196
|
+
return extract_text_from_txt(filepath)
|
|
180
197
|
else:
|
|
181
|
-
|
|
198
|
+
return "ERROR: Unsupported file format. Please use a .pdf, .docx, .txt, or .md file."
|
|
182
199
|
except Exception as e:
|
|
183
200
|
print(f"Erreur lors de l'extraction de texte depuis {filepath}: {e}")
|
|
184
|
-
return "Extraction Error"
|
|
201
|
+
return f"ERROR: Extraction Error ({e})"
|
|
185
202
|
|
|
186
203
|
|
|
187
204
|
def extract_text_from_pdf(pdf_path):
|
|
@@ -205,7 +222,7 @@ def extract_text_from_pdf(pdf_path):
|
|
|
205
222
|
return extracted_text
|
|
206
223
|
except Exception as e:
|
|
207
224
|
print(f"Erreur lors de l'extraction de texte depuis {pdf_path}: {e}")
|
|
208
|
-
return "Extraction Error"
|
|
225
|
+
return f"ERROR: Extraction Error ({e})"
|
|
209
226
|
|
|
210
227
|
|
|
211
228
|
def extract_text_from_docx(docx_path):
|
|
@@ -250,13 +267,20 @@ def extract_text_from_docx(docx_path):
|
|
|
250
267
|
row_text = [cell.text.strip() for cell in row.cells] # Extrait le texte de chaque cellule
|
|
251
268
|
table_text.append("\t".join(row_text)) # Sépare les colonnes par des tabulations
|
|
252
269
|
extracted_text.append("\n".join(table_text)) # Ajoute le tableau sous forme de texte
|
|
253
|
-
|
|
254
270
|
return "\n".join(filter(None, extracted_text)) # Retourne le texte en filtrant les vides
|
|
255
271
|
|
|
256
272
|
except Exception as e:
|
|
257
273
|
print(f"Erreur lors de l'extraction de texte depuis {docx_path}: {e}")
|
|
258
|
-
return "Extraction Error"
|
|
274
|
+
return f"ERROR: Extraction Error ({e})"
|
|
275
|
+
|
|
259
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})"
|
|
260
284
|
|
|
261
285
|
|
|
262
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"
|