forked from open-webui/open-webui
		
	main #2
					 11 changed files with 73 additions and 25 deletions
				
			
		|  | @ -1,8 +1,13 @@ | |||
| <script> | ||||
| 	import { getContext } from 'svelte'; | ||||
| 	const i18n = getContext('i18n'); | ||||
| </script> | ||||
| 
 | ||||
| <div class="  text-center text-6xl mb-3">📄</div> | ||||
| <div class="text-center dark:text-white text-2xl font-semibold z-50">Add Files</div> | ||||
| <div class="text-center dark:text-white text-2xl font-semibold z-50">{$i18n.t('Add Files')}</div> | ||||
| 
 | ||||
| <slot | ||||
| 	><div class=" mt-2 text-center text-sm dark:text-gray-200 w-full"> | ||||
| 		Drop any files here to add to the conversation | ||||
| 		{$i18n.t('Drop any files here to add to the conversation')} | ||||
| 	</div> | ||||
| </slot> | ||||
|  |  | |||
|  | @ -628,7 +628,7 @@ | |||
| 												/> | ||||
| 											</svg> | ||||
| 										</div> | ||||
| 										<div class=" self-center font-medium">Playground</div> | ||||
| 										<div class=" self-center font-medium">{$i18n.t('Playground')}</div> | ||||
| 									</button> | ||||
| 								{/if} | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,5 +1,7 @@ | |||
| <script lang="ts"> | ||||
| 	import { onMount } from 'svelte'; | ||||
| 	import { onMount, getContext } from 'svelte'; | ||||
| 
 | ||||
| 	const i18n = getContext('i18n'); | ||||
| 
 | ||||
| 	export let messages = []; | ||||
| 
 | ||||
|  | @ -20,7 +22,7 @@ | |||
| 					class="px-2 py-1 text-sm font-semibold uppercase min-w-[6rem] text-left dark:group-hover:bg-gray-800 rounded-lg transition" | ||||
| 					on:click={() => { | ||||
| 						message.role = message.role === 'user' ? 'assistant' : 'user'; | ||||
| 					}}>{message.role}</button | ||||
| 					}}>{$i18n.t(message.role)}</button | ||||
| 				> | ||||
| 			</div> | ||||
| 
 | ||||
|  | @ -28,7 +30,9 @@ | |||
| 				<textarea | ||||
| 					id="{message.role}-{idx}-textarea" | ||||
| 					class="w-full bg-transparent outline-none rounded-lg p-2 text-sm resize-none overflow-hidden" | ||||
| 					placeholder="Enter {message.role === 'user' ? 'a user' : 'an assistant'} message here" | ||||
| 					placeholder={$i18n.t( | ||||
| 						`Enter ${message.role === 'user' ? 'a user' : 'an assistant'} message here` | ||||
| 					)} | ||||
| 					rows="1" | ||||
| 					on:input={(e) => { | ||||
| 						e.target.style.height = ''; | ||||
|  | @ -100,6 +104,6 @@ | |||
| 			</svg> | ||||
| 		</div> | ||||
| 
 | ||||
| 		<div class=" text-sm font-medium">Add message</div> | ||||
| 		<div class=" text-sm font-medium">{$i18n.t('Add message')}</div> | ||||
| 	</button> | ||||
| </div> | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| { | ||||
| 	"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' oder '-1' für kein Ablaufdatum.", | ||||
| 	"(Beta)": "(Beta)", | ||||
| 	"(e.g. `sh webui.sh --api`)": "(z.B. `sh webui.sh --api`)", | ||||
| 	"{{item}} not provided": "{{item}} nicht angegeben", | ||||
| 	"{{modelName}} is thinking...": "{{modelName}} denkt nach...", | ||||
|  | @ -14,6 +15,7 @@ | |||
| 	"Add Docs": "Dokumente hinzufügen", | ||||
| 	"Add Files": "Dateien hinzufügen", | ||||
| 	"Add LiteLLM Model": "LiteLLM Modell hinzufügen", | ||||
| 	"Add message": "Nachricht eingeben", | ||||
| 	"add tags": "Tags 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", | ||||
|  | @ -33,6 +35,7 @@ | |||
| 	"API Key": "API Key", | ||||
| 	"API RPM": "API RPM", | ||||
| 	"are allowed - Activate this command by typing": "sind erlaubt - Aktivieren Sie diesen Befehl, indem Sie", | ||||
| 	"assistant": "Assistent", | ||||
| 	"Audio": "Audio", | ||||
| 	"Auto-playback response": "Automatische Wiedergabe der Antwort", | ||||
| 	"Auto-send input after 3 sec.": "Automatisches Senden der Eingabe nach 3 Sek", | ||||
|  | @ -43,6 +46,7 @@ | |||
| 	"Cancel": "Abbrechen", | ||||
| 	"Categories": "Kategorien", | ||||
| 	"Change Password": "Passwort ändern", | ||||
| 	"Chat": "Chat", | ||||
| 	"Chat History": "Chat Verlauf", | ||||
| 	"Chat History is off for this browser.": "Chat Verlauf ist für diesen Browser ausgeschaltet.", | ||||
| 	"Chats": "Chats", | ||||
|  | @ -107,6 +111,7 @@ | |||
| 	"Don't have an account?": "Sie haben noch kein Konto?", | ||||
| 	"Download as a File": "Als Datei herunterladen", | ||||
| 	"Download Database": "Datenbank herunterladen", | ||||
| 	"Drop any files here to add to the conversation": "Lassen Sie Dateien hier fallen, um sie dem Chat hinzuzufügen", | ||||
| 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "z.B. '30s','10m'. Gültige Zeiteinheiten sind 's', 'm', 'h'.", | ||||
| 	"Edit Doc": "Dokument bearbeiten", | ||||
| 	"Edit User": "Benutzer bearbeiten", | ||||
|  | @ -114,6 +119,8 @@ | |||
| 	"Enable Chat History": "Chat-Verlauf aktivieren", | ||||
| 	"Enable New Sign Ups": "Neue Anmeldungen aktivieren", | ||||
| 	"Enabled": "Aktiviert", | ||||
| 	"Enter a user message here": "Geben Sie hier eine Benutzernachricht ein", | ||||
| 	"Enter an assistant message here": "Geben Sie hier eine Assistentennachricht ein", | ||||
| 	"Enter OpenAI API Key": "OpenAI-API-Key eingeben", | ||||
| 	"Enter stop sequence": "Stop-Sequenz eingeben", | ||||
| 	"Enter Your Email": "Geben Sie Ihre E-Mail-Adresse ein", | ||||
|  | @ -208,6 +215,7 @@ | |||
| 	"Password": "Passwort", | ||||
| 	"pending": "ausstehend", | ||||
| 	"Permission denied when accessing microphone: {{error}}": "Zugriff auf das Mikrofon verweigert: {{error}}", | ||||
| 	"Playground": "Playground", | ||||
| 	"Profile": "Profil", | ||||
| 	"Prompt Content": "Prompt-Inhalt", | ||||
| 	"Prompt suggestions": "Prompt-Vorschläge", | ||||
|  | @ -265,13 +273,16 @@ | |||
| 	"SpeechRecognition API is not supported in this browser.": "Die SpeechRecognition-API wird in diesem Browser nicht unterstützt.", | ||||
| 	"Stop Sequence": "Stop Sequence", | ||||
| 	"STT Settings": "STT-Einstellungen", | ||||
| 	"Submit": "Senden", | ||||
| 	"Success": "Erfolg", | ||||
| 	"Successfully updated.": "Erfolgreich aktualisiert.", | ||||
| 	"Sync All": "Alles synchronisieren", | ||||
| 	"System": "System", | ||||
| 	"System Prompt": "System-Prompt", | ||||
| 	"Tags": "Tags", | ||||
| 	"Temperature": "Temperatur", | ||||
| 	"Template": "Vorlage", | ||||
| 	"Text Completion": "Textvervollständigung", | ||||
| 	"Text-to-Speech Engine": "Text-zu-Sprache-Engine", | ||||
| 	"Tfs Z": "Tfs Z", | ||||
| 	"Theme": "Design", | ||||
|  | @ -310,5 +321,6 @@ | |||
| 	"Whisper (Local)": "Whisper (Lokal)", | ||||
| 	"Write a prompt suggestion (e.g. Who are you?)": "Schreiben Sie einen Prompt-Vorschlag (z.B. Wer bist du?)", | ||||
| 	"Write a summary in 50 words that summarizes [topic or keyword]": "Schreibe eine kurze Zusammenfassung in 50 Wörtern, die [Thema oder Schlüsselwort] zusammenfasst.", | ||||
| 	"You're a helpful assistant.": "Du bist ein hilfreicher Assistent.", | ||||
| 	"You're now logged in.": "Sie sind jetzt angemeldet." | ||||
| } | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| { | ||||
| 	"'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.", | ||||
| 	"(Beta)": "(Beta)", | ||||
| 	"(e.g. `sh webui.sh --api`)": "(e.g. `sh webui.sh --api`)", | ||||
| 	"{{item}} not provided": "{{item}} not provided", | ||||
| 	"{{modelName}} is thinking...": "{{modelName}} is thinking...", | ||||
|  | @ -14,6 +15,7 @@ | |||
| 	"Add Docs": "Add Docs", | ||||
| 	"Add Files": "Add Files", | ||||
| 	"Add LiteLLM Model": "Add LiteLLM Model", | ||||
| 	"Add message": "Add message", | ||||
| 	"add tags": "add tags", | ||||
| 	"Adjusting these settings will apply changes universally to all users.": "Adjusting these settings will apply changes universally to all users.", | ||||
| 	"admin": "Admin", | ||||
|  | @ -33,6 +35,7 @@ | |||
| 	"API Key": "API Key", | ||||
| 	"API RPM": "API RPM", | ||||
| 	"are allowed - Activate this command by typing": "are allowed - Activate this command by typing", | ||||
| 	"assistant": "Assistant", | ||||
| 	"Audio": "Audio", | ||||
| 	"Auto-playback response": "Auto-playback response", | ||||
| 	"Auto-send input after 3 sec.": "Auto-send input after 3 sec.", | ||||
|  | @ -43,6 +46,7 @@ | |||
| 	"Cancel": "Cancel", | ||||
| 	"Categories": "Categories", | ||||
| 	"Change Password": "Change Password", | ||||
| 	"Chat": "Chat", | ||||
| 	"Chat History": "Chat History", | ||||
| 	"Chat History is off for this browser.": "Chat History is off for this browser.", | ||||
| 	"Chats": "Chats", | ||||
|  | @ -107,6 +111,7 @@ | |||
| 	"Don't have an account?": "Don't have an account?", | ||||
| 	"Download as a File": "Download as a File", | ||||
| 	"Download Database": "Download Database", | ||||
| 	"Drop any files here to add to the conversation": "Drop any files here to add to the conversation", | ||||
| 	"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.", | ||||
| 	"Edit Doc": "Edit Doc", | ||||
| 	"Edit User": "Edit User", | ||||
|  | @ -114,6 +119,8 @@ | |||
| 	"Enable Chat History": "Enable Chat History", | ||||
| 	"Enable New Sign Ups": "Enable New Sign Ups", | ||||
| 	"Enabled": "Enabled", | ||||
| 	"Enter a user message here": "Enter a user message here", | ||||
| 	"Enter an assistant message here": "Enter an assistant message here", | ||||
| 	"Enter OpenAI API Key": "Enter OpenAI API Key", | ||||
| 	"Enter stop sequence": "Enter stop sequence", | ||||
| 	"Enter Your Email": "Enter Your Email", | ||||
|  | @ -208,6 +215,7 @@ | |||
| 	"Password": "Password", | ||||
| 	"pending": "Pending", | ||||
| 	"Permission denied when accessing microphone: {{error}}": "Permission denied when accessing microphone: {{error}}", | ||||
| 	"Playground": "Playground", | ||||
| 	"Profile": "Profile", | ||||
| 	"Prompt Content": "Prompt Content", | ||||
| 	"Prompt suggestions": "Prompt suggestions", | ||||
|  | @ -265,13 +273,16 @@ | |||
| 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser.", | ||||
| 	"Stop Sequence": "Stop Sequence", | ||||
| 	"STT Settings": "STT Settings", | ||||
| 	"Submit": "Submit", | ||||
| 	"Success": "Success", | ||||
| 	"Successfully updated.": "Successfully updated.", | ||||
| 	"Sync All": "Sync All", | ||||
| 	"System": "System", | ||||
| 	"System Prompt": "System Prompt", | ||||
| 	"Tags": "Tags", | ||||
| 	"Temperature": "Temperature", | ||||
| 	"Template": "Template", | ||||
| 	"Text Completion": "Text Completion", | ||||
| 	"Text-to-Speech Engine": "Text-to-Speech Engine", | ||||
| 	"Tfs Z": "Tfs Z", | ||||
| 	"Theme": "Theme", | ||||
|  | @ -310,5 +321,6 @@ | |||
| 	"Whisper (Local)": "Whisper (Local)", | ||||
| 	"Write a prompt suggestion (e.g. Who are you?)": "Write a prompt suggestion (e.g. Who are you?)", | ||||
| 	"Write a summary in 50 words that summarizes [topic or keyword]": "Write a summary in 50 words that summarizes [topic or keyword]", | ||||
| 	"You're a helpful assistant.": "You're a helpful assistant.", | ||||
| 	"You're now logged in.": "You're now logged in." | ||||
| } | ||||
|  |  | |||
|  | @ -310,5 +310,17 @@ | |||
| 	"Add a short title for this prompt": "یک عنوان کوتاه برای این درخواست اضافه کنید", | ||||
| 	"Open": "باز", | ||||
| 	"Close": "بسته", | ||||
| 	"sidebar": "نوار کناری" | ||||
| 	"sidebar": "نوار کناری", | ||||
| 	"Playground": "Playground", | ||||
| 	"Submit": "Submit", | ||||
| 	"(Beta)": "(Beta)", | ||||
| 	"Text Completion": "Text Completion", | ||||
| 	"Chat": "Chat", | ||||
| 	"You're a helpful assistant.": "You're a helpful assistant.", | ||||
| 	"System": "System", | ||||
| 	"assistant": "Assistant", | ||||
| 	"Add message": "Add message", | ||||
| 	"Enter a user message here": "Enter a user message here", | ||||
| 	"Enter an assistant message here": "Enter an assistant message here", | ||||
| 	"Drop any files here to add to the conversation": "Drop any files here to add to the conversation" | ||||
| } | ||||
|  |  | |||
|  | @ -64,7 +64,7 @@ | |||
| </script> | ||||
| 
 | ||||
| <svelte:head> | ||||
| 	<title>{$i18n.t('Admin Panel')} | `${$WEBUI_NAME}`</title> | ||||
| 	<title>{$i18n.t('Admin Panel')} | ${$WEBUI_NAME}</title> | ||||
| </svelte:head> | ||||
| 
 | ||||
| {#key selectedUser} | ||||
|  |  | |||
|  | @ -152,9 +152,7 @@ | |||
| </script> | ||||
| 
 | ||||
| <svelte:head> | ||||
| 	<title> | ||||
| 		{`Documents | ${$WEBUI_NAME}`} | ||||
| 	</title> | ||||
| 	<title>{$i18n.t('Documents')} | {$WEBUI_NAME}</title> | ||||
| </svelte:head> | ||||
| 
 | ||||
| {#if dragged} | ||||
|  |  | |||
|  | @ -73,7 +73,7 @@ | |||
| 
 | ||||
| <svelte:head> | ||||
| 	<title> | ||||
| 		{`Modelfiles | ${$WEBUI_NAME}`} | ||||
| 		{$i18n.t('Modelfiles')} | {$WEBUI_NAME} | ||||
| 	</title> | ||||
| </svelte:head> | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| <script> | ||||
| 	import { goto } from '$app/navigation'; | ||||
| 
 | ||||
| 	import { onMount, tick } from 'svelte'; | ||||
| 	import { onMount, tick, getContext } from 'svelte'; | ||||
| 
 | ||||
| 	import { toast } from 'svelte-sonner'; | ||||
| 
 | ||||
|  | @ -19,6 +19,8 @@ | |||
| 	import { splitStream } from '$lib/utils'; | ||||
| 	import ChatCompletion from '$lib/components/playground/ChatCompletion.svelte'; | ||||
| 
 | ||||
| 	const i18n = getContext('i18n'); | ||||
| 
 | ||||
| 	let mode = 'chat'; | ||||
| 	let loaded = false; | ||||
| 
 | ||||
|  | @ -300,7 +302,7 @@ | |||
| 
 | ||||
| <svelte:head> | ||||
| 	<title> | ||||
| 		{`Playground | ${$WEBUI_NAME}`} | ||||
| 		{$i18n.t('Playground')} | {$WEBUI_NAME} | ||||
| 	</title> | ||||
| </svelte:head> | ||||
| 
 | ||||
|  | @ -311,7 +313,8 @@ | |||
| 				<div class="flex flex-col justify-between mb-2.5 gap-1"> | ||||
| 					<div class="flex justify-between items-center gap-2"> | ||||
| 						<div class=" text-2xl font-semibold self-center flex"> | ||||
| 							Playground <span class=" text-xs text-gray-500 self-center ml-1">(Beta)</span> | ||||
| 							{$i18n.t('Playground')} | ||||
| 							<span class=" text-xs text-gray-500 self-center ml-1">{$i18n.t('(Beta)')}</span> | ||||
| 						</div> | ||||
| 
 | ||||
| 						<div> | ||||
|  | @ -328,9 +331,9 @@ | |||
| 								}} | ||||
| 							> | ||||
| 								{#if mode === 'complete'} | ||||
| 									Text Completion | ||||
| 									{$i18n.t('Text Completion')} | ||||
| 								{:else if mode === 'chat'} | ||||
| 									Chat | ||||
| 									{$i18n.t('Chat')} | ||||
| 								{/if} | ||||
| 
 | ||||
| 								<div> | ||||
|  | @ -357,7 +360,9 @@ | |||
| 							class="outline-none bg-transparent text-sm font-medium rounded-lg w-full placeholder-gray-400" | ||||
| 							bind:value={selectedModelId} | ||||
| 						> | ||||
| 							<option class=" text-gray-800" value="" selected disabled>Select a model</option> | ||||
| 							<option class=" text-gray-800" value="" selected disabled | ||||
| 								>{$i18n.t('Select a model')}</option | ||||
| 							> | ||||
| 
 | ||||
| 							{#each $models as model} | ||||
| 								{#if model.name === 'hr'} | ||||
|  | @ -402,12 +407,12 @@ | |||
| 				{#if mode === 'chat'} | ||||
| 					<div class="p-1"> | ||||
| 						<div class="p-3 outline outline-1 outline-gray-200 dark:outline-gray-800 rounded-lg"> | ||||
| 							<div class=" text-sm font-medium">System</div> | ||||
| 							<div class=" text-sm font-medium">{$i18n.t('System')}</div> | ||||
| 							<textarea | ||||
| 								id="system-textarea" | ||||
| 								class="w-full h-full bg-transparent resize-none outline-none text-sm" | ||||
| 								bind:value={system} | ||||
| 								placeholder="You're a helpful assistant." | ||||
| 								placeholder={$i18n.t("You're a helpful assistant.")} | ||||
| 								rows="4" | ||||
| 							/> | ||||
| 						</div> | ||||
|  | @ -425,7 +430,7 @@ | |||
| 									id="text-completion-textarea" | ||||
| 									class="w-full h-full p-3 bg-transparent outline outline-1 outline-gray-200 dark:outline-gray-800 resize-none rounded-lg text-sm" | ||||
| 									bind:value={text} | ||||
| 									placeholder="You're a helpful assistant." | ||||
| 									placeholder={$i18n.t("You're a helpful assistant.")} | ||||
| 								/> | ||||
| 							{:else if mode === 'chat'} | ||||
| 								<ChatCompletion bind:messages /> | ||||
|  | @ -442,7 +447,7 @@ | |||
| 								submitHandler(); | ||||
| 							}} | ||||
| 						> | ||||
| 							Submit | ||||
| 							{$i18n.t('Submit')} | ||||
| 						</button> | ||||
| 					{:else} | ||||
| 						<button | ||||
|  | @ -451,7 +456,7 @@ | |||
| 								stopResponse(); | ||||
| 							}} | ||||
| 						> | ||||
| 							Cancel | ||||
| 							{$i18n.t('Cancel')} | ||||
| 						</button> | ||||
| 					{/if} | ||||
| 				</div> | ||||
|  |  | |||
|  | @ -40,7 +40,7 @@ | |||
| 
 | ||||
| <svelte:head> | ||||
| 	<title> | ||||
| 		{`Prompts | ${$WEBUI_NAME}`} | ||||
| 		{$i18n.t('Prompts')} | {$WEBUI_NAME} | ||||
| 	</title> | ||||
| </svelte:head> | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue