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