diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 84fbb1aa..697579da 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -61,7 +61,7 @@ jobs: env: DEBIAN_FRONTEND: noninteractive run: | - apt update && apt install -y libegl1 sqlite3 libsqlite3-dev libsqlite3-0 + apt update && apt install -y libegl1 sqlite3 libsqlite3-dev libsqlite3-0 ffmpeg libsm6 libxext6 - name: ⬇️ Install Postgres env: diff --git a/prod.Dockerfile b/prod.Dockerfile index 3cf6a600..693a3a8b 100644 --- a/prod.Dockerfile +++ b/prod.Dockerfile @@ -4,7 +4,7 @@ FROM nvidia/cuda:12.2.0-devel-ubuntu22.04 LABEL org.opencontainers.image.source https://github.com/khoj-ai/khoj # Install System Dependencies -RUN apt update -y && apt -y install python3-pip git +RUN apt update -y && apt -y install python3-pip git libsqlite3-0 ffmpeg libsm6 libxext6 WORKDIR /app diff --git a/pyproject.toml b/pyproject.toml index c816f4d2..25a78ab9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -73,6 +73,7 @@ dependencies = [ "gunicorn == 21.2.0", "lxml == 4.9.3", "tzdata == 2023.3", + "rapidocr-onnxruntime == 1.3.8" ] dynamic = ["version"] diff --git a/src/database/adapters/__init__.py b/src/database/adapters/__init__.py index 7fbc5287..a54a640a 100644 --- a/src/database/adapters/__init__.py +++ b/src/database/adapters/__init__.py @@ -291,8 +291,11 @@ class EntryAdapters: return deleted_count @staticmethod - def delete_all_entries(user: KhojUser, file_type: str): - deleted_count, _ = Entry.objects.filter(user=user, file_type=file_type).delete() + def delete_all_entries(user: KhojUser, file_type: str = None): + if file_type is None: + deleted_count, _ = Entry.objects.filter(user=user).delete() + else: + deleted_count, _ = Entry.objects.filter(user=user, file_type=file_type).delete() return deleted_count @staticmethod @@ -314,6 +317,18 @@ class EntryAdapters: async def user_has_entries(user: KhojUser): return await Entry.objects.filter(user=user).aexists() + @staticmethod + async def adelete_entry_by_file(user: KhojUser, file_path: str): + return await Entry.objects.filter(user=user, file_path=file_path).adelete() + + @staticmethod + def aget_all_filenames(user: KhojUser): + return Entry.objects.filter(user=user).distinct("file_path").values_list("file_path", flat=True) + + @staticmethod + async def adelete_all_entries(user: KhojUser): + return await Entry.objects.filter(user=user).adelete() + @staticmethod def apply_filters(user: KhojUser, query: str, file_type_filter: str = None): q_filter_terms = Q() diff --git a/src/interface/desktop/assets/khoj.css b/src/interface/desktop/assets/khoj.css index 649f79bb..b2e048c5 100644 --- a/src/interface/desktop/assets/khoj.css +++ b/src/interface/desktop/assets/khoj.css @@ -103,21 +103,6 @@ img.khoj-logo { justify-self: center; } -a.khoj-banner { - color: black; - text-decoration: none; -} - -p.khoj-banner { - font-size: small; - margin: 0; - padding: 10px; -} - -p#khoj-banner { - display: inline; -} - @media only screen and (max-width: 600px) { div.khoj-header { display: grid; diff --git a/src/interface/desktop/chat.html b/src/interface/desktop/chat.html index b27bbc90..b908b747 100644 --- a/src/interface/desktop/chat.html +++ b/src/interface/desktop/chat.html @@ -274,8 +274,9 @@ }
-