Merge branch 'dev' into update-chat-timestamp-locale

This commit is contained in:
Timothy Jaeryang Baek 2024-05-07 11:00:31 -07:00 committed by GitHub
commit 1b5d88d0c0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 53 additions and 46 deletions

View File

@ -1,5 +1,6 @@
## Pull Request Checklist
- [ ] **Target branch:** Pull requests should target the `dev` branch.
- [ ] **Description:** Briefly describe the changes in this pull request.
- [ ] **Changelog:** Ensure a changelog entry following the format of [Keep a Changelog](https://keepachangelog.com/) is added at the bottom of the PR description.
- [ ] **Documentation:** Have you updated relevant documentation [Open WebUI Docs](https://github.com/open-webui/docs), or other documentation sources?

View File

@ -9,7 +9,6 @@ Flask-Cors==4.0.0
python-socketio==5.11.2
python-jose==3.3.0
passlib[bcrypt]==1.7.4
uuid==1.30
requests==2.31.0
aiohttp==3.9.5
@ -19,7 +18,6 @@ psycopg2-binary==2.9.9
PyMySQL==1.1.0
bcrypt==4.1.2
litellm==1.35.28
litellm[proxy]==1.35.28
boto3==1.34.95
@ -54,9 +52,8 @@ rank-bm25==0.2.2
faster-whisper==1.0.1
PyJWT==2.8.0
PyJWT[crypto]==2.8.0
black==24.4.2
langfuse==2.27.3
youtube-transcript-api
youtube-transcript-api==0.6.2

View File

@ -107,7 +107,7 @@
reader.readAsText(file);
} else {
toast.error(`File not found.`);
toast.error($i18n.t('File not found.'));
}
}
};

View File

@ -24,7 +24,7 @@
{
name: 'All Documents',
type: 'collection',
title: 'All Documents',
title: $i18n.t('All Documents'),
collection_names: $documents.map((doc) => doc.collection_name)
}
]

View File

@ -1,6 +1,8 @@
<script lang="ts">
import Bolt from '$lib/components/icons/Bolt.svelte';
import { onMount } from 'svelte';
import { onMount, getContext } from 'svelte';
const i18n = getContext('i18n');
export let submitPrompt: Function;
export let suggestionPrompts = [];
@ -33,7 +35,7 @@
{#if prompts.length > 0}
<div class="mb-2 flex gap-1 text-sm font-medium items-center text-gray-400 dark:text-gray-600">
<Bolt />
Suggested
{$i18n.t('Suggested')}
</div>
{/if}
@ -71,7 +73,7 @@
<div
class="text-xs text-gray-400 group-hover:text-gray-500 dark:text-gray-600 dark:group-hover:text-gray-500 transition self-center"
>
Prompt
{$i18n.t('Prompt')}
</div>
<div

View File

@ -151,7 +151,7 @@
models.set(await getModels(localStorage.token));
} else {
toast.error('Download canceled');
toast.error($i18n.t('Download canceled'));
}
delete $MODEL_DOWNLOAD_POOL[sanitizedModelTag];
@ -368,7 +368,7 @@
</div>
<div class="mr-2 translate-y-0.5">
<Tooltip content="Cancel">
<Tooltip content={$i18n.t('Cancel')}>
<button
class="text-gray-800 dark:text-gray-100"
on:click={() => {

View File

@ -245,7 +245,7 @@
models.set(await getModels(localStorage.token));
} else {
toast.error('Download canceled');
toast.error($i18n.t('Download canceled'));
}
delete $MODEL_DOWNLOAD_POOL[sanitizedModelTag];
@ -652,7 +652,7 @@
</div>
</div>
<Tooltip content="Cancel">
<Tooltip content={$i18n.t('Cancel')}>
<button
class="text-gray-800 dark:text-gray-100"
on:click={() => {

View File

@ -17,7 +17,7 @@
tagName = '';
showTagInput = false;
} else {
toast.error('Invalid Tag');
toast.error($i18n.t(`Invalid Tag`));
}
};
</script>

View File

@ -134,7 +134,7 @@
const editChatTitle = async (id, _title) => {
if (_title === '') {
toast.error('Title cannot be an empty string.');
toast.error($i18n.t('Title cannot be an empty string.'));
} else {
title = _title;

View File

@ -14,14 +14,14 @@
"Add a model tag name": "Benenne deinen Modell-Tag",
"Add a short description about what this modelfile does": "Füge eine kurze Beschreibung hinzu, was dieses Modelfile kann",
"Add a short title for this prompt": "Füge einen kurzen Titel für diesen Prompt hinzu",
"Add a tag": "Tag hinzufügen",
"Add custom prompt": "",
"Add a tag": "benenne",
"Add custom prompt": "Eigenen Prompt hinzufügen",
"Add Docs": "Dokumente hinzufügen",
"Add Files": "Dateien hinzufügen",
"Add message": "Nachricht eingeben",
"Add Model": "Modell hinzufügen",
"Add Tags": "Tags hinzufügen",
"Add User": "",
"Add User": "User hinzufügen",
"Adjusting these settings will apply changes universally to all users.": "Das Anpassen dieser Einstellungen wirkt sich universell auf alle Benutzer aus.",
"admin": "Administrator",
"Admin Panel": "Admin Panel",
@ -39,14 +39,14 @@
"API Base URL": "API Basis URL",
"API Key": "API Key",
"API Key created.": "API Key erstellt",
"API keys": "",
"API keys": "API Schlüssel",
"API RPM": "API RPM",
"April": "April",
"Archive": "Archivieren",
"Archived Chats": "Archivierte Chats",
"are allowed - Activate this command by typing": "sind erlaubt - Aktiviere diesen Befehl, indem du",
"Are you sure?": "Bist du sicher?",
"Attach file": "",
"Attach file": "Datei anhängen",
"Attention to detail": "Auge fürs Detail",
"Audio": "Audio",
"August": "August",
@ -57,10 +57,10 @@
"available!": "verfügbar!",
"Back": "Zurück",
"Bad Response": "Schlechte Antwort",
"before": "",
"before": "bereits geteilt",
"Being lazy": "Faul sein",
"Builder Mode": "Builder Modus",
"Bypass SSL verification for Websites": "",
"Bypass SSL verification for Websites": "Bypass SSL-Verifizierung für Websites",
"Cancel": "Abbrechen",
"Categories": "Kategorien",
"Change Password": "Passwort ändern",
@ -75,12 +75,12 @@
"Chunk Overlap": "Chunk Overlap",
"Chunk Params": "Chunk Parameter",
"Chunk Size": "Chunk Size",
"Citation": "",
"Citation": "Zitate",
"Click here for help.": "Klicke hier für Hilfe.",
"Click here to": "Klicke hier, um",
"Click here to check other modelfiles.": "Klicke hier, um andere Modelfiles zu überprüfen.",
"Click here to select": "Klicke hier um auszuwählen",
"Click here to select a csv file.": "",
"Click here to select a csv file.": "Klicke hier um eine CSV-Datei auszuwählen.",
"Click here to select documents.": "Klicke hier um Dokumente auszuwählen",
"click here.": "hier klicken.",
"Click on the user role button to change a user's role.": "Klicke auf die Benutzerrollenschaltfläche, um die Rolle eines Benutzers zu ändern.",
@ -114,7 +114,7 @@
"Custom": "Benutzerdefiniert",
"Customize Ollama models for a specific purpose": "Ollama-Modelle für einen bestimmten Zweck anpassen",
"Dark": "Dunkel",
"Dashboard": "",
"Dashboard": "Dashboard",
"Database": "Datenbank",
"DD/MM/YYYY HH:mm": "DD.MM.YYYY HH:mm",
"December": "Dezember",
@ -142,7 +142,7 @@
"Discover a prompt": "Einen Prompt entdecken",
"Discover, download, and explore custom prompts": "Benutzerdefinierte Prompts entdecken, herunterladen und erkunden",
"Discover, download, and explore model presets": "Modellvorgaben entdecken, herunterladen und erkunden",
"Display the username instead of You in the Chat": "Den Benutzernamen anstelle von 'Du' im Chat anzeigen",
"Display the username instead of You in the Chat": "Den Benutzernamen anstelle von 'du' im Chat anzeigen",
"Document": "Dokument",
"Document Settings": "Dokumenteinstellungen",
"Documents": "Dokumente",
@ -176,7 +176,7 @@
"Enter Max Tokens (litellm_params.max_tokens)": "Gib die maximalen Token ein (litellm_params.max_tokens) an",
"Enter model tag (e.g. {{modelTag}})": "Gib den Model-Tag ein",
"Enter Number of Steps (e.g. 50)": "Gib die Anzahl an Schritten ein (z.B. 50)",
"Enter Score": "",
"Enter Score": "Score eingeben",
"Enter stop sequence": "Stop-Sequenz eingeben",
"Enter Top K": "Gib Top K ein",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Gib die URL ein (z.B. http://127.0.0.1:7860/)",
@ -184,7 +184,7 @@
"Enter Your Email": "Gib deine E-Mail-Adresse ein",
"Enter Your Full Name": "Gib deinen vollständigen Namen ein",
"Enter Your Password": "Gib dein Passwort ein",
"Enter Your Role": "",
"Enter Your Role": "Gebe deine Rolle ein",
"Experimental": "Experimentell",
"Export All Chats (All Users)": "Alle Chats exportieren (alle Benutzer)",
"Export Chats": "Chats exportieren",
@ -212,7 +212,7 @@
"Hello, {{name}}": "Hallo, {{name}}",
"Hide": "Verbergen",
"Hide Additional Params": "Verstecke zusätzliche Parameter",
"How can I help you today?": "Wie kann ich Dir heute helfen?",
"How can I help you today?": "Wie kann ich dir heute helfen?",
"Hybrid Search": "Hybride Suche",
"Image Generation (Experimental)": "Bildgenerierung (experimentell)",
"Image Generation Engine": "Bildgenerierungs-Engine",
@ -222,8 +222,8 @@
"Import Documents Mapping": "Dokumentenmapping importieren",
"Import Modelfiles": "Modelfiles importieren",
"Import Prompts": "Prompts importieren",
"Include `--api` flag when running stable-diffusion-webui": "Füge das `--api`-Flag hinzu, wenn Du stable-diffusion-webui nutzt",
"Input commands": "",
"Include `--api` flag when running stable-diffusion-webui": "Füge das `--api`-Flag hinzu, wenn du stable-diffusion-webui nutzt",
"Input commands": "Eingabebefehle",
"Interface": "Benutzeroberfläche",
"January": "Januar",
"join our Discord for help.": "Trete unserem Discord bei, um Hilfe zu erhalten.",
@ -249,7 +249,7 @@
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es können maximal 3 Modelle gleichzeitig heruntergeladen werden. Bitte versuche es später erneut.",
"May": "Mai",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "Fortlaudende Nachrichten in diesem Chat werden nicht automatisch geteilt. Benutzer mit dem Link können den Chat einsehen.",
"Minimum Score": "",
"Minimum Score": "Mindestscore",
"Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta",
"Mirostat Tau": "Mirostat Tau",
@ -283,7 +283,7 @@
"No source available": "",
"Not factually correct": "Nicht sachlich korrekt.",
"Not sure what to add?": "Nicht sicher, was hinzugefügt werden soll?",
"Not sure what to write? Switch to": "Nicht sicher, was Du schreiben sollst? Wechsel zu",
"Not sure what to write? Switch to": "Nicht sicher, was du schreiben sollst? Wechsel zu",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
"Notifications": "Desktop-Benachrichtigungen",
"November": "November",
@ -291,7 +291,7 @@
"Off": "Aus",
"Okay, Let's Go!": "Okay, los geht's!",
"OLED Dark": "OLED Dunkel",
"Ollama": "",
"Ollama": "Ollama",
"Ollama Base URL": "Ollama Basis URL",
"Ollama Version": "Ollama-Version",
"On": "Ein",
@ -299,12 +299,12 @@
"Only alphanumeric characters and hyphens are allowed in the command string.": "Nur alphanumerische Zeichen und Bindestriche sind im Befehlsstring erlaubt.",
"Oops! Hold tight! Your files are still in the processing oven. We're cooking them up to perfection. Please be patient and we'll let you know once they're ready.": "Hoppla! Warte noch einen Moment! Die Dateien sind noch im der Verarbeitung. Bitte habe etwas Geduld und wir informieren Dich, sobald sie bereit sind.",
"Oops! Looks like the URL is invalid. Please double-check and try again.": "Hoppla! Es sieht so aus, als wäre die URL ungültig. Bitte überprüfe sie und versuche es nochmal.",
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Hoppla! Du verwendest eine nicht unterstützte Methode (nur Frontend). Bitte stelle die WebUI vom Backend aus bereit.",
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Hoppla! du verwendest eine nicht unterstützte Methode (nur Frontend). Bitte stelle die WebUI vom Backend aus bereit.",
"Open": "Öffne",
"Open AI": "Open AI",
"Open AI (Dall-E)": "Open AI (Dall-E)",
"Open new chat": "Neuen Chat öffnen",
"OpenAI": "",
"OpenAI": "OpenAI",
"OpenAI API": "OpenAI-API",
"OpenAI API Config": "OpenAI API Konfiguration",
"OpenAI API Key is required.": "OpenAI API Key erforderlich.",
@ -346,12 +346,12 @@
"Repeat Last N": "Repeat Last N",
"Repeat Penalty": "Repeat Penalty",
"Request Mode": "Request-Modus",
"Reranking Model": "",
"Reranking model disabled": "",
"Reranking Model": "Reranking Modell",
"Reranking model disabled": "Rranking Modell deaktiviert",
"Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Vektorspeicher zurücksetzen",
"Response AutoCopy to Clipboard": "Antwort automatisch in die Zwischenablage kopieren",
"Retrieval Augmented Generation Settings": "",
"Retrieval Augmented Generation Settings": "Retrieval Augmented Generation Einstellungen",
"Role": "Rolle",
"Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn",
@ -359,7 +359,7 @@
"Save & Create": "Speichern und erstellen",
"Save & Submit": "Speichern und senden",
"Save & Update": "Speichern und aktualisieren",
"Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Das direkte Speichern von Chat-Protokollen im Browser-Speicher wird nicht mehr unterstützt. Bitte nimm Dir einen Moment Zeit, um deine Chat-Protokolle herunterzuladen und zu löschen, indem Du auf die Schaltfläche unten klickst. Keine Sorge, Du kannst deine Chat-Protokolle problemlos über das Backend wieder importieren.",
"Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Das direkte Speichern von Chat-Protokollen im Browser-Speicher wird nicht mehr unterstützt. Bitte nimm dir einen Moment Zeit, um deine Chat-Protokolle herunterzuladen und zu löschen, indem du auf die Schaltfläche unten klickst. Keine Sorge, du kannst deine Chat-Protokolle problemlos über das Backend wieder importieren.",
"Scan": "Scannen",
"Scan complete!": "Scan abgeschlossen!",
"Scan for documents from {{path}}": "Dokumente von {{path}} scannen",
@ -401,7 +401,7 @@
"Sign Out": "Abmelden",
"Sign up": "Registrieren",
"Signing in": "Anmeldung",
"Source": "",
"Source": "Quellen",
"Speech recognition error: {{error}}": "Spracherkennungsfehler: {{error}}",
"Speech-to-Text Engine": "Sprache-zu-Text-Engine",
"SpeechRecognition API is not supported in this browser.": "Die Spracherkennungs-API wird in diesem Browser nicht unterstützt.",
@ -422,7 +422,7 @@
"Text-to-Speech Engine": "Text-zu-Sprache-Engine",
"Tfs Z": "Tfs Z",
"Thanks for your feedback!": "Danke für dein Feedback",
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "",
"The score should be a value between 0.0 (0%) and 1.0 (100%).": "Der Score sollte ein Wert zwischen 0,0 (0 %) und 1,0 (100 %) sein.",
"Theme": "Design",
"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "Dadurch werden deine wertvollen Unterhaltungen sicher in der Backend-Datenbank gespeichert. Vielen Dank!",
"This setting does not sync across browsers or devices.": "Diese Einstellung wird nicht zwischen Browsern oder Geräten synchronisiert.",
@ -465,8 +465,8 @@
"Version": "Version",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Warnung: Wenn du dein Einbettungsmodell aktualisierst oder änderst, musst du alle Dokumente erneut importieren.",
"Web": "Web",
"Web Params": "",
"Webhook URL": "",
"Web Params": "Web Parameter",
"Webhook URL": "Webhook URL",
"WebUI Add-ons": "WebUI-Add-Ons",
"WebUI Settings": "WebUI-Einstellungen",
"WebUI will make requests to": "Wenn aktiviert sendet WebUI externe Anfragen an",
@ -481,5 +481,12 @@
"You have shared this chat": "Du hast diesen Chat",
"You're a helpful assistant.": "Du bist ein hilfreicher Assistent.",
"You're now logged in.": "Du bist nun eingeloggt.",
"Youtube": "YouTube"
"Youtube": "YouTube",
"Help": "Hilfe",
"All Documents": "Alle Dokumente",
"Suggested": "Vorgeschlagen",
"Prompt": "Prompt",
"Download canceled": "Download abgebrochen",
"Invalid Tag": "Ungültiger Tag",
"Title cannot be an empty string.": "Titel darf nicht leer sein."
}

View File

@ -177,7 +177,7 @@
</script>
<div class=" hidden lg:flex fixed bottom-0 right-0 px-3 py-3 z-10">
<Tooltip content="Help" placement="left">
<Tooltip content={$i18n.t('Help')} placement="left">
<button
id="show-shortcuts-button"
bind:this={showShortcutsButtonElement}