From 0079c13bf7c1e2004ef1dddf2e4b2e15bb81256f Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Thu, 18 Aug 2022 18:29:55 +0300 Subject: [PATCH 01/10] Set input-directories in config for image search type on Desktop GUI - Issue Fix configuring image search from Desktop GUI. It was broken before. The Desktop GUI was updating input-files field under content-type > image. This field is not used for image search. So image search couldn't be configured from the Desktop GUI - Fix - Set input-directories when field of search type image is set from GUI - Otherwise set input-files field in config --- src/interface/desktop/main_window.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/interface/desktop/main_window.py b/src/interface/desktop/main_window.py index fbe0fa00..cf4168dd 100644 --- a/src/interface/desktop/main_window.py +++ b/src/interface/desktop/main_window.py @@ -185,7 +185,10 @@ class MainWindow(QtWidgets.QMainWindow): default_search_config = self.get_default_config(search_type = child.search_type) self.new_config['content-type'][child.search_type.value] = merge_dicts(current_search_config, default_search_config) elif isinstance(child, FileBrowser) and child.search_type in self.new_config['content-type']: - self.new_config['content-type'][child.search_type.value]['input-files'] = child.getPaths() if child.getPaths() != [] else None + if child.search_type.value == SearchType.Image: + self.new_config['content-type'][child.search_type.value]['input-directories'] = child.getPaths() if child.getPaths() != [] else None + else: + self.new_config['content-type'][child.search_type.value]['input-files'] = child.getPaths() if child.getPaths() != [] else None def update_processor_settings(self): "Update config with conversation settings from UI" From 60dacf3f2c3973372d86692ca88c75ac97213193 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Thu, 18 Aug 2022 20:50:25 +0300 Subject: [PATCH 02/10] Show splash screen on app start. Only supported on Windows, Linux --- .github/workflows/release.yml | 2 +- Khoj.spec | 82 +++++++++++++++++++++++++---------- src/main.py | 12 +++++ 3 files changed, 72 insertions(+), 24 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 88ef1adf..a664f12e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,7 +35,7 @@ jobs: shell: bash run: | if [ "$RUNNER_OS" == "Linux" ]; then - sudo apt install libegl1 libxcb-xinerama0 -y + sudo apt install libegl1 libxcb-xinerama0 python3-tk -y fi python -m pip install --upgrade pip pip install pyinstaller diff --git a/Khoj.spec b/Khoj.spec index e7c7c1f9..38219b3c 100644 --- a/Khoj.spec +++ b/Khoj.spec @@ -43,30 +43,66 @@ a.datas = [entry for entry in a.datas if not entry[0] in torch_lib_paths] pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) -exe = EXE( - pyz, - a.scripts, - a.binaries, - a.zipfiles, - a.datas, - [], - name='Khoj', - debug=False, - bootloader_ignore_signals=False, - strip=False, - upx=True, - upx_exclude=[], - runtime_tmpdir=None, - console=False, - disable_windowed_traceback=False, - argv_emulation=False, - target_arch='x86_64', - codesign_identity=None, - entitlements_file=None, - icon='src/interface/web/assets/icons/favicon.icns', -) +if system() != 'Darwin': + # Add Splash screen to show on app launch + splash = Splash( + 'src/interface/web/assets/icons/favicon-144x144.png', + binaries=a.binaries, + datas=a.datas, + text_pos=(10, 50), + text_size=12, + text_color='blue', + minify_script=True, + always_on_top=True + ) -if system() == 'Darwin': + exe = EXE( + pyz, + a.scripts, + a.binaries, + a.zipfiles, + a.datas, + splash, + splash.binaries, + [], + name='Khoj', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=False, + disable_windowed_traceback=False, + argv_emulation=False, + target_arch='x86_64', + codesign_identity=None, + entitlements_file=None, + icon='src/interface/web/assets/icons/favicon.icns', + ) +else: + exe = EXE( + pyz, + a.scripts, + a.binaries, + a.zipfiles, + a.datas, + [], + name='Khoj', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=False, + disable_windowed_traceback=False, + argv_emulation=False, + target_arch='x86_64', + codesign_identity=None, + entitlements_file=None, + icon='src/interface/web/assets/icons/favicon.icns', + ) app = BUNDLE( exe, name='Khoj.app', diff --git a/src/main.py b/src/main.py index ef8f90ae..586676be 100644 --- a/src/main.py +++ b/src/main.py @@ -67,6 +67,18 @@ def run(): # Start Application server.start() gui.aboutToQuit.connect(server.terminate) + + # Close Splash Screen if still open + if system() != 'Darwin': + try: + import pyi_splash + # Update the text on the splash screen + pyi_splash.update_text("Khoj setup complete") + # Close Splash Screen + pyi_splash.close() + except: + pass + gui.exec() From 6ddcbe2e75b7b689fa26878fef4ecc2d631b7158 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Thu, 18 Aug 2022 20:52:34 +0300 Subject: [PATCH 03/10] Remove files that triggered warnings during app start --- Khoj.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Khoj.spec b/Khoj.spec index 38219b3c..9d6df897 100644 --- a/Khoj.spec +++ b/Khoj.spec @@ -41,6 +41,9 @@ torch_lib_paths = { } a.datas = [entry for entry in a.datas if not entry[0] in torch_lib_paths] +a.datas = [entry for entry in a.datas if not 'torch/_C.cp' in entry[0]] +a.datas = [entry for entry in a.datas if not 'torch/_dl.cp' in entry[0]] + pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) if system() != 'Darwin': From 812838da545a14bb672d33c7469eb528cb7601f9 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Thu, 18 Aug 2022 20:54:59 +0300 Subject: [PATCH 04/10] Only exclude libtorch_cuda, libtorch_cpu under torch/lib on Linux - On Mac excluding the .dylib version of these files throws errors Not sure why it didn't throw during testing. Maybe the libs were cached? - Tested on Linux again. It still seems to be passing with the above libs excluded. So going to keep those excluded for now. Unless further testing reveals those libs are really required for app --- Khoj.spec | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Khoj.spec b/Khoj.spec index 9d6df897..e37af0d8 100644 --- a/Khoj.spec +++ b/Khoj.spec @@ -32,12 +32,10 @@ a = Analysis( noarchive=False, ) -# Filter out unused, duplicate shared libs -extension = {'Windows': '.dll', 'Darwin': '.dylib', 'Linux': '.so'}[system()] +# Filter out unused and/or duplicate shared libs torch_lib_paths = { - join('torch', 'lib', 'libtorch_cuda' + extension), - join('torch', 'lib', 'libtorch_cpu' + extension), - join('torch', 'lib', 'libtorch_python' + extension) + join('torch', 'lib', 'libtorch_cuda.so'), + join('torch', 'lib', 'libtorch_cpu.so'), } a.datas = [entry for entry in a.datas if not entry[0] in torch_lib_paths] From 00ddcfdac803c1ab979f1c4dad35b3fe8d3b0209 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Thu, 18 Aug 2022 22:07:49 +0300 Subject: [PATCH 05/10] Use .ico icon when packaging for Windows (and Linux) using Pynstaller --- Khoj.spec | 2 +- .../web/assets/icons/favicon-144x144.ico | Bin 0 -> 162910 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 src/interface/web/assets/icons/favicon-144x144.ico diff --git a/Khoj.spec b/Khoj.spec index e37af0d8..2dda16c0 100644 --- a/Khoj.spec +++ b/Khoj.spec @@ -79,7 +79,7 @@ if system() != 'Darwin': target_arch='x86_64', codesign_identity=None, entitlements_file=None, - icon='src/interface/web/assets/icons/favicon.icns', + icon='src/interface/web/assets/icons/favicon-144x144.ico', ) else: exe = EXE( diff --git a/src/interface/web/assets/icons/favicon-144x144.ico b/src/interface/web/assets/icons/favicon-144x144.ico new file mode 100644 index 0000000000000000000000000000000000000000..9641ed7152af8fdc2bd8faf8c7f38f8bf7fdf69b GIT binary patch literal 162910 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 SxPwy^mNkSb^MO>BzjcW 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≶(h!KYg&b^LftMewL1IV8>*w6~4TPP#dfp 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 Ox{Pjzhc1V6KK_3z+T-2; literal 0 HcmV?d00001 From 7c4417126ca6ce0de49895c4c6292a2ba3eab777 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Thu, 18 Aug 2022 22:42:44 +0300 Subject: [PATCH 06/10] Append files, directories selected by user to config in Desktop GUI - Allows adding multiple image directories via GUI - Allow adding multiple files in different directories via GUI - Previously users couldn't add multiple directories via GUI They'd have to manually append to input field if multiple files, directories - To clear/overwrite is much easier. The user can just select text to delete in input area --- src/interface/desktop/file_browser.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/interface/desktop/file_browser.py b/src/interface/desktop/file_browser.py index fcc2cb29..e14dfd1c 100644 --- a/src/interface/desktop/file_browser.py +++ b/src/interface/desktop/file_browser.py @@ -29,7 +29,7 @@ class FileBrowser(QtWidgets.QWidget): self.lineEdit.textChanged.connect(self.updateFieldHeight) layout.addWidget(self.lineEdit) - self.button = QtWidgets.QPushButton('Select') + self.button = QtWidgets.QPushButton('Add') self.button.clicked.connect(self.storeFilesSelectedInFileDialog) layout.addWidget(self.button) layout.addStretch() @@ -47,7 +47,7 @@ class FileBrowser(QtWidgets.QWidget): return 'Images (*.jp[e]g)' def storeFilesSelectedInFileDialog(self): - filepaths = [] + filepaths = self.getPaths() if self.search_type == SearchType.Image: filepaths.append(QtWidgets.QFileDialog.getExistingDirectory(self, caption='Choose Folder', directory=self.dirpath)) From d4072974d7cf36d128255583b0e75360fdd4dfcd Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Thu, 18 Aug 2022 23:10:33 +0300 Subject: [PATCH 07/10] Use of XMP metadata in Khoj Image Search is broken. Disable by default - CLIP Image score and XMP metadata score are not combining well. When combined they give non sensical results. Enable only once figure how best to combine the two. - Show scores with higher precision for image search - Image search scores seem to be mostly be between 0.2 - 0.3 for some reason - Higher precision scores make it easier to understand the quality of returned results perceived by the model itself --- config/khoj_sample.yml | 2 +- src/search_type/image_search.py | 6 +++--- src/utils/constants.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/khoj_sample.yml b/config/khoj_sample.yml index 86894c03..ed1a0591 100644 --- a/config/khoj_sample.yml +++ b/config/khoj_sample.yml @@ -22,7 +22,7 @@ content-type: input-filter: # /path/to/images/*.jpg REQUIRED IF input-directories IS NOT SET embeddings-file: "~/.khoj/content/image/image_embeddings.pt" batch-size: 50 - use-xmp-metadata: true + use-xmp-metadata: false music: input-files: # ["/path/to/music-file.org"] REQUIRED IF input-filter IS NOT SET OR diff --git a/src/search_type/image_search.py b/src/search_type/image_search.py index 23a64459..b57d4f20 100644 --- a/src/search_type/image_search.py +++ b/src/search_type/image_search.py @@ -211,9 +211,9 @@ def collate_results(hits, image_names, output_directory, image_files_url, count= # Add the image metadata to the results results += [{ "entry": f'{image_files_url}/{target_image_name}', - "score": f"{hit['score']:.3f}", - "image_score": f"{hit['image_score']:.3f}", - "metadata_score": f"{hit['metadata_score']:.3f}", + "score": f"{hit['score']:.9f}", + "image_score": f"{hit['image_score']:.9f}", + "metadata_score": f"{hit['metadata_score']:.9f}", }] return results diff --git a/src/utils/constants.py b/src/utils/constants.py index 569c5bcb..84c3dfbb 100644 --- a/src/utils/constants.py +++ b/src/utils/constants.py @@ -30,7 +30,7 @@ default_config = { 'input-filter': None, 'embeddings-file': '~/.khoj/content/image/image_embeddings.pt', 'batch-size': 50, - 'use-xmp-metadata': True + 'use-xmp-metadata': False }, 'music': { 'input-files': None, From 6c5c1c33c18c95c5075dede380fcc715d9a54af9 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Thu, 18 Aug 2022 23:14:39 +0300 Subject: [PATCH 08/10] Turn off Tokenizers Parallelism. Khoj doesn't support it right now - Forking and multiprocess are problemantic in frozen python scenarios. This will cause issues when running App packaged by pyinstaller --- src/main.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main.py b/src/main.py index 586676be..2951b1c2 100644 --- a/src/main.py +++ b/src/main.py @@ -1,7 +1,8 @@ # Standard Packages -from platform import system +import os import signal import sys +from platform import system # External Packages import uvicorn @@ -26,6 +27,9 @@ app.include_router(router) def run(): + # Turn Tokenizers Parallelism Off. App does not support it. + os.environ["TOKENIZERS_PARALLELISM"] = 'false' + # Load config from CLI state.cli_args = sys.argv[1:] args = cli(state.cli_args) From ffbf15eff868bf3f08ed6e8d9ad251255175c1f2 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Thu, 18 Aug 2022 23:17:21 +0300 Subject: [PATCH 09/10] Add helper function to identify when app running as pyinstaller app Useful for when want the app to behave differently in pyinstaller app scenario with frozen python. And in development scenarios --- src/utils/cli.py | 2 +- src/utils/helpers.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/utils/cli.py b/src/utils/cli.py index e855f706..a140bb46 100644 --- a/src/utils/cli.py +++ b/src/utils/cli.py @@ -3,7 +3,7 @@ import argparse import pathlib # Internal Packages -from src.utils.helpers import get_absolute_path, resolve_absolute_path +from src.utils.helpers import resolve_absolute_path from src.utils.yaml import parse_config_from_file diff --git a/src/utils/helpers.py b/src/utils/helpers.py index 78c2f176..e77e656d 100644 --- a/src/utils/helpers.py +++ b/src/utils/helpers.py @@ -1,5 +1,6 @@ # Standard Packages import pathlib +import sys from os.path import join @@ -54,4 +55,9 @@ def load_model(model_name, model_dir, model_type): if model_path is not None: model.save(model_path) - return model \ No newline at end of file + return model + + +def is_pyinstaller_app(): + "Returns true if the app is running from Native GUI created by PyInstaller" + return getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS') \ No newline at end of file From b9a54c03ee990a478c8942bc1a7e458ff0ebcb56 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Fri, 19 Aug 2022 18:42:49 +0300 Subject: [PATCH 10/10] Add transformers package into Khoj app to run image search --- Khoj.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Khoj.spec b/Khoj.spec index 2dda16c0..3bee99b8 100644 --- a/Khoj.spec +++ b/Khoj.spec @@ -2,8 +2,12 @@ from os.path import join from platform import system from PyInstaller.utils.hooks import copy_metadata +import sysconfig -datas = [('src/interface/web', 'src/interface/web')] +datas = [ + ('src/interface/web', 'src/interface/web'), + (f'{sysconfig.get_paths()["purelib"]}/transformers', 'transformers') +] datas += copy_metadata('tqdm') datas += copy_metadata('regex') datas += copy_metadata('requests') @@ -12,10 +16,8 @@ datas += copy_metadata('filelock') datas += copy_metadata('numpy') datas += copy_metadata('tokenizers') - block_cipher = None - a = Analysis( ['src/main.py'], pathex=[],