From 3288b821758b9d45cb939f95394427df346d4f7d Mon Sep 17 00:00:00 2001 From: Sine Jespersen Date: Tue, 10 Jun 2025 12:43:59 +0200 Subject: [PATCH 01/14] change admin settings link to anchor instead of button --- src/lib/components/chat/SettingsModal.svelte | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/lib/components/chat/SettingsModal.svelte b/src/lib/components/chat/SettingsModal.svelte index b50dc995f..19a98fe35 100644 --- a/src/lib/components/chat/SettingsModal.svelte +++ b/src/lib/components/chat/SettingsModal.svelte @@ -873,11 +873,13 @@ {/if} {#if $user?.role === 'admin'} - + {/if}
From c11cc58b00a5445342c15b4078281dd051f96ca5 Mon Sep 17 00:00:00 2001 From: Classic298 <27028174+Classic298@users.noreply.github.com> Date: Tue, 10 Jun 2025 12:54:17 +0200 Subject: [PATCH 02/14] Small german translation update --- src/lib/i18n/locales/de-DE/translation.json | 30 ++++++++++----------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/lib/i18n/locales/de-DE/translation.json b/src/lib/i18n/locales/de-DE/translation.json index f36a4b9a3..6fc59827d 100644 --- a/src/lib/i18n/locales/de-DE/translation.json +++ b/src/lib/i18n/locales/de-DE/translation.json @@ -35,7 +35,7 @@ "Add Connection": "Verbindung hinzufügen", "Add Content": "Inhalt hinzufügen", "Add content here": "Inhalt hier hinzufügen", - "Add Custom Parameter": "", + "Add Custom Parameter": "Benutzerdefinierten Parameter hinzufügen", "Add custom prompt": "Benutzerdefinierten Prompt hinzufügen", "Add Files": "Dateien hinzufügen", "Add Group": "Gruppe hinzufügen", @@ -253,7 +253,7 @@ "Controls": "Steuerung", "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text.": "", "Copied": "Kopiert", - "Copied link to clipboard": "", + "Copied link to clipboard": "Link in Zwischenablage kopiert", "Copied shared chat URL to clipboard!": "Freigabelink in die Zwischenablage kopiert!", "Copied to clipboard": "In die Zwischenablage kopiert", "Copy": "Kopieren", @@ -561,7 +561,7 @@ "Export Functions": "Funktionen exportieren", "Export Models": "Modelle exportieren", "Export Presets": "Voreinstellungen exportieren", - "Export Prompt Suggestions": "", + "Export Prompt Suggestions": "Prompt Vorschläge exportieren", "Export Prompts": "Prompts exportieren", "Export to CSV": "Als CSV exportieren", "Export Tools": "Werkzeuge exportieren", @@ -574,7 +574,7 @@ "External Web Search URL": "Externe Websuche URL", "Failed to add file.": "Fehler beim Hinzufügen der Datei.", "Failed to connect to {{URL}} OpenAPI tool server": "Verbindung zum OpenAPI-Toolserver {{URL}} fehlgeschlagen", - "Failed to copy link": "", + "Failed to copy link": "Fehler beim kopieren des Links", "Failed to create API Key.": "Fehler beim Erstellen des API-Schlüssels.", "Failed to delete note": "Notiz konnte nicht gelöscht werden", "Failed to fetch models": "Fehler beim Abrufen der Modelle", @@ -612,7 +612,7 @@ "Folder name cannot be empty.": "Ordnername darf nicht leer sein.", "Folder name updated successfully": "Ordnername erfolgreich aktualisiert", "Followed instructions perfectly": "Anweisungen perfekt befolgt", - "Force OCR": "", + "Force OCR": "OCR erzwingen", "Force OCR on all pages of the PDF. This can lead to worse results if you have good text in your PDFs. Defaults to False.": "", "Forge new paths": "Neue Wege beschreiten", "Form": "Formular", @@ -625,7 +625,7 @@ "Function deleted successfully": "Funktion erfolgreich gelöscht", "Function Description": "Funktionsbeschreibung", "Function ID": "Funktions-ID", - "Function imported successfully": "", + "Function imported successfully": "Funktion erfolgreich importiert", "Function is now globally disabled": "Die Funktion ist jetzt global deaktiviert", "Function is now globally enabled": "Die Funktion ist jetzt global aktiviert", "Function Name": "Funktionsname", @@ -686,15 +686,15 @@ "Image Prompt Generation Prompt": "Prompt für die Bild-Prompt-Generierung", "Image Settings": "Bildeinstellungen", "Images": "Bilder", - "Import": "", + "Import": "Importieren", "Import Chats": "Chats importieren", "Import Config from JSON File": "Konfiguration aus JSON-Datei importieren", - "Import From Link": "", + "Import From Link": "Von Link importieren", "Import Functions": "Funktionen importieren", "Import Models": "Modelle importieren", "Import Notes": "Notizen importieren", "Import Presets": "Voreinstellungen importieren", - "Import Prompt Suggestions": "", + "Import Prompt Suggestions": "Prompt Vorschläge importieren", "Import Prompts": "Prompts importieren", "Import Tools": "Werkzeuge importieren", "Include": "Einschließen", @@ -710,7 +710,7 @@ "Interface": "Oberfläche", "Invalid file content": "Ungültiger Dateiinhalt", "Invalid file format.": "Ungültiges Dateiformat.", - "Invalid JSON file": "", + "Invalid JSON file": "Ungültige JSON Datei", "Invalid JSON schema": "Ungültiges JSON-Schema", "Invalid Tag": "Ungültiger Tag", "is typing...": "schreibt ...", @@ -742,7 +742,7 @@ "Landing Page Mode": "Startseitenmodus", "Language": "Sprache", "Language Locales": "", - "Languages": "", + "Languages": "Sprachen", "Last Active": "Zuletzt aktiv", "Last Modified": "Zuletzt bearbeitet", "Last reply": "Letzte Antwort", @@ -841,13 +841,13 @@ "Native": "Nativ", "New Chat": "Neuer Chat", "New Folder": "Neuer Ordner", - "New Function": "", + "New Function": "Neue Funktion", "New Note": "Neue Notiz", "New Password": "Neues Passwort", - "New Tool": "", + "New Tool": "Neues Werkzeug", "new-channel": "neuer-kanal", - "No chats found for this user.": "", - "No chats found.": "", + "No chats found for this user.": "Keine Chats für diesen Nutzer gefunden", + "No chats found.": "Keine Chats gefunden", "No content": "Kein Inhalt", "No content found": "Kein Inhalt gefunden", "No content found in file.": "Kein Inhalt in Datei gefunden.", From 8b5ecfb2fe587c37c57a6dba7fd4149ed96ee432 Mon Sep 17 00:00:00 2001 From: Sine Jespersen Date: Tue, 10 Jun 2025 13:52:24 +0200 Subject: [PATCH 03/14] Add aria label to close button --- src/lib/components/chat/SettingsModal.svelte | 1 + src/lib/i18n/locales/ar-BH/translation.json | 1 + src/lib/i18n/locales/ar/translation.json | 1 + src/lib/i18n/locales/bg-BG/translation.json | 1 + src/lib/i18n/locales/bn-BD/translation.json | 1 + src/lib/i18n/locales/bo-TB/translation.json | 1 + src/lib/i18n/locales/ca-ES/translation.json | 1 + src/lib/i18n/locales/ceb-PH/translation.json | 1 + src/lib/i18n/locales/cs-CZ/translation.json | 1 + src/lib/i18n/locales/da-DK/translation.json | 1 + src/lib/i18n/locales/de-DE/translation.json | 2 +- src/lib/i18n/locales/dg-DG/translation.json | 1 + src/lib/i18n/locales/el-GR/translation.json | 1 + src/lib/i18n/locales/en-GB/translation.json | 1 + src/lib/i18n/locales/en-US/translation.json | 1 + src/lib/i18n/locales/es-ES/translation.json | 1 + src/lib/i18n/locales/et-EE/translation.json | 1 + src/lib/i18n/locales/eu-ES/translation.json | 1 + src/lib/i18n/locales/fa-IR/translation.json | 1 + src/lib/i18n/locales/fi-FI/translation.json | 1 + src/lib/i18n/locales/fr-CA/translation.json | 1 + src/lib/i18n/locales/fr-FR/translation.json | 1 + src/lib/i18n/locales/he-IL/translation.json | 1 + src/lib/i18n/locales/hi-IN/translation.json | 1 + src/lib/i18n/locales/hr-HR/translation.json | 1 + src/lib/i18n/locales/hu-HU/translation.json | 1 + src/lib/i18n/locales/id-ID/translation.json | 1 + src/lib/i18n/locales/ie-GA/translation.json | 1 + src/lib/i18n/locales/it-IT/translation.json | 1 + src/lib/i18n/locales/ja-JP/translation.json | 1 + src/lib/i18n/locales/ka-GE/translation.json | 1 + src/lib/i18n/locales/ko-KR/translation.json | 1 + src/lib/i18n/locales/lt-LT/translation.json | 1 + src/lib/i18n/locales/ms-MY/translation.json | 1 + src/lib/i18n/locales/nb-NO/translation.json | 1 + src/lib/i18n/locales/nl-NL/translation.json | 1 + src/lib/i18n/locales/pa-IN/translation.json | 1 + src/lib/i18n/locales/pl-PL/translation.json | 1 + src/lib/i18n/locales/pt-BR/translation.json | 1 + src/lib/i18n/locales/pt-PT/translation.json | 1 + src/lib/i18n/locales/ro-RO/translation.json | 1 + src/lib/i18n/locales/ru-RU/translation.json | 1 + src/lib/i18n/locales/sk-SK/translation.json | 1 + src/lib/i18n/locales/sr-RS/translation.json | 1 + src/lib/i18n/locales/sv-SE/translation.json | 1 + src/lib/i18n/locales/th-TH/translation.json | 1 + src/lib/i18n/locales/tk-TW/translation.json | 1 + src/lib/i18n/locales/tr-TR/translation.json | 1 + src/lib/i18n/locales/uk-UA/translation.json | 1 + src/lib/i18n/locales/ur-PK/translation.json | 1 + src/lib/i18n/locales/vi-VN/translation.json | 1 + src/lib/i18n/locales/zh-CN/translation.json | 1 + src/lib/i18n/locales/zh-TW/translation.json | 1 + 53 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/lib/components/chat/SettingsModal.svelte b/src/lib/components/chat/SettingsModal.svelte index 19a98fe35..1881bc09b 100644 --- a/src/lib/components/chat/SettingsModal.svelte +++ b/src/lib/components/chat/SettingsModal.svelte @@ -541,6 +541,7 @@
{$i18n.t('Settings')}
From c9820d65a63d99935386c4df64ee5ba93844822f Mon Sep 17 00:00:00 2001 From: Sine Jespersen Date: Tue, 10 Jun 2025 13:59:27 +0200 Subject: [PATCH 05/14] add aria-hidden to svg, as this is decorative and only cause confusion for users with assistive tech --- src/lib/components/icons/XMark.svelte | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/components/icons/XMark.svelte b/src/lib/components/icons/XMark.svelte index b75be506c..adf1715d1 100644 --- a/src/lib/components/icons/XMark.svelte +++ b/src/lib/components/icons/XMark.svelte @@ -7,6 +7,7 @@ xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" + aria-hidden="true" stroke-width={strokeWidth} stroke="currentColor" class={className} From 56b012e3a6601e30d9025dcf20ebef9e1b170351 Mon Sep 17 00:00:00 2001 From: Sine Jespersen Date: Tue, 10 Jun 2025 14:06:14 +0200 Subject: [PATCH 06/14] danish translation added --- src/lib/i18n/locales/da-DK/translation.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/i18n/locales/da-DK/translation.json b/src/lib/i18n/locales/da-DK/translation.json index 980da8b11..17bac7a65 100644 --- a/src/lib/i18n/locales/da-DK/translation.json +++ b/src/lib/i18n/locales/da-DK/translation.json @@ -209,7 +209,7 @@ "Clone Chat": "Klon chat", "Clone of {{TITLE}}": "Klon af {{TITLE}}", "Close": "Luk", - "Close settings modal": "", + "Close settings modal": "Luk dialogboks med indstillinger", "Code execution": "Kode kørsel", "Code Execution": "Kode kørsel", "Code Execution Engine": "Kode kørsel engine", From 9931ccef1eb6448ea8df7949ca407acb040e428f Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 10 Jun 2025 16:20:57 +0400 Subject: [PATCH 07/14] refac --- backend/open_webui/models/users.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/open_webui/models/users.py b/backend/open_webui/models/users.py index a5dd9467b..00d504088 100644 --- a/backend/open_webui/models/users.py +++ b/backend/open_webui/models/users.py @@ -370,7 +370,7 @@ class UsersTable: except Exception: return False - def update_user_api_key_by_id(self, id: str, api_key: str) -> str: + def update_user_api_key_by_id(self, id: str, api_key: str) -> bool: try: with get_db() as db: result = db.query(User).filter_by(id=id).update({"api_key": api_key}) From a018140c7d2b89b8fe02e5c0cf87cb59462f6df6 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 10 Jun 2025 16:41:39 +0400 Subject: [PATCH 08/14] refac: admin settings models --- src/lib/components/admin/Settings/Models.svelte | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/components/admin/Settings/Models.svelte b/src/lib/components/admin/Settings/Models.svelte index 875d542ff..20c0948d0 100644 --- a/src/lib/components/admin/Settings/Models.svelte +++ b/src/lib/components/admin/Settings/Models.svelte @@ -75,6 +75,8 @@ }; const init = async () => { + models = null; + workspaceModels = await getBaseModels(localStorage.token); baseModels = await getModels(localStorage.token, null, true); @@ -126,6 +128,7 @@ toast.success($i18n.t('Model updated successfully')); } } + await init(); _models.set( await getModels( @@ -133,7 +136,6 @@ $config?.features?.enable_direct_connections && ($settings?.directConnections ?? null) ) ); - await init(); }; const toggleModelHandler = async (model) => { From d2e7feea86b4fdbc0b4465133b3da664b7d33b70 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 10 Jun 2025 16:42:26 +0400 Subject: [PATCH 09/14] refac --- src/lib/components/chat/Settings/General.svelte | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/components/chat/Settings/General.svelte b/src/lib/components/chat/Settings/General.svelte index c511bebb4..6c70a4a6c 100644 --- a/src/lib/components/chat/Settings/General.svelte +++ b/src/lib/components/chat/Settings/General.svelte @@ -96,6 +96,7 @@ use_mlock: params.use_mlock !== null ? params.use_mlock : undefined, num_thread: params.num_thread !== null ? params.num_thread : undefined, num_gpu: params.num_gpu !== null ? params.num_gpu : undefined, + think: params.think !== null ? params.think : undefined, keep_alive: params.keep_alive !== null ? params.keep_alive : undefined, format: params.format !== null ? params.format : undefined } From b39d33cefbb58f35d29d4de9b743ba8637dfc2d5 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 10 Jun 2025 16:52:37 +0400 Subject: [PATCH 10/14] refac --- backend/open_webui/routers/ollama.py | 6 +----- backend/open_webui/utils/payload.py | 6 +++++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/open_webui/routers/ollama.py b/backend/open_webui/routers/ollama.py index 490e8bfbb..ea46a1cca 100644 --- a/backend/open_webui/routers/ollama.py +++ b/backend/open_webui/routers/ollama.py @@ -1290,11 +1290,7 @@ async def generate_chat_completion( if params: system = params.pop("system", None) - # Unlike OpenAI, Ollama does not support params directly in the body - payload["options"] = apply_model_params_to_body_ollama( - params, (payload.get("options", {}) or {}) - ) - + payload = apply_model_params_to_body_ollama(params, payload) payload = apply_model_system_prompt_to_body(system, payload, metadata, user) # Check if user has access to the model diff --git a/backend/open_webui/utils/payload.py b/backend/open_webui/utils/payload.py index af4995d1e..9b7f74835 100644 --- a/backend/open_webui/utils/payload.py +++ b/backend/open_webui/utils/payload.py @@ -196,7 +196,11 @@ def apply_model_params_to_body_ollama(params: dict, form_data: dict) -> dict: form_data[key] = value(param) del params[key] - return apply_model_params_to_body(params, form_data, mappings) + # Unlike OpenAI, Ollama does not support params directly in the body + form_data["options"] = apply_model_params_to_body( + params, (form_data.get("options", {}) or {}), mappings + ) + return form_data def convert_messages_openai_to_ollama(messages: list[dict]) -> list[dict]: From a7330d97da59d0280ba95374d278df91af5620cb Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 10 Jun 2025 16:53:37 +0400 Subject: [PATCH 11/14] chore: format --- src/lib/i18n/locales/de-DE/translation.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/i18n/locales/de-DE/translation.json b/src/lib/i18n/locales/de-DE/translation.json index 31467623b..2174895ff 100644 --- a/src/lib/i18n/locales/de-DE/translation.json +++ b/src/lib/i18n/locales/de-DE/translation.json @@ -718,7 +718,6 @@ "Invalid file content": "Ungültiger Dateiinhalt", "Invalid file format.": "Ungültiges Dateiformat.", "Invalid JSON file": "Ungültige JSON Datei", - "Invalid JSON schema": "Ungültiges JSON-Schema", "Invalid Tag": "Ungültiger Tag", "is typing...": "schreibt ...", "January": "Januar", From adab4dbf218bf08ee22a05e658726a76871b9a05 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 10 Jun 2025 17:50:32 +0400 Subject: [PATCH 12/14] chore: bump --- backend/requirements.txt | 1 - pyproject.toml | 9 ++++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/backend/requirements.txt b/backend/requirements.txt index 507dc5db6..c4f19b61b 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -14,7 +14,6 @@ aiocache aiofiles starlette-compress==1.6.0 - sqlalchemy==2.0.38 alembic==1.14.0 peewee==3.18.1 diff --git a/pyproject.toml b/pyproject.toml index ef27260c4..188827c73 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ authors = [ license = { file = "LICENSE" } dependencies = [ "fastapi==0.115.7", - "uvicorn[standard]==0.34.0", + "uvicorn[standard]==0.34.2", "pydantic==2.10.6", "python-multipart==0.0.20", @@ -20,7 +20,6 @@ dependencies = [ "async-timeout", "aiocache", "aiofiles", - "starlette-compress==1.6.0", "sqlalchemy==2.0.38", @@ -83,13 +82,13 @@ dependencies = [ "openpyxl==3.1.5", "pyxlsb==1.0.10", "xlrd==2.0.1", - "validators==0.34.0", + "validators==0.35.0", "psutil", "sentencepiece", "soundfile==0.13.1", - "azure-ai-documentintelligence==1.0.0", + "azure-ai-documentintelligence==1.0.2", - "pillow==11.1.0", + "pillow==11.2.1", "opencv-python-headless==4.11.0.86", "rapidocr-onnxruntime==1.4.4", "rank-bm25==0.2.2", From ab42a192e69140e0a417d669d166183ff7d9567b Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 10 Jun 2025 17:54:08 +0400 Subject: [PATCH 13/14] refac: styling --- src/lib/components/admin/Users/UserList/EditUserModal.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/admin/Users/UserList/EditUserModal.svelte b/src/lib/components/admin/Users/UserList/EditUserModal.svelte index 19f481e83..91946e3ee 100644 --- a/src/lib/components/admin/Users/UserList/EditUserModal.svelte +++ b/src/lib/components/admin/Users/UserList/EditUserModal.svelte @@ -101,7 +101,7 @@