This commit is contained in:
Timothy Jaeryang Baek
2026-07-14 04:15:20 -04:00
parent a7fbf66269
commit aedb6bef4e
208 changed files with 1056 additions and 1066 deletions
+31 -31
View File
@@ -236,13 +236,13 @@
<div class=" space-y-3 overflow-y-scroll scrollbar-hidden h-full">
<div class="flex flex-col gap-3">
<div>
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Speech-to-Text')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Speech-to-Text')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
{#if STT_ENGINE !== 'web'}
<div class="mb-2">
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('Supported MIME Types')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('Supported MIME Types')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -258,7 +258,7 @@
{/if}
<div class="mb-2 py-0.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Speech-to-Text Engine')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Speech-to-Text Engine')}</div>
<div class="flex items-center relative">
<select
class="cursor-pointer w-fit pr-8 rounded-sm px-2 p-1 text-xs bg-transparent outline-hidden text-right"
@@ -292,7 +292,7 @@
<hr class="border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class="mb-2 py-0.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Request Format')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Request Format')}</div>
<div class="flex items-center relative">
<select
class="cursor-pointer w-fit pr-8 rounded-sm px-2 p-1 text-xs bg-transparent outline-hidden text-right"
@@ -307,7 +307,7 @@
<hr class="border-gray-100/30 dark:border-gray-850/30 my-2" />
<div>
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('STT Model')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('STT Model')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -333,7 +333,7 @@
<hr class="border-gray-100/30 dark:border-gray-850/30 my-2" />
<div>
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('STT Model')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('STT Model')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -367,7 +367,7 @@
<hr class="border-gray-100/30 dark:border-gray-850/30 my-2" />
<div>
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('Azure Region')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('Azure Region')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -380,7 +380,7 @@
</div>
<div>
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('Language Locales')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('Language Locales')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -393,7 +393,7 @@
</div>
<div>
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('Endpoint URL')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('Endpoint URL')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -406,7 +406,7 @@
</div>
<div>
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('Max Speakers')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('Max Speakers')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -435,7 +435,7 @@
<hr class="border-gray-100/30 dark:border-gray-850/30 my-2" />
<div>
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('STT Model')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('STT Model')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -461,7 +461,7 @@
<div>
<div class="flex items-center justify-between mb-2">
<div class="text-xs font-medium">{$i18n.t('Use Chat Completions API')}</div>
<div class="text-xs font-normal">{$i18n.t('Use Chat Completions API')}</div>
<label class="relative inline-flex items-center cursor-pointer">
<input
type="checkbox"
@@ -481,7 +481,7 @@
</div>
{:else if STT_ENGINE === ''}
<div>
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('STT Model')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('STT Model')}</div>
<div class="flex w-full">
<div class="flex-1 mr-2">
@@ -539,12 +539,12 @@
</div>
<div>
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Text-to-Speech')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Text-to-Speech')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class="mb-2 py-0.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Text-to-Speech Engine')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Text-to-Speech Engine')}</div>
<div class="flex items-center relative">
<select
class="w-fit pr-8 cursor-pointer rounded-sm px-2 p-1 text-xs bg-transparent outline-hidden text-right"
@@ -605,7 +605,7 @@
<hr class="border-gray-100/30 dark:border-gray-850/30 my-2" />
<div>
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('Azure Region')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('Azure Region')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -618,7 +618,7 @@
</div>
<div>
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('Endpoint URL')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('Endpoint URL')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -648,7 +648,7 @@
<div class="mb-2">
{#if TTS_ENGINE === ''}
<div>
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('TTS Voice')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('TTS Voice')}</div>
<div class="flex w-full">
<div class="flex-1">
<select
@@ -669,7 +669,7 @@
</div>
{:else if TTS_ENGINE === 'transformers'}
<div>
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('TTS Model')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('TTS Model')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -711,7 +711,7 @@
{:else if TTS_ENGINE === 'openai'}
<div class=" flex gap-2">
<div class="w-full">
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('TTS Voice')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('TTS Voice')}</div>
<div class="flex w-full">
<div class="flex-1">
<TTSVoiceInput
@@ -724,7 +724,7 @@
</div>
</div>
<div class="w-full">
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('TTS Model')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('TTS Model')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -746,7 +746,7 @@
<div class="mt-2 mb-1 text-xs text-gray-400 dark:text-gray-500">
<div class="w-full">
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('Additional Parameters')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('Additional Parameters')}</div>
<div class="flex w-full">
<div class="flex-1">
<Textarea
@@ -762,7 +762,7 @@
{:else if TTS_ENGINE === 'elevenlabs'}
<div class=" flex gap-2">
<div class="w-full">
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('TTS Voice')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('TTS Voice')}</div>
<div class="flex w-full">
<div class="flex-1">
<TTSVoiceInput
@@ -775,7 +775,7 @@
</div>
</div>
<div class="w-full">
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('TTS Model')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('TTS Model')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -797,7 +797,7 @@
{:else if TTS_ENGINE === 'azure'}
<div class=" flex gap-2">
<div class="w-full">
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('TTS Voice')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('TTS Voice')}</div>
<div class="flex w-full">
<div class="flex-1">
<TTSVoiceInput
@@ -810,7 +810,7 @@
</div>
</div>
<div class="w-full">
<div class=" mb-1.5 text-xs font-medium">
<div class=" mb-1.5 text-xs font-normal">
{$i18n.t('Output format')}
<a
href="https://learn.microsoft.com/en-us/azure/ai-services/speech-service/rest-text-to-speech?tabs=streaming#audio-outputs"
@@ -834,7 +834,7 @@
{:else if TTS_ENGINE === 'mistral'}
<div class=" flex gap-2">
<div class="w-full">
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('TTS Voice')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('TTS Voice')}</div>
<div class="flex w-full">
<div class="flex-1">
<TTSVoiceInput
@@ -847,7 +847,7 @@
</div>
</div>
<div class="w-full">
<div class=" mb-1.5 text-xs font-medium">{$i18n.t('TTS Model')}</div>
<div class=" mb-1.5 text-xs font-normal">{$i18n.t('TTS Model')}</div>
<div class="flex w-full">
<div class="flex-1">
<input
@@ -870,7 +870,7 @@
</div>
<div class="pt-0.5 flex w-full justify-between">
<div class="self-center text-xs font-medium">{$i18n.t('Response splitting')}</div>
<div class="self-center text-xs font-normal">{$i18n.t('Response splitting')}</div>
<div class="flex items-center relative">
<select
class="w-fit pr-8 cursor-pointer rounded-sm px-2 p-1 text-xs bg-transparent outline-hidden text-right"
@@ -893,9 +893,9 @@
</div>
</div>
</div>
<div class="flex justify-end text-sm font-medium">
<div class="flex justify-end text-sm font-normal">
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
type="submit"
>
{$i18n.t('Save')}
@@ -114,12 +114,12 @@
<div class="space-y-3 overflow-y-scroll scrollbar-hidden h-full">
{#if adminConfig !== null}
<div class="mb-3">
<div class="mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('User Access')}</div>
<div class="mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('User Access')}</div>
<hr class="border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Default User Role')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Default User Role')}</div>
<div class="flex items-center relative">
<select
class="w-fit pr-8 rounded-sm px-2 text-xs bg-transparent outline-hidden text-right"
@@ -134,7 +134,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Default Group')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Default Group')}</div>
<div class="flex items-center relative max-w-48">
<select
class="w-full pr-8 rounded-sm px-2 text-xs bg-transparent outline-hidden text-right truncate"
@@ -150,20 +150,20 @@
</div>
<div class=" mb-2.5 flex w-full justify-between pr-2">
<div class=" self-center text-xs font-medium">{$i18n.t('Enable New Sign Ups')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Enable New Sign Ups')}</div>
<Switch bind:state={adminConfig.ENABLE_SIGNUP} />
</div>
<div class="mb-2.5 flex w-full justify-between pr-2">
<div class=" self-center text-xs font-medium">{$i18n.t('Enable API Keys')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Enable API Keys')}</div>
<Switch bind:state={adminConfig.ENABLE_API_KEYS} />
</div>
{#if adminConfig?.ENABLE_API_KEYS}
<div class="mb-2.5 flex w-full justify-between pr-2">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('API Key Endpoint Restrictions')}
</div>
@@ -172,7 +172,7 @@
{#if adminConfig?.ENABLE_API_KEYS_ENDPOINT_RESTRICTIONS}
<div class=" flex w-full flex-col pr-2 mb-2.5">
<div class=" text-xs font-medium">
<div class=" text-xs font-normal">
{$i18n.t('Allowed Endpoints')}
</div>
@@ -187,7 +187,7 @@
<a
href="https://docs.openwebui.com/reference/api-endpoints"
target="_blank"
class=" text-gray-300 font-medium underline"
class=" text-gray-300 font-normal underline"
>
{$i18n.t('To learn more about available endpoints, visit our documentation.')}
</a>
@@ -198,7 +198,7 @@
<div class=" mb-2.5 w-full justify-between">
<div class="flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('JWT Expiration')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('JWT Expiration')}</div>
</div>
<div class="flex mt-2 space-x-2">
@@ -212,7 +212,7 @@
<div class="mt-2 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t('Valid time units:')}
<span class=" text-gray-300 font-medium"
<span class=" text-gray-300 font-normal"
>{$i18n.t("'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.")}</span
>
</div>
@@ -223,7 +223,7 @@
class=" bg-yellow-500/20 text-yellow-700 dark:text-yellow-200 rounded-lg px-3 py-2"
>
<div>
<span class=" font-medium">{$i18n.t('Warning')}:</span>
<span class=" font-normal">{$i18n.t('Warning')}:</span>
<span
><a
href="https://docs.openwebui.com/reference/env-configuration#jwt_expires_in"
@@ -237,12 +237,12 @@
</div>
{/if}
</div>
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Pending Accounts')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Pending Accounts')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class="mb-2.5 flex w-full items-center justify-between pr-2">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Show Admin Details in Account Pending Overlay')}
</div>
@@ -252,7 +252,7 @@
{#if adminConfig.SHOW_ADMIN_DETAILS}
<div class="mb-2.5 w-full justify-between">
<div class="flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Admin Contact Email')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Admin Contact Email')}</div>
</div>
<div class="flex mt-2 space-x-2">
@@ -267,7 +267,7 @@
{/if}
<div class="mb-2.5">
<div class=" self-center text-xs font-medium mb-2">
<div class=" self-center text-xs font-normal mb-2">
{$i18n.t('Pending User Overlay Title')}
</div>
<Textarea
@@ -279,7 +279,7 @@
</div>
<div class="mb-2.5">
<div class=" self-center text-xs font-medium mb-2">
<div class=" self-center text-xs font-normal mb-2">
{$i18n.t('Pending User Overlay Content')}
</div>
<Textarea
@@ -295,7 +295,7 @@
<div class=" space-y-3">
<div class="mt-2 space-y-2 pr-1.5">
<div class="flex justify-between items-center text-sm">
<div class=" font-medium">{$i18n.t('LDAP')}</div>
<div class=" font-normal">{$i18n.t('LDAP')}</div>
<div class="mt-1">
<Switch bind:state={ENABLE_LDAP} />
@@ -306,7 +306,7 @@
<div class="flex flex-col gap-1">
<div class="flex w-full gap-2">
<div class="w-full">
<div class=" self-center text-xs font-medium min-w-fit mb-1">
<div class=" self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Label')}
</div>
<input
@@ -320,7 +320,7 @@
</div>
<div class="flex w-full gap-2">
<div class="w-full">
<div class=" self-center text-xs font-medium min-w-fit mb-1">
<div class=" self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Host')}
</div>
<input
@@ -331,7 +331,7 @@
/>
</div>
<div class="w-full">
<div class=" self-center text-xs font-medium min-w-fit mb-1">
<div class=" self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Port')}
</div>
<Tooltip
@@ -350,7 +350,7 @@
</div>
<div class="flex w-full gap-2">
<div class="w-full">
<div class=" self-center text-xs font-medium min-w-fit mb-1">
<div class=" self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Application DN')}
</div>
<Tooltip
@@ -365,7 +365,7 @@
</Tooltip>
</div>
<div class="w-full">
<div class=" self-center text-xs font-medium min-w-fit mb-1">
<div class=" self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Application DN Password')}
</div>
<SensitiveInput
@@ -377,7 +377,7 @@
</div>
<div class="flex w-full gap-2">
<div class="w-full">
<div class=" self-center text-xs font-medium min-w-fit mb-1">
<div class=" self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Attribute for Mail')}
</div>
<Tooltip
@@ -397,7 +397,7 @@
</div>
<div class="flex w-full gap-2">
<div class="w-full">
<div class=" self-center text-xs font-medium min-w-fit mb-1">
<div class=" self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Attribute for Username')}
</div>
<Tooltip
@@ -417,7 +417,7 @@
</div>
<div class="flex w-full gap-2">
<div class="w-full">
<div class=" self-center text-xs font-medium min-w-fit mb-1">
<div class=" self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Search Base')}
</div>
<Tooltip content={$i18n.t('The base to search for users')} placement="top-start">
@@ -432,7 +432,7 @@
</div>
<div class="flex w-full gap-2">
<div class="w-full">
<div class=" self-center text-xs font-medium min-w-fit mb-1">
<div class=" self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Search Filters')}
</div>
<input
@@ -444,7 +444,7 @@
</div>
<div class="text-xs text-gray-400 dark:text-gray-500">
<a
class=" text-gray-300 font-medium underline"
class=" text-gray-300 font-normal underline"
href="https://ldap.com/ldap-filters/"
target="_blank"
>
@@ -453,7 +453,7 @@
</div>
<div>
<div class="flex justify-between items-center text-sm">
<div class=" font-medium">{$i18n.t('TLS')}</div>
<div class=" font-normal">{$i18n.t('TLS')}</div>
<div class="mt-1">
<Switch bind:state={LDAP_SERVER.use_tls} />
@@ -462,7 +462,7 @@
{#if LDAP_SERVER.use_tls}
<div class="flex w-full gap-2">
<div class="w-full">
<div class=" self-center text-xs font-medium min-w-fit mb-1 mt-1">
<div class=" self-center text-xs font-normal min-w-fit mb-1 mt-1">
{$i18n.t('Certificate Path')}
</div>
<input
@@ -473,7 +473,7 @@
</div>
</div>
<div class="flex justify-between items-center text-xs">
<div class=" font-medium">{$i18n.t('Validate certificate')}</div>
<div class=" font-normal">{$i18n.t('Validate certificate')}</div>
<div class="mt-1">
<Switch bind:state={LDAP_SERVER.validate_cert} />
@@ -481,7 +481,7 @@
</div>
<div class="flex w-full gap-2">
<div class="w-full">
<div class=" self-center text-xs font-medium min-w-fit mb-1">
<div class=" self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Ciphers')}
</div>
<Tooltip content={$i18n.t('Default to ALL')} placement="top-start">
@@ -502,7 +502,7 @@
</div>
{#if oauthConfig}
<div class="mb-3">
<div class="mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('OAuth / OIDC')}</div>
<div class="mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('OAuth / OIDC')}</div>
<hr class="border-gray-100/30 dark:border-gray-850/30 my-2" />
@@ -510,7 +510,7 @@
<div class="space-y-3">
<div class="grid grid-cols-1 sm:grid-cols-2 gap-2">
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Provider Name')}
</div>
<input
@@ -520,7 +520,7 @@
/>
</div>
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Provider URL')}
</div>
<input
@@ -533,7 +533,7 @@
<div class="grid grid-cols-1 sm:grid-cols-2 gap-2">
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Client ID')}
</div>
<input
@@ -543,7 +543,7 @@
/>
</div>
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Client Secret')}
</div>
<SensitiveInput
@@ -558,7 +558,7 @@
<div class="grid grid-cols-1 sm:grid-cols-2 gap-2">
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Redirect URI')}
</div>
<input
@@ -568,7 +568,7 @@
/>
</div>
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Scopes')}
</div>
<input
@@ -581,7 +581,7 @@
<div class="grid grid-cols-1 sm:grid-cols-2 gap-2">
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Email Claim')}
</div>
<input
@@ -591,7 +591,7 @@
/>
</div>
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Username Claim')}
</div>
<input
@@ -604,7 +604,7 @@
<div class="grid grid-cols-1 sm:grid-cols-2 gap-2">
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Picture Claim')}
</div>
<input
@@ -614,7 +614,7 @@
/>
</div>
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Sub Claim')}
</div>
<input
@@ -626,28 +626,28 @@
</div>
<div class="flex w-full justify-between pr-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('Enable OAuth Signup')}
</div>
<Switch bind:state={oauthConfig.ENABLE_OAUTH_SIGNUP} />
</div>
<div class="flex w-full justify-between pr-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('Merge Accounts by Email')}
</div>
<Switch bind:state={oauthConfig.OAUTH_MERGE_ACCOUNTS_BY_EMAIL} />
</div>
<div class="flex w-full justify-between pr-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('Auto Redirect')}
</div>
<Switch bind:state={oauthConfig.OAUTH_AUTO_REDIRECT} />
</div>
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Allowed Domains')}
</div>
<input
@@ -658,7 +658,7 @@
</div>
<div class="flex w-full justify-between pr-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('Enable Role Mapping')}
</div>
<Switch bind:state={oauthConfig.ENABLE_OAUTH_ROLE_MANAGEMENT} />
@@ -667,7 +667,7 @@
{#if oauthConfig.ENABLE_OAUTH_ROLE_MANAGEMENT}
<div class="grid grid-cols-1 sm:grid-cols-2 gap-2">
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Roles Claim')}
</div>
<input
@@ -677,7 +677,7 @@
/>
</div>
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Admin Roles')}
</div>
<input
@@ -689,7 +689,7 @@
</div>
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Allowed Roles')}
</div>
<input
@@ -701,7 +701,7 @@
{/if}
<div class="flex w-full justify-between pr-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('Enable Group Mapping')}
</div>
<Switch bind:state={oauthConfig.ENABLE_OAUTH_GROUP_MANAGEMENT} />
@@ -709,7 +709,7 @@
{#if oauthConfig.ENABLE_OAUTH_GROUP_MANAGEMENT}
<div class="flex w-full justify-between pr-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('Auto-Create Groups')}
</div>
<Switch bind:state={oauthConfig.ENABLE_OAUTH_GROUP_CREATION} />
@@ -717,7 +717,7 @@
<div class="grid grid-cols-1 sm:grid-cols-2 gap-2">
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Group Claim')}
</div>
<input
@@ -727,7 +727,7 @@
/>
</div>
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Blocked Groups')}
</div>
<input
@@ -740,21 +740,21 @@
{/if}
<div class="flex w-full justify-between pr-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('Update Email')}
</div>
<Switch bind:state={oauthConfig.OAUTH_UPDATE_EMAIL_ON_LOGIN} />
</div>
<div class="flex w-full justify-between pr-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('Update Name')}
</div>
<Switch bind:state={oauthConfig.OAUTH_UPDATE_NAME_ON_LOGIN} />
</div>
<div class="flex w-full justify-between pr-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('Update Picture')}
</div>
<Switch bind:state={oauthConfig.OAUTH_UPDATE_PICTURE_ON_LOGIN} />
@@ -765,9 +765,9 @@
{/if}
</div>
<div class="flex justify-end pt-3 text-sm font-medium">
<div class="flex justify-end pt-3 text-sm font-normal">
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
type="submit"
>
{$i18n.t('Save')}
@@ -41,13 +41,13 @@
{#if config}
<div>
<div class="mb-3.5">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Code Execution')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Code Execution')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class="mb-2.5">
<div class=" flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Enable Code Execution')}
</div>
@@ -58,7 +58,7 @@
{#if config.ENABLE_CODE_EXECUTION}
<div class="mb-2.5">
<div class="flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Code Execution Engine')}
</div>
<div class="flex items-center relative">
@@ -89,7 +89,7 @@
{#if config.CODE_EXECUTION_ENGINE === 'jupyter'}
<div class="mb-2.5 flex flex-col gap-1.5 w-full">
<div class="text-xs font-medium">
<div class="text-xs font-normal">
{$i18n.t('Jupyter URL')}
</div>
@@ -108,7 +108,7 @@
<div class="mb-2.5 flex flex-col gap-1.5 w-full">
<div class=" flex gap-2 w-full items-center justify-between">
<div class="text-xs font-medium">
<div class="text-xs font-normal">
{$i18n.t('Jupyter Auth')}
</div>
@@ -149,7 +149,7 @@
</div>
<div class="flex gap-2 w-full items-center justify-between">
<div class="text-xs font-medium">
<div class="text-xs font-normal">
{$i18n.t('Code Execution Timeout')}
</div>
@@ -170,13 +170,13 @@
</div>
<div class="mb-3.5">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Code Interpreter')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Code Interpreter')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class="mb-2.5">
<div class=" flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Enable Code Interpreter')}
</div>
@@ -187,7 +187,7 @@
{#if config.ENABLE_CODE_INTERPRETER}
<div class="mb-2.5">
<div class=" flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Code Interpreter Engine')}
</div>
<div class="flex items-center relative">
@@ -218,7 +218,7 @@
{#if config.CODE_INTERPRETER_ENGINE === 'jupyter'}
<div class="mb-2.5 flex flex-col gap-1.5 w-full">
<div class="text-xs font-medium">
<div class="text-xs font-normal">
{$i18n.t('Jupyter URL')}
</div>
@@ -237,7 +237,7 @@
<div class="mb-2.5 flex flex-col gap-1.5 w-full">
<div class="flex gap-2 w-full items-center justify-between">
<div class="text-xs font-medium">
<div class="text-xs font-normal">
{$i18n.t('Jupyter Auth')}
</div>
@@ -278,7 +278,7 @@
</div>
<div class="flex gap-2 w-full items-center justify-between">
<div class="text-xs font-medium">
<div class="text-xs font-normal">
{$i18n.t('Code Execution Timeout')}
</div>
@@ -300,7 +300,7 @@
<div>
<div class="py-0.5 w-full">
<div class=" mb-2.5 text-xs font-medium">
<div class=" mb-2.5 text-xs font-normal">
{$i18n.t('Code Interpreter Prompt Template')}
</div>
@@ -324,9 +324,9 @@
</div>
{/if}
</div>
<div class="flex justify-end pt-3 text-sm font-medium">
<div class="flex justify-end pt-3 text-sm font-normal">
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
type="submit"
>
{$i18n.t('Save')}
@@ -219,14 +219,14 @@
<div class=" overflow-y-scroll scrollbar-hidden h-full">
{#if ENABLE_OPENAI_API !== null && ENABLE_OLLAMA_API !== null && connectionsConfig !== null}
<div class="mb-3.5">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('General')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('General')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class="my-2">
<div class="mt-2 space-y-2">
<div class="flex justify-between items-center text-sm">
<div class=" font-medium">{$i18n.t('OpenAI API')}</div>
<div class=" font-normal">{$i18n.t('OpenAI API')}</div>
<div class="flex items-center">
<div class="">
@@ -243,7 +243,7 @@
{#if ENABLE_OPENAI_API}
<div class="">
<div class="flex justify-between items-center">
<div class="font-medium text-xs">{$i18n.t('Manage OpenAI API Connections')}</div>
<div class="font-normal text-xs">{$i18n.t('Manage OpenAI API Connections')}</div>
<Tooltip content={$i18n.t(`Add Connection`)}>
<button
@@ -292,7 +292,7 @@
<div class=" my-2">
<div class="flex justify-between items-center text-sm mb-2">
<div class=" font-medium">{$i18n.t('Ollama API')}</div>
<div class=" font-normal">{$i18n.t('Ollama API')}</div>
<div class="mt-1">
<Switch
@@ -307,7 +307,7 @@
{#if ENABLE_OLLAMA_API}
<div class="">
<div class="flex justify-between items-center">
<div class="font-medium text-xs">{$i18n.t('Manage Ollama API Connections')}</div>
<div class="font-normal text-xs">{$i18n.t('Manage Ollama API Connections')}</div>
<Tooltip content={$i18n.t(`Add Connection`)}>
<button
@@ -350,7 +350,7 @@
<div class="mt-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t('Trouble accessing Ollama?')}
<a
class=" text-gray-300 font-medium underline"
class=" text-gray-300 font-normal underline"
href="https://github.com/open-webui/open-webui#troubleshooting"
target="_blank"
>
@@ -363,7 +363,7 @@
<div class="my-2">
<div class="flex justify-between items-center text-sm">
<div class=" font-medium">{$i18n.t('Direct Connections')}</div>
<div class=" font-normal">{$i18n.t('Direct Connections')}</div>
<div class="flex items-center">
<div class="">
@@ -388,7 +388,7 @@
<div class="my-2">
<div class="flex justify-between items-center text-sm">
<div class=" text-xs font-medium">{$i18n.t('Cache Base Model List')}</div>
<div class=" text-xs font-normal">{$i18n.t('Cache Base Model List')}</div>
<div class="flex items-center">
<div class="">
@@ -418,9 +418,9 @@
{/if}
</div>
<div class="flex justify-end pt-3 text-sm font-medium">
<div class="flex justify-end pt-3 text-sm font-normal">
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
type="submit"
>
{$i18n.t('Save')}
@@ -15,7 +15,7 @@
<div>
<div class=" flex justify-between dark:text-gray-100 px-5 pt-4 pb-2">
<div
class="flex w-full justify-between items-center text-lg font-medium self-center font-primary"
class="flex w-full justify-between items-center text-lg font-normal self-center "
>
<div class=" shrink-0">
{$i18n.t('Manage Ollama')}
@@ -78,7 +78,7 @@
/>
<div>
<div class="mb-1 text-sm font-medium">{$i18n.t('Config')}</div>
<div class="mb-1 text-sm font-normal">{$i18n.t('Config')}</div>
<div>
<div class="py-0.5 flex w-full justify-between">
@@ -117,7 +117,7 @@
{#if $config?.features.enable_admin_export ?? true}
<div>
<div class="mb-1 text-sm font-medium">{$i18n.t('Database')}</div>
<div class="mb-1 text-sm font-normal">{$i18n.t('Database')}</div>
<div>
<div class="py-0.5 flex w-full justify-between">
@@ -376,13 +376,13 @@
<div class=" space-y-2.5 overflow-y-scroll scrollbar-hidden h-full pr-1.5">
<div class="">
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('General')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('General')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class="mb-2.5 flex flex-col w-full justify-between">
<div class="flex w-full justify-between mb-1">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('Content Extraction Engine')}
</div>
<div class="">
@@ -406,7 +406,7 @@
{#if RAGConfig.CONTENT_EXTRACTION_ENGINE === ''}
<div class="flex w-full mt-1">
<div class="flex-1 flex justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('PDF Extract Images (OCR)')}
</div>
<div class="flex items-center relative">
@@ -417,7 +417,7 @@
<div class="flex w-full mt-2">
<div class="flex-1 flex justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
<Tooltip
content={$i18n.t(
'Page mode creates one document per page. Single mode combines all pages into one document for better chunking across page boundaries.'
@@ -464,7 +464,7 @@
<div class="flex flex-col gap-2 mt-2">
<div class=" flex flex-col w-full justify-between">
<div class=" mb-1 text-xs font-medium">
<div class=" mb-1 text-xs font-normal">
{$i18n.t('Additional Config')}
</div>
<div class="flex w-full items-center relative">
@@ -485,7 +485,7 @@
</div>
<div class="flex justify-between w-full mt-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
<Tooltip
content={$i18n.t(
'Significantly improves accuracy by using an LLM to enhance tables, forms, inline math, and layout detection. Will increase latency. Defaults to False.'
@@ -500,7 +500,7 @@
</div>
</div>
<div class="flex justify-between w-full mt-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
<Tooltip
content={$i18n.t('Skip the cache and re-run the inference. Defaults to False.')}
placement="top-start"
@@ -513,7 +513,7 @@
</div>
</div>
<div class="flex justify-between w-full mt-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
<Tooltip
content={$i18n.t(
'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.'
@@ -528,7 +528,7 @@
</div>
</div>
<div class="flex justify-between w-full mt-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
<Tooltip
content={$i18n.t(
'Whether to paginate the output. Each page will be separated by a horizontal rule and page number. Defaults to False.'
@@ -543,7 +543,7 @@
</div>
</div>
<div class="flex justify-between w-full mt-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
<Tooltip
content={$i18n.t(
'Strip existing OCR text from the PDF and re-run OCR. Ignored if Force OCR is enabled. Defaults to False.'
@@ -558,7 +558,7 @@
</div>
</div>
<div class="flex justify-between w-full mt-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
<Tooltip
content={$i18n.t(
'Disable image extraction from the PDF. If Use LLM is enabled, images will be automatically captioned. Defaults to False.'
@@ -573,7 +573,7 @@
</div>
</div>
<div class="flex justify-between w-full mt-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
<Tooltip
content={$i18n.t(
'Format the lines in the output. Defaults to False. If set to True, the lines will be formatted to detect inline math and styles.'
@@ -588,7 +588,7 @@
</div>
</div>
<div class="flex justify-between w-full mt-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
<Tooltip
content={$i18n.t(
"The output format for the text. Can be 'json', 'markdown', or 'html'. Defaults to 'markdown'."
@@ -709,7 +709,7 @@
<div class="flex flex-col gap-2 mt-2">
<div class=" flex flex-col w-full justify-between">
<div class=" mb-1 text-xs font-medium">
<div class=" mb-1 text-xs font-normal">
{$i18n.t('Parameters')}
</div>
<div class="flex w-full items-center relative">
@@ -735,7 +735,7 @@
/>
</div>
<div class="my-0.5 flex flex-col w-full">
<div class=" mb-1 text-xs font-medium">
<div class=" mb-1 text-xs font-normal">
{$i18n.t('Document Intelligence Model')}
</div>
<div class="flex w-full">
@@ -761,7 +761,7 @@
/>
</div>
<div class="flex justify-between w-full mt-2 pr-2">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
<Tooltip
content={$i18n.t(
'Send the PDF as a base64 data URL instead of uploading it first.'
@@ -792,7 +792,7 @@
<!-- API Mode Selection -->
<div class="flex w-full mt-2">
<div class="flex-1 flex justify-between">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('API Mode')}
</div>
<select
@@ -840,7 +840,7 @@
<div class="flex w-full mt-2">
<div class="flex-1 flex justify-between">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('API Timeout')}
</div>
<input
@@ -855,7 +855,7 @@
<!-- Parameters -->
<div class="flex flex-col justify-between w-full mt-2">
<div class="text-xs font-medium">
<div class="text-xs font-normal">
<Tooltip
content={$i18n.t(
'Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)'
@@ -876,7 +876,7 @@
<!-- File Extensions -->
<div class="flex flex-col justify-between w-full mt-2">
<div class="text-xs font-medium mb-1">
<div class="text-xs font-normal mb-1">
<Tooltip
content={$i18n.t(
'Comma-separated list of file extensions MinerU will handle (e.g. pdf, docx, pptx, xlsx)'
@@ -896,7 +896,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
<Tooltip content={$i18n.t('Full Context Mode')} placement="top-start">
{$i18n.t('Bypass Embedding and Retrieval')}
</Tooltip>
@@ -918,7 +918,7 @@
{#if !RAGConfig.BYPASS_EMBEDDING_AND_RETRIEVAL}
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Text Splitter')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Text Splitter')}</div>
<div class="flex items-center relative">
<select
class="w-fit pr-8 rounded-sm px-2 text-xs bg-transparent outline-hidden text-right"
@@ -935,7 +935,7 @@
{#if RAGConfig.TEXT_SPLITTER === 'token_transformers'}
<div class="mb-2.5 flex flex-col w-full justify-between">
<div class="self-center text-xs font-medium min-w-fit mb-1 w-full">
<div class="self-center text-xs font-normal min-w-fit mb-1 w-full">
{$i18n.t('Tokenizer Model')}
</div>
<div class="self-center w-full">
@@ -951,7 +951,7 @@
{/if}
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
<Tooltip
placement="top-start"
content={$i18n.t(
@@ -969,7 +969,7 @@
<div class=" mb-2.5 flex w-full justify-between">
<div class=" flex gap-1.5 w-full">
<div class=" w-full justify-between">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Chunk Size')}
</div>
<div class="self-center">
@@ -985,7 +985,7 @@
</div>
<div class="w-full">
<div class=" self-center text-xs font-medium min-w-fit mb-1">
<div class=" self-center text-xs font-normal min-w-fit mb-1">
{$i18n.t('Chunk Overlap')}
</div>
@@ -1007,7 +1007,7 @@
<div class=" mb-2.5 flex w-full justify-between">
<div class=" flex gap-1.5 w-full">
<div class="w-full">
<div class="self-center text-xs font-medium min-w-fit mb-1">
<div class="self-center text-xs font-normal min-w-fit mb-1">
<Tooltip
placement="top-start"
content={$i18n.t(
@@ -1036,13 +1036,13 @@
{#if !RAGConfig.BYPASS_EMBEDDING_AND_RETRIEVAL}
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Embedding')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Embedding')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class=" mb-2.5 flex flex-col w-full justify-between">
<div class="flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Embedding Model Engine')}
</div>
<div class="flex items-center relative">
@@ -1124,7 +1124,7 @@
</div>
<div class=" mb-2.5 flex flex-col w-full">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Embedding Model')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Embedding Model')}</div>
<div class="">
{#if RAG_EMBEDDING_ENGINE === 'ollama'}
@@ -1191,7 +1191,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Embedding Batch Size')}
</div>
@@ -1209,7 +1209,7 @@
{#if RAG_EMBEDDING_ENGINE === 'ollama' || RAG_EMBEDDING_ENGINE === 'openai' || RAG_EMBEDDING_ENGINE === 'azure_openai'}
<div class=" mb-2.5 flex w-full justify-between">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
<Tooltip
content={$i18n.t(
'Runs embedding tasks concurrently to speed up processing. Turn off if rate limits become an issue.'
@@ -1225,7 +1225,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
<Tooltip
content={$i18n.t(
'Limits the number of concurrent embedding requests. Set to 0 for unlimited.'
@@ -1250,13 +1250,13 @@
{/if}
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Retrieval')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Retrieval')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
{#if !RAGConfig.BYPASS_EMBEDDING_AND_RETRIEVAL}
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Full Context Mode')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Full Context Mode')}</div>
<div class="flex items-center relative">
<Tooltip
content={RAGConfig.RAG_FULL_CONTEXT
@@ -1274,7 +1274,7 @@
{#if !RAGConfig.RAG_FULL_CONTEXT}
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Hybrid Search')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Hybrid Search')}</div>
<div class="flex items-center relative">
<Switch bind:state={RAGConfig.ENABLE_RAG_HYBRID_SEARCH} />
</div>
@@ -1282,7 +1282,7 @@
{#if RAGConfig.ENABLE_RAG_HYBRID_SEARCH === true}
<div class="mb-2.5 flex w-full justify-between">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('Enrich Hybrid Search Text')}
</div>
<div class="flex items-center relative">
@@ -1298,7 +1298,7 @@
<div class=" mb-2.5 flex flex-col w-full justify-between">
<div class="flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Reranking Engine')}
</div>
<div class="flex items-center relative">
@@ -1339,7 +1339,7 @@
</div>
<div class=" mb-2.5 flex flex-col w-full">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Reranking Model')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Reranking Model')}</div>
<div class="">
<div class="flex w-full">
@@ -1358,7 +1358,7 @@
{/if}
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Reranking Batch Size')}
</div>
@@ -1375,7 +1375,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Top K')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Top K')}</div>
<div class="flex items-center relative">
<input
class="flex-1 w-full text-sm bg-transparent outline-hidden"
@@ -1390,7 +1390,7 @@
{#if RAGConfig.ENABLE_RAG_HYBRID_SEARCH === true}
<div class="mb-2.5 flex w-full justify-between">
<div class="self-center text-xs font-medium">{$i18n.t('Top K Reranker')}</div>
<div class="self-center text-xs font-normal">{$i18n.t('Top K Reranker')}</div>
<div class="flex items-center relative">
<input
class="flex-1 w-full text-sm bg-transparent outline-hidden"
@@ -1407,7 +1407,7 @@
{#if RAGConfig.ENABLE_RAG_HYBRID_SEARCH === true}
<div class=" mb-2.5 flex flex-col w-full justify-between">
<div class=" flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Relevance Threshold')}
</div>
<div class="flex items-center relative">
@@ -1443,7 +1443,7 @@
className="inline-tooltip"
>
<div class="flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('BM25 Weight')}
</div>
<button
@@ -1505,7 +1505,7 @@
{/if}
<div class=" mb-2.5 flex flex-col w-full justify-between">
<div class=" mb-1 text-xs font-medium">{$i18n.t('RAG Template')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('RAG Template')}</div>
<div class="flex w-full items-center relative">
<Tooltip
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
@@ -1532,12 +1532,12 @@
</div>
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Files')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Files')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Allowed File Extensions')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Allowed File Extensions')}</div>
<div class="flex items-center relative">
<Tooltip
content={$i18n.t(
@@ -1557,7 +1557,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Max Upload Size')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Max Upload Size')}</div>
<div class="flex items-center relative">
<Tooltip
content={$i18n.t(
@@ -1578,7 +1578,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Max Upload Count')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Max Upload Count')}</div>
<div class="flex items-center relative">
<Tooltip
content={$i18n.t(
@@ -1599,7 +1599,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Image Compression Width')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Image Compression Width')}</div>
<div class="flex items-center relative">
<Tooltip
content={$i18n.t(
@@ -1620,7 +1620,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Image Compression Height')}
</div>
<div class="flex items-center relative">
@@ -1644,19 +1644,19 @@
</div>
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Integration')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Integration')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Google Drive')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Google Drive')}</div>
<div class="flex items-center relative">
<Switch bind:state={RAGConfig.ENABLE_GOOGLE_DRIVE_INTEGRATION} />
</div>
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('OneDrive')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('OneDrive')}</div>
<div class="flex items-center relative">
<Switch bind:state={RAGConfig.ENABLE_ONEDRIVE_INTEGRATION} />
</div>
@@ -1664,12 +1664,12 @@
</div>
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Danger Zone')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Danger Zone')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('Reset Upload Directory')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Reset Upload Directory')}</div>
<div class="flex items-center relative">
<button
class="text-xs"
@@ -1684,7 +1684,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Reset Vector Storage/Knowledge')}
</div>
<div class="flex items-center relative">
@@ -1700,7 +1700,7 @@
</div>
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Reindex Knowledge Base Vectors')}
</div>
<div class="flex items-center relative">
@@ -1718,9 +1718,9 @@
</div>
</div>
</div>
<div class="flex justify-end pt-3 text-sm font-medium">
<div class="flex justify-end pt-3 text-sm font-normal">
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
type="submit"
>
{$i18n.t('Save')}
@@ -104,12 +104,12 @@
{#if evaluationConfig !== null}
<div class="">
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('General')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('General')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class="mb-2.5 flex w-full justify-between">
<div class=" text-xs font-medium">{$i18n.t('Arena Models')}</div>
<div class=" text-xs font-normal">{$i18n.t('Arena Models')}</div>
<Tooltip content={$i18n.t(`Message rating should be enabled to use this feature`)}>
<Switch bind:state={evaluationConfig.ENABLE_EVALUATION_ARENA_MODELS} />
@@ -119,7 +119,7 @@
{#if evaluationConfig.ENABLE_EVALUATION_ARENA_MODELS}
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium flex justify-between items-center">
<div class=" mt-0.5 mb-2.5 text-base font-normal flex justify-between items-center">
<div>
{$i18n.t('Manage')}
</div>
@@ -174,9 +174,9 @@
{/if}
</div>
<div class="flex justify-end pt-3 text-sm font-medium">
<div class="flex justify-end pt-3 text-sm font-normal">
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
type="submit"
>
{$i18n.t('Save')}
@@ -131,7 +131,7 @@
<Modal size="sm" bind:show>
<div>
<div class=" flex justify-between dark:text-gray-100 px-5 pt-4 pb-2">
<div class=" text-lg font-medium self-center font-primary">
<div class=" text-lg font-normal self-center ">
{#if edit}
{$i18n.t('Edit Arena Model')}
{:else}
@@ -374,10 +374,10 @@
</div>
</div>
<div class="flex justify-end pt-3 text-sm font-medium gap-1.5">
<div class="flex justify-end pt-3 text-sm font-normal gap-1.5">
{#if edit}
<button
class="px-3.5 py-1.5 text-sm font-medium dark:bg-black dark:hover:bg-gray-950 dark:text-white bg-white text-black hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center"
class="px-3.5 py-1.5 text-sm font-normal dark:bg-black dark:hover:bg-gray-950 dark:text-white bg-white text-black hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center"
type="button"
on:click={() => {
showDeleteConfirmDialog = true;
@@ -388,7 +388,7 @@
{/if}
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-950 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center {loading
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-950 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center {loading
? ' cursor-not-allowed'
: ''}"
type="submit"
@@ -392,7 +392,7 @@
<Modal bind:show={showWebhookModal} size="sm">
<div>
<div class="flex justify-between dark:text-gray-100 px-5 pt-4 pb-2">
<h1 class="text-lg font-medium self-center font-primary">
<h1 class="text-lg font-normal self-center ">
{editing ? $i18n.t('Edit webhook') : $i18n.t('Add webhook')}
</h1>
@@ -651,11 +651,11 @@
{/if}
</div>
<div class="flex justify-between items-center pt-4 text-sm font-medium">
<div class="flex justify-between items-center pt-4 text-sm font-normal">
<div>
{#if editing}
<button
class="px-1 py-1.5 text-sm font-medium text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:underline transition"
class="px-1 py-1.5 text-sm font-normal text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:underline transition"
type="button"
on:click={() => {
showDeleteConfirmDialog = true;
@@ -668,7 +668,7 @@
<button
type="submit"
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center"
>
{$i18n.t('Save')}
</button>
@@ -688,12 +688,12 @@
/>
<div class="mb-3">
<div class="mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Events')}</div>
<div class="mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Events')}</div>
<hr class="border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class="mb-2.5 flex flex-col w-full justify-between">
<div class="flex justify-between items-center mb-1">
<div class="font-medium text-xs">{$i18n.t('Webhooks')}</div>
<div class="font-normal text-xs">{$i18n.t('Webhooks')}</div>
<Tooltip content={$i18n.t('Add webhook')}>
<button class="px-1" on:click={newWebhook} type="button">
@@ -709,7 +709,7 @@
class="flex-1 min-w-0 flex gap-1.5 items-center {webhook.enabled ? '' : 'opacity-50'}"
>
<div class="outline-hidden w-full bg-transparent text-sm truncate">
<span class="font-medium">
<span class="font-normal">
{webhook.id === 'default' ? $i18n.t('Default webhook') : webhook.name}
</span>
<span class="text-xs text-gray-500">
@@ -411,7 +411,7 @@
<Modal bind:show={showSourceModal} size="sm">
<div>
<div class="flex justify-between dark:text-gray-100 px-5 pt-4 pb-2">
<h1 class="text-lg font-medium self-center font-primary">
<h1 class="text-lg font-normal self-center ">
{editingItem ? $i18n.t('Edit Knowledge Connection') : $i18n.t('Add Knowledge Connection')}
</h1>
@@ -769,11 +769,11 @@
shareUsers={true}
/>
<div class="flex justify-between items-center pt-3 text-sm font-medium">
<div class="flex justify-between items-center pt-3 text-sm font-normal">
<div></div>
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed"
type="submit"
disabled={creating || !sourceFormIsValid() || !testResult?.documents?.length}
>
@@ -791,9 +791,9 @@
<div class="mb-2.5 flex flex-col w-full justify-between text-sm">
<div class="flex justify-between items-center mb-1">
<div class="flex items-center gap-2">
<div class="font-medium">{$i18n.t('External Knowledge Sources')}</div>
<div class="font-normal">{$i18n.t('External Knowledge Sources')}</div>
<span
class="text-[0.65rem] font-medium uppercase px-1.5 py-0.5 rounded-full bg-gray-100 dark:bg-gray-800 text-gray-500 dark:text-gray-400"
class="text-[0.65rem] font-normal uppercase px-1.5 py-0.5 rounded-full bg-gray-100 dark:bg-gray-800 text-gray-500 dark:text-gray-400"
>{$i18n.t('Experimental')}</span
>
</div>
@@ -81,12 +81,12 @@
{#if adminConfig !== null}
<div class="">
<div class="mb-3.5">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('General')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('General')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium flex space-x-2 items-center">
<div class=" mb-1 text-xs font-normal flex space-x-2 items-center">
<div>
{$i18n.t('Version')}
</div>
@@ -125,7 +125,7 @@
{#if $config?.features?.enable_version_update_check}
<button
class=" text-xs px-3 py-1.5 bg-gray-50 hover:bg-gray-100 dark:bg-gray-850 dark:hover:bg-gray-800 transition rounded-lg font-medium"
class=" text-xs px-3 py-1.5 bg-gray-50 hover:bg-gray-100 dark:bg-gray-850 dark:hover:bg-gray-800 transition rounded-lg font-normal"
type="button"
on:click={() => {
checkForVersionUpdates();
@@ -149,7 +149,7 @@
</div>
<a
class="flex-shrink-0 text-xs font-medium underline"
class="flex-shrink-0 text-xs font-normal underline"
href="https://docs.openwebui.com/"
target="_blank"
>
@@ -205,7 +205,7 @@
>{$config?.license_metadata?.organization_name}</span
>
for
<span class=" font-medium text-black dark:text-white"
<span class=" font-normal text-black dark:text-white"
>{$config?.license_metadata?.seats ?? 'Unlimited'} users.</span
>
</a>
@@ -230,7 +230,7 @@
</div>
<!-- <button
class="flex-shrink-0 text-xs px-3 py-1.5 bg-gray-50 hover:bg-gray-100 dark:bg-gray-850 dark:hover:bg-gray-800 transition rounded-lg font-medium"
class="flex-shrink-0 text-xs px-3 py-1.5 bg-gray-50 hover:bg-gray-100 dark:bg-gray-850 dark:hover:bg-gray-800 transition rounded-lg font-normal"
>
{$i18n.t('Activate')}
</button> -->
@@ -239,12 +239,12 @@
</div>
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Features')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Features')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class="mb-2.5 flex w-full items-center justify-between pr-2">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Enable Community Sharing')}
</div>
@@ -252,13 +252,13 @@
</div>
<div class="mb-2.5 flex w-full items-center justify-between pr-2">
<div class=" self-center text-xs font-medium">{$i18n.t('Enable Message Rating')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('Enable Message Rating')}</div>
<Switch bind:state={adminConfig.ENABLE_MESSAGE_RATING} />
</div>
<div class="mb-2.5 flex w-full items-center justify-between pr-2">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Folders')}
</div>
@@ -268,7 +268,7 @@
{#if adminConfig.ENABLE_FOLDERS}
<div class="mb-2.5 w-full justify-between">
<div class="flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Folder Max File Count')}
</div>
</div>
@@ -290,7 +290,7 @@
{/if}
<div class="mb-2.5 flex w-full items-center justify-between pr-2">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Memories')}
</div>
@@ -299,7 +299,7 @@
{#if adminConfig.ENABLE_MEMORIES}
<div class="mb-2.5 flex w-full items-center justify-between pr-2 pl-4">
<div class=" self-center text-xs font-medium text-gray-500 dark:text-gray-400">
<div class=" self-center text-xs font-normal text-gray-500 dark:text-gray-400">
{$i18n.t('Memory System Context')}
</div>
@@ -308,7 +308,7 @@
{/if}
<div class="mb-2.5 flex w-full items-center justify-between pr-2">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Notes')}
</div>
@@ -316,7 +316,7 @@
</div>
<div class="mb-2.5 flex w-full items-center justify-between pr-2">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Channels')}
</div>
@@ -324,7 +324,7 @@
</div>
<div class="mb-2.5 flex w-full items-center justify-between pr-2">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Calendar')}
</div>
@@ -332,7 +332,7 @@
</div>
<div class="mb-2.5 flex w-full items-center justify-between pr-2">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Automations')}
</div>
@@ -340,7 +340,7 @@
</div>
<div class="mb-2.5 flex w-full items-center justify-between pr-2">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('User Webhooks')}
</div>
@@ -348,7 +348,7 @@
</div>
<div class="mb-2.5 flex w-full items-center justify-between pr-2">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('User Status')}
</div>
@@ -356,7 +356,7 @@
</div>
<div class="mb-2.5">
<div class=" self-center text-xs font-medium mb-2">
<div class=" self-center text-xs font-normal mb-2">
{$i18n.t('Response Watermark')}
</div>
<Textarea
@@ -367,7 +367,7 @@
<div class="mb-2.5 w-full justify-between">
<div class="flex w-full justify-between">
<div class=" self-center text-xs font-medium">{$i18n.t('WebUI URL')}</div>
<div class=" self-center text-xs font-normal">{$i18n.t('WebUI URL')}</div>
</div>
<div class="flex mt-2 space-x-2">
@@ -390,7 +390,7 @@
<Events />
<div class="mb-3.5">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('UI')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('UI')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
@@ -439,9 +439,9 @@
{/if}
</div>
<div class="flex justify-end pt-3 text-sm font-medium">
<div class="flex justify-end pt-3 text-sm font-normal">
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
type="submit"
>
{$i18n.t('Save')}
@@ -293,7 +293,7 @@
{#if config}
<div>
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('General')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('General')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
@@ -311,7 +311,7 @@
</div>
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Create Image')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Create Image')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
@@ -551,7 +551,7 @@
<div class="mt-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t('Include `--api` flag when running stable-diffusion-webui')}
<a
class=" text-gray-300 font-medium"
class=" text-gray-300 font-normal"
href="https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/3734"
target="_blank"
>
@@ -583,7 +583,7 @@
<div class="mt-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t('Include `--api-auth` flag when running stable-diffusion-webui')}
<a
class=" text-gray-300 font-medium"
class=" text-gray-300 font-normal"
href="https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/13993"
target="_blank"
>
@@ -884,7 +884,7 @@
</div>
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Edit Image')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Edit Image')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
@@ -1272,9 +1272,9 @@
{/if}
</div>
<div class="flex justify-end pt-3 text-sm font-medium">
<div class="flex justify-end pt-3 text-sm font-normal">
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex items-center gap-2 whitespace-nowrap {loading
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex items-center gap-2 whitespace-nowrap {loading
? ' cursor-not-allowed'
: ''}"
type="submit"
@@ -164,13 +164,13 @@
{#if servers !== null}
<div class="">
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Tools')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Tools')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class="mb-2.5 flex flex-col w-full justify-between">
<div class="flex justify-between items-center mb-0.5">
<div class="font-medium">{$i18n.t('External Tool Servers')}</div>
<div class="font-normal">{$i18n.t('External Tool Servers')}</div>
<Tooltip content={$i18n.t(`Add Connection`)}>
<button
@@ -215,7 +215,7 @@
<div class="mt-4 mb-2.5 flex flex-col w-full">
<div class="flex justify-between items-center mb-1">
<div class="font-medium">{$i18n.t('Open Terminal')}</div>
<div class="font-normal">{$i18n.t('Open Terminal')}</div>
<Tooltip content={$i18n.t('Add Connection')}>
<button
@@ -309,7 +309,7 @@
</div>
</div>
<div class="mt-8 mb-2.5 text-base font-medium">{$i18n.t('Knowledge')}</div>
<div class="mt-8 mb-2.5 text-base font-normal">{$i18n.t('Knowledge')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
@@ -325,9 +325,9 @@
{/if}
</div>
<div class="flex justify-end pt-3 text-sm font-medium">
<div class="flex justify-end pt-3 text-sm font-normal">
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
type="submit"
>
{$i18n.t('Save')}
@@ -108,11 +108,11 @@
>
<div class=" overflow-y-scroll scrollbar-hidden h-full pr-1.5">
<div class="mb-3.5">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Tasks')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Tasks')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class=" mb-2 font-medium flex items-center">
<div class=" mb-2 font-normal flex items-center">
<div class=" text-xs mr-1">{$i18n.t('Task Model')}</div>
<Tooltip
content={$i18n.t(
@@ -227,7 +227,7 @@
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-3" />
<div class="mb-2.5 flex w-full items-center justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Context Compaction')}
</div>
@@ -236,7 +236,7 @@
{#if chatConfig.ENABLE_CONTEXT_COMPACTION}
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Token Threshold')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Token Threshold')}</div>
<Tooltip
content={$i18n.t(
@@ -255,7 +255,7 @@
</div>
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Token Cap')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Token Cap')}</div>
<Tooltip
content={$i18n.t(
@@ -274,7 +274,7 @@
</div>
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Context Compaction Prompt')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Context Compaction Prompt')}</div>
<Tooltip
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
@@ -301,7 +301,7 @@
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-3" />
<div class="mb-2.5 flex w-full items-center justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Title Generation')}
</div>
@@ -310,7 +310,7 @@
{#if taskConfig.ENABLE_TITLE_GENERATION}
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Title Generation Prompt')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Title Generation Prompt')}</div>
<Tooltip
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
@@ -327,7 +327,7 @@
{/if}
<div class="mb-2.5 flex w-full items-center justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Voice Mode Prompt')}
</div>
@@ -336,7 +336,7 @@
{#if taskConfig.ENABLE_VOICE_MODE_PROMPT}
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Prompt Template')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Prompt Template')}</div>
<Tooltip
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
@@ -353,7 +353,7 @@
{/if}
<div class="mb-2.5 flex w-full items-center justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Follow Up Generation')}
</div>
@@ -362,7 +362,7 @@
{#if taskConfig.ENABLE_FOLLOW_UP_GENERATION}
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Follow Up Generation Prompt')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Follow Up Generation Prompt')}</div>
<Tooltip
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
@@ -379,7 +379,7 @@
{/if}
<div class="mb-2.5 flex w-full items-center justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Tags Generation')}
</div>
@@ -388,7 +388,7 @@
{#if taskConfig.ENABLE_TAGS_GENERATION}
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Tags Generation Prompt')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Tags Generation Prompt')}</div>
<Tooltip
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
@@ -405,7 +405,7 @@
{/if}
<div class="mb-2.5 flex w-full items-center justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Retrieval Query Generation')}
</div>
@@ -413,7 +413,7 @@
</div>
<div class="mb-2.5 flex w-full items-center justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Web Search Query Generation')}
</div>
@@ -421,7 +421,7 @@
</div>
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Query Generation Prompt')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Query Generation Prompt')}</div>
<Tooltip
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
@@ -437,7 +437,7 @@
</div>
<div class="mb-2.5 flex w-full items-center justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Autocomplete Generation')}
</div>
@@ -448,7 +448,7 @@
{#if taskConfig.ENABLE_AUTOCOMPLETE_GENERATION}
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">
<div class=" mb-1 text-xs font-normal">
{$i18n.t('Autocomplete Generation Input Max Length')}
</div>
@@ -464,7 +464,7 @@
</Tooltip>
</div>
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Autocomplete Generation Prompt')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Autocomplete Generation Prompt')}</div>
<Tooltip
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
@@ -481,7 +481,7 @@
{/if}
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Image Prompt Generation Prompt')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Image Prompt Generation Prompt')}</div>
<Tooltip
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
@@ -497,7 +497,7 @@
</div>
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Tools Function Calling Prompt')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Tools Function Calling Prompt')}</div>
<Tooltip
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
@@ -514,9 +514,9 @@
</div>
</div>
<div class="flex justify-end text-sm font-medium">
<div class="flex justify-end text-sm font-normal">
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
type="submit"
>
{$i18n.t('Save')}
@@ -382,12 +382,12 @@
{#if selectedModelId === null}
<div class="flex flex-col gap-1 mt-1.5 mb-2">
<div class="flex justify-between items-center">
<div class="flex items-center md:self-center text-xl font-medium px-0.5 gap-2 shrink-0">
<div class="flex items-center md:self-center text-xl font-normal px-0.5 gap-2 shrink-0">
<div>
{$i18n.t('Models')}
</div>
<div class="text-lg font-medium text-gray-500 dark:text-gray-500">
<div class="text-lg font-normal text-gray-500 dark:text-gray-500">
{filteredModels.length}
</div>
</div>
@@ -439,7 +439,7 @@
{#if modelsImportInProgress}
<Spinner className="size-3" />
{/if}
<div class=" self-center font-medium line-clamp-1">
<div class=" self-center font-normal line-clamp-1">
{$i18n.t('Import')}
</div>
</button>
@@ -450,7 +450,7 @@
downloadModels(models);
}}
>
<div class=" self-center font-medium line-clamp-1">
<div class=" self-center font-normal line-clamp-1">
{$i18n.t('Export')}
</div>
</button>
@@ -463,19 +463,19 @@
showManageModal = true;
}}
>
<div class=" self-center font-medium line-clamp-1">
<div class=" self-center font-normal line-clamp-1">
{$i18n.t('Manage')}
</div>
</button>
<button
class="flex text-xs items-center space-x-1 px-3 py-1.5 rounded-xl bg-black hover:bg-gray-900 text-white dark:bg-white dark:hover:bg-gray-100 dark:text-black transition font-medium"
class="flex text-xs items-center space-x-1 px-3 py-1.5 rounded-xl bg-black hover:bg-gray-900 text-white dark:bg-white dark:hover:bg-gray-100 dark:text-black transition font-normal"
type="button"
on:click={() => {
showConfigModal = true;
}}
>
<div class=" self-center font-medium line-clamp-1">
<div class=" self-center font-normal line-clamp-1">
{$i18n.t('Settings')}
</div>
</button>
@@ -640,7 +640,7 @@
className=" w-fit"
placement="top-start"
>
<div class="font-medium line-clamp-1 flex items-center gap-2">
<div class="font-normal line-clamp-1 flex items-center gap-2">
{model.name}
<Badge
@@ -767,7 +767,7 @@
<div class=" w-full h-full flex flex-col justify-center items-center my-16 mb-24">
<div class="max-w-md text-center">
<div class=" text-3xl mb-3">😕</div>
<div class=" text-lg font-medium mb-1">{$i18n.t('No models found')}</div>
<div class=" text-lg font-normal mb-1">{$i18n.t('No models found')}</div>
<div class=" text-gray-500 text-center text-xs">
{$i18n.t('Try adjusting your search or filter to find what you are looking for.')}
</div>
@@ -608,7 +608,7 @@
<div>
<div class="space-y-2">
<div>
<div class=" mb-2 text-sm font-medium flex items-center gap-1.5">
<div class=" mb-2 text-sm font-normal flex items-center gap-1.5">
<div>
{$i18n.t('Pull a model from Ollama.com')}
</div>
@@ -708,7 +708,7 @@
<div class="mt-2 mb-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t('To access the available model names for downloading,')}
<a
class=" text-gray-500 dark:text-gray-300 font-medium underline"
class=" text-gray-500 dark:text-gray-300 font-normal underline"
href="https://ollama.com/library"
target="_blank">{$i18n.t('click here.')}</a
>
@@ -751,12 +751,12 @@
{#each Object.keys($MODEL_DOWNLOAD_POOL) as model}
{#if 'pullProgress' in $MODEL_DOWNLOAD_POOL[model]}
<div class="flex flex-col">
<div class="font-medium mb-1">{model}</div>
<div class="font-normal mb-1">{model}</div>
<div class="">
<div class="flex flex-row justify-between space-x-4 pr-2">
<div class=" flex-1">
<div
class="dark:bg-gray-600 bg-gray-500 text-xs font-medium text-gray-100 text-center p-0.5 leading-none rounded-full"
class="dark:bg-gray-600 bg-gray-500 text-xs font-normal text-gray-100 text-center p-0.5 leading-none rounded-full"
style="width: {Math.max(
15,
$MODEL_DOWNLOAD_POOL[model].pullProgress ?? 0
@@ -806,7 +806,7 @@
</div>
<div>
<div class=" mb-2 text-sm font-medium">{$i18n.t('Delete a model')}</div>
<div class=" mb-2 text-sm font-normal">{$i18n.t('Delete a model')}</div>
<div class="flex w-full">
<div
class="flex-1 mr-2 pr-1.5 rounded-lg bg-gray-50 dark:text-gray-300 dark:bg-gray-850"
@@ -851,7 +851,7 @@
</div>
<div>
<div class=" mb-2 text-sm font-medium">{$i18n.t('Create a model')}</div>
<div class=" mb-2 text-sm font-normal">{$i18n.t('Create a model')}</div>
<div class="flex w-full">
<div class="flex-1 mr-2 flex flex-col gap-2">
<input
@@ -903,12 +903,12 @@
{#if createModelDigest !== ''}
<div class="flex flex-col mt-1">
<div class="font-medium mb-1">{createModelTag}</div>
<div class="font-normal mb-1">{createModelTag}</div>
<div class="">
<div class="flex flex-row justify-between space-x-4 pr-2">
<div class=" flex-1">
<div
class="dark:bg-gray-600 bg-gray-500 text-xs font-medium text-gray-100 text-center p-0.5 leading-none rounded-full"
class="dark:bg-gray-600 bg-gray-500 text-xs font-normal text-gray-100 text-center p-0.5 leading-none rounded-full"
style="width: {Math.max(15, createModelPullProgress ?? 0)}%"
>
{createModelPullProgress ?? 0}%
@@ -927,9 +927,9 @@
<div class="pt-1">
<div class="flex justify-between items-center text-xs">
<div class=" text-sm font-medium">{$i18n.t('Experimental')}</div>
<div class=" text-sm font-normal">{$i18n.t('Experimental')}</div>
<button
class=" text-xs font-medium text-gray-500"
class=" text-xs font-normal text-gray-500"
type="button"
on:click={() => {
showExperimentalOllama = !showExperimentalOllama;
@@ -945,7 +945,7 @@
}}
>
<div class=" mb-2 flex w-full justify-between">
<div class=" text-sm font-medium">{$i18n.t('Upload a GGUF model')}</div>
<div class=" text-sm font-normal">{$i18n.t('Upload a GGUF model')}</div>
<button
class="p-1 px-3 text-xs flex rounded-sm transition"
@@ -1073,7 +1073,7 @@
{#if (modelUploadMode === 'file' && modelInputFile && modelInputFile.length > 0) || (modelUploadMode === 'url' && modelFileUrl !== '')}
<div>
<div>
<div class=" my-2.5 text-sm font-medium">
<div class=" my-2.5 text-sm font-normal">
{$i18n.t('Modelfile Content')}
</div>
<textarea
@@ -1087,7 +1087,7 @@
<div class=" mt-1 text-xs text-gray-400 dark:text-gray-500">
{$i18n.t('To access the GGUF models available for downloading,')}
<a
class=" text-gray-500 dark:text-gray-300 font-medium underline"
class=" text-gray-500 dark:text-gray-300 font-normal underline"
href="https://huggingface.co/models?search=gguf"
target="_blank">{$i18n.t('click here.')}</a
>
@@ -1099,7 +1099,7 @@
<div class="w-full rounded-full dark:bg-gray-800">
<div
class="dark:bg-gray-600 bg-gray-500 text-xs font-medium text-gray-100 text-center p-0.5 leading-none rounded-full"
class="dark:bg-gray-600 bg-gray-500 text-xs font-normal text-gray-100 text-center p-0.5 leading-none rounded-full"
style="width: 100%"
>
{uploadMessage}
@@ -1115,7 +1115,7 @@
<div class="w-full rounded-full dark:bg-gray-800">
<div
class="dark:bg-gray-600 bg-gray-500 text-xs font-medium text-gray-100 text-center p-0.5 leading-none rounded-full"
class="dark:bg-gray-600 bg-gray-500 text-xs font-normal text-gray-100 text-center p-0.5 leading-none rounded-full"
style="width: {Math.max(15, uploadProgress ?? 0)}%"
>
{uploadProgress ?? 0}%
@@ -40,7 +40,7 @@
<Modal size="sm" bind:show>
<div>
<div class=" flex justify-between dark:text-gray-100 px-5 pt-4">
<div class=" text-lg font-medium self-center font-primary">
<div class=" text-lg font-normal self-center ">
{$i18n.t('Manage Models')}
</div>
<button
@@ -64,7 +64,7 @@
{:else if selected !== null}
<div class=" flex w-full flex-col">
<div
class="flex gap-1 scrollbar-none overflow-x-auto w-fit text-center text-sm font-medium rounded-full bg-transparent dark:text-gray-200"
class="flex gap-1 scrollbar-none overflow-x-auto w-fit text-center text-sm font-normal rounded-full bg-transparent dark:text-gray-200"
>
<button
class="min-w-fit p-1.5 {selected === 'ollama'
@@ -166,7 +166,7 @@
<Modal size="lg" bind:show>
<div>
<div class=" flex justify-between dark:text-gray-100 px-5 pt-4 pb-2">
<div class=" text-lg font-medium self-center font-primary">
<div class=" text-lg font-normal self-center ">
{$i18n.t('Settings')}
</div>
<button
@@ -191,7 +191,7 @@
<div class="flex flex-col lg:flex-row w-full h-full pb-2 lg:space-x-4">
<div
id="admin-settings-tabs-container"
class="tabs flex flex-row overflow-x-auto gap-2.5 max-w-full lg:gap-1 lg:flex-col lg:flex-none lg:w-40 dark:text-gray-200 text-sm font-medium text-left scrollbar-none"
class="tabs flex flex-row overflow-x-auto gap-2.5 max-w-full lg:gap-1 lg:flex-col lg:flex-none lg:w-40 dark:text-gray-200 text-sm font-normal text-left scrollbar-none"
>
<button
class="px-0.5 py-1 max-w-fit w-fit rounded-lg flex-1 lg:flex-none flex text-right transition {selectedTab ===
@@ -259,7 +259,7 @@
showDefaultPromptSuggestions = !showDefaultPromptSuggestions;
}}
>
<div class="text-xs text-gray-500 font-medium">
<div class="text-xs text-gray-500 font-normal">
{$i18n.t('Prompt Suggestions')}
</div>
<div>
@@ -296,7 +296,7 @@
showDefaultCapabilities = !showDefaultCapabilities;
}}
>
<div class="text-xs text-gray-500 font-medium">
<div class="text-xs text-gray-500 font-normal">
{$i18n.t('Model Capabilities')}
</div>
<div>
@@ -352,7 +352,7 @@
showDefaultParams = !showDefaultParams;
}}
>
<div class="text-xs text-gray-500 font-medium">
<div class="text-xs text-gray-500 font-normal">
{$i18n.t('Model Parameters')}
</div>
<div>
@@ -419,7 +419,7 @@
{/if}
</div>
<div class="flex justify-between items-center pt-3 text-sm font-medium gap-1.5">
<div class="flex justify-between items-center pt-3 text-sm font-normal gap-1.5">
<div>
<Tooltip
content={$i18n.t('This will delete all models including custom models')}
@@ -436,7 +436,7 @@
</Tooltip>
</div>
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex items-center gap-2 whitespace-nowrap {loading
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full flex items-center gap-2 whitespace-nowrap {loading
? ' cursor-not-allowed'
: ''}"
type="submit"
@@ -224,7 +224,7 @@
<div class="overflow-y-scroll scrollbar-hidden h-full">
{#if PIPELINES_LIST !== null}
<div class="flex w-full justify-between mb-2">
<div class=" self-center text-sm font-medium">
<div class=" self-center text-sm font-normal">
{$i18n.t('Manage Pipelines')}
</div>
</div>
@@ -257,7 +257,7 @@
</div>
<div class=" my-2">
<div class=" mb-2 text-sm font-medium">
<div class=" mb-2 text-sm font-normal">
{$i18n.t('Upload Pipeline')}
</div>
<div class="flex w-full">
@@ -271,7 +271,7 @@
/>
<button
class="w-full text-sm font-medium py-2 bg-transparent hover:bg-gray-100 border border-dashed dark:border-gray-850 dark:hover:bg-gray-850 text-center rounded-xl"
class="w-full text-sm font-normal py-2 bg-transparent hover:bg-gray-100 border border-dashed dark:border-gray-850 dark:hover:bg-gray-850 text-center rounded-xl"
type="button"
on:click={() => {
document.getElementById('pipelines-upload-input')?.click();
@@ -342,7 +342,7 @@
</div>
<div class=" my-2">
<div class=" mb-2 text-sm font-medium">
<div class=" mb-2 text-sm font-normal">
{$i18n.t('Install from Github URL')}
</div>
<div class="flex w-full">
@@ -410,9 +410,9 @@
</div>
<div class="mt-2 text-xs text-gray-500">
<span class=" font-medium dark:text-gray-200">{$i18n.t('Warning:')}</span>
<span class=" font-normal dark:text-gray-200">{$i18n.t('Warning:')}</span>
{$i18n.t('Pipelines are a plugin system with arbitrary code execution —')}
<span class=" font-medium dark:text-gray-400"
<span class=" font-normal dark:text-gray-400"
>{$i18n.t("don't fetch random pipelines from sources you don't trust.")}</span
>
</div>
@@ -423,7 +423,7 @@
{#if pipelines !== null}
{#if pipelines.length > 0}
<div class="flex w-full justify-between mb-2">
<div class=" self-center text-sm font-medium">
<div class=" self-center text-sm font-normal">
{$i18n.t('Pipelines Valves')}
</div>
</div>
@@ -477,7 +477,7 @@
{#each Object.keys(valves_spec.properties) as property, idx}
<div class=" py-0.5 w-full justify-between">
<div class="flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{valves_spec.properties[property].title}
</div>
@@ -567,9 +567,9 @@
</div>
{#if PIPELINES_LIST !== null && PIPELINES_LIST.length > 0}
<div class="flex justify-end pt-3 text-sm font-medium">
<div class="flex justify-end pt-3 text-sm font-normal">
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
type="submit"
>
{$i18n.t('Save')}
@@ -58,7 +58,7 @@
<form class="flex h-full flex-col justify-between text-sm" on:submit|preventDefault={save}>
<div class="h-full overflow-y-auto scrollbar-hidden">
<div class="mt-0.5 mb-4 text-base font-medium">{$i18n.t('Sub-agents')}</div>
<div class="mt-0.5 mb-4 text-base font-normal">{$i18n.t('Sub-agents')}</div>
{#if loading}
<div class="flex justify-center py-8"><Spinner className="size-6" /></div>
@@ -187,9 +187,9 @@
</div>
{#if !loading}
<div class="flex justify-end pt-6 text-sm font-medium">
<div class="flex justify-end pt-6 text-sm font-normal">
<button
class="rounded-full bg-black px-3.5 py-1.5 text-sm font-medium text-white transition hover:bg-gray-900 disabled:opacity-50 dark:bg-white dark:text-black dark:hover:bg-gray-100"
class="rounded-full bg-black px-3.5 py-1.5 text-sm font-normal text-white transition hover:bg-gray-900 disabled:opacity-50 dark:bg-white dark:text-black dark:hover:bg-gray-100"
type="submit"
disabled={saving}
>
@@ -154,12 +154,12 @@
{#if webConfig}
<div class="">
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('General')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('General')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Web Search')}
</div>
<div class="flex items-center relative">
@@ -168,7 +168,7 @@
</div>
<div class="mb-2.5 flex w-full justify-between">
<div class="self-center text-xs font-medium">
<div class="self-center text-xs font-normal">
{$i18n.t('Web Search Confirmation')}
</div>
<div class="flex items-center relative">
@@ -180,7 +180,7 @@
{#if webConfig.ENABLE_WEB_SEARCH_CONFIRMATION}
<div class="mb-2.5">
<div class="self-center text-xs font-medium mb-2">
<div class="self-center text-xs font-normal mb-2">
{$i18n.t('Web Search Confirmation Content')}
</div>
<Textarea
@@ -193,7 +193,7 @@
{/if}
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Web Search Engine')}
</div>
<div class="flex items-center relative">
@@ -221,7 +221,7 @@
{#if webConfig.WEB_SEARCH_ENGINE === 'ollama_cloud'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Ollama Cloud API Key')}
</div>
@@ -238,7 +238,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'perplexity_search'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Perplexity Search API URL')}
</div>
@@ -258,7 +258,7 @@
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Perplexity API Key')}
</div>
@@ -275,7 +275,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'searxng'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-left text-xs font-medium mb-1">
<div class=" self-left text-xs font-normal mb-1">
{$i18n.t('Searxng Query URL')}
</div>
@@ -293,7 +293,7 @@
</div>
</div>
<div class="mb-2.5 flex w-full flex-col">
<div class=" self-left text-xs font-medium mb-1">
<div class=" self-left text-xs font-normal mb-1">
{$i18n.t('Searxng search language (all, en, es, de, fr, etc.)')}
</div>
@@ -314,7 +314,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'yacy'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Yacy Instance URL')}
</div>
@@ -334,7 +334,7 @@
<div class="mb-2.5 flex w-full flex-col">
<div class="flex gap-2">
<div class="w-full">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Yacy Username')}
</div>
@@ -347,7 +347,7 @@
</div>
<div class="w-full">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Yacy Password')}
</div>
@@ -361,7 +361,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'google_pse'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Google PSE API Key')}
</div>
@@ -371,7 +371,7 @@
/>
</div>
<div class="mt-1.5">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Google PSE Engine Id')}
</div>
@@ -391,7 +391,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'brave'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Brave Search API Key')}
</div>
@@ -404,7 +404,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'brave_llm_context'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Brave Search API Key')}
</div>
@@ -414,7 +414,7 @@
/>
</div>
<div class="mt-1.5">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Context Tokens')}
</div>
@@ -437,7 +437,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'kagi'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Kagi Search API Key')}
</div>
@@ -450,7 +450,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'mojeek'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Mojeek Search API Key')}
</div>
@@ -463,7 +463,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'bocha'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Bocha Search API Key')}
</div>
@@ -476,7 +476,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'serpstack'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Serpstack API Key')}
</div>
@@ -489,7 +489,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'serper'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Serper API Key')}
</div>
@@ -502,7 +502,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'serphouse'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('SERPHouse API Key')}
</div>
@@ -512,7 +512,7 @@
/>
</div>
<div class="mt-1.5">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('SERPHouse Domain')}
</div>
@@ -532,7 +532,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'serply'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Serply API Key')}
</div>
@@ -545,7 +545,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'tavily'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Tavily API Key')}
</div>
@@ -558,7 +558,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'searchapi'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('SearchApi API Key')}
</div>
@@ -568,7 +568,7 @@
/>
</div>
<div class="mt-1.5">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('SearchApi Engine')}
</div>
@@ -588,7 +588,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'serpapi'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('SerpApi API Key')}
</div>
@@ -598,7 +598,7 @@
/>
</div>
<div class="mt-1.5">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('SerpApi Engine')}
</div>
@@ -618,7 +618,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'jina'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Jina API Base URL')}
</div>
@@ -636,7 +636,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Jina API Key')}
</div>
@@ -649,7 +649,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'bing'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Bing Search V7 Endpoint')}
</div>
@@ -667,7 +667,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Bing Search V7 Subscription Key')}
</div>
@@ -680,7 +680,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'exa'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Exa API Key')}
</div>
@@ -693,7 +693,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'perplexity'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Perplexity API Key')}
</div>
@@ -706,7 +706,7 @@
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class="self-center text-xs font-medium mb-1">
<div class="self-center text-xs font-normal mb-1">
{$i18n.t('Perplexity Model')}
</div>
<input
@@ -727,7 +727,7 @@
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Perplexity Search Context Usage')}
</div>
<select
@@ -743,7 +743,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'microsoft_web_iq'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Microsoft Web IQ API Base URL')}
</div>
@@ -761,7 +761,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Microsoft Web IQ API Key')}
</div>
@@ -772,7 +772,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Language')}
</div>
@@ -788,7 +788,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'sougou'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Sougou Search API sID')}
</div>
@@ -800,7 +800,7 @@
</div>
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Sougou Search API SK')}
</div>
@@ -813,7 +813,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'firecrawl'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Firecrawl API Base URL')}
</div>
@@ -831,7 +831,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Firecrawl API Key')}
</div>
@@ -842,7 +842,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Firecrawl Timeout (s)')}
</div>
@@ -862,7 +862,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'external'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('External Web Search URL')}
</div>
@@ -880,7 +880,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('External Web Search API Key')}
</div>
@@ -893,7 +893,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'yandex'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Yandex Web Search URL')}
</div>
@@ -911,7 +911,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Yandex Web Search API Key')}
</div>
@@ -922,7 +922,7 @@
</div>
<div class="mb-2.5">
<div class=" mb-1 text-xs font-medium">{$i18n.t('Yandex Web Search config')}</div>
<div class=" mb-1 text-xs font-normal">{$i18n.t('Yandex Web Search config')}</div>
<Tooltip
content={$i18n.t(
@@ -942,7 +942,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'youcom'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('You.com API Key')}
</div>
@@ -955,7 +955,7 @@
{:else if webConfig.WEB_SEARCH_ENGINE === 'linkup'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Linkup API Key')}
</div>
@@ -966,7 +966,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Parameters')}
</div>
@@ -981,7 +981,7 @@
{#if webConfig.WEB_SEARCH_ENGINE === 'duckduckgo'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('DDGS Backend')}
</div>
@@ -1013,7 +1013,7 @@
<div class="mb-2.5 flex w-full flex-col">
<div class="flex gap-2">
<div class="w-full">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Search Result Count')}
</div>
@@ -1026,7 +1026,7 @@
</div>
<div class="w-full">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
<Tooltip
content={$i18n.t(
'Limit concurrent search queries. 0 = unlimited (default). Set to 1 for sequential execution (recommended for APIs with strict rate limits like Brave free tier).'
@@ -1049,7 +1049,7 @@
</div>
<div class="mb-2.5 w-full">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
<Tooltip
content={$i18n.t(
'Maximum characters to return from fetched URLs. Leave empty for no limit.'
@@ -1070,7 +1070,7 @@
</div>
<div class="mb-2.5 flex w-full flex-col">
<div class=" text-xs font-medium mb-1">
<div class=" text-xs font-normal mb-1">
{$i18n.t('Domain Filter List')}
</div>
@@ -1085,7 +1085,7 @@
{/if}
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
<Tooltip content={$i18n.t('Full Context Mode')} placement="top-start">
{$i18n.t('Bypass Embedding and Retrieval')}
</Tooltip>
@@ -1106,7 +1106,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
<Tooltip content={$i18n.t('Bypass Web Loader')} placement="top-start">
{$i18n.t('Bypass Web Loader')}
</Tooltip>
@@ -1119,7 +1119,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Trust Proxy Environment')}
</div>
<div class="flex items-center relative">
@@ -1137,12 +1137,12 @@
</div>
<div class="mb-3">
<div class=" mt-0.5 mb-2.5 text-base font-medium">{$i18n.t('Loader')}</div>
<div class=" mt-0.5 mb-2.5 text-base font-normal">{$i18n.t('Loader')}</div>
<hr class=" border-gray-100/30 dark:border-gray-850/30 my-2" />
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Web Loader Engine')}
</div>
<div class="flex items-center relative">
@@ -1161,7 +1161,7 @@
{#if webConfig.WEB_LOADER_ENGINE === '' || webConfig.WEB_LOADER_ENGINE === 'safe_web'}
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Timeout')}
</div>
<div class="flex items-center relative">
@@ -1174,7 +1174,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Verify SSL Certificate')}
</div>
<div class="flex items-center relative">
@@ -1184,7 +1184,7 @@
{:else if webConfig.WEB_LOADER_ENGINE === 'playwright'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Playwright WebSocket URL')}
</div>
@@ -1202,7 +1202,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Playwright Timeout (ms)')}
</div>
@@ -1221,7 +1221,7 @@
{:else if webConfig.WEB_LOADER_ENGINE === 'firecrawl' && webConfig.WEB_SEARCH_ENGINE !== 'firecrawl'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Firecrawl API Base URL')}
</div>
@@ -1239,7 +1239,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Firecrawl API Key')}
</div>
@@ -1252,7 +1252,7 @@
{:else if webConfig.WEB_LOADER_ENGINE === 'tavily'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Tavily Extract Depth')}
</div>
@@ -1271,7 +1271,7 @@
{#if webConfig.WEB_SEARCH_ENGINE !== 'tavily'}
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Tavily API Key')}
</div>
@@ -1286,7 +1286,7 @@
<div class="mb-2.5 flex w-full flex-col">
{#if webConfig.WEB_SEARCH_ENGINE !== 'microsoft_web_iq'}
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Microsoft Web IQ API Base URL')}
</div>
@@ -1304,7 +1304,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Microsoft Web IQ API Key')}
</div>
@@ -1315,7 +1315,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Language')}
</div>
@@ -1332,7 +1332,7 @@
{:else if webConfig.WEB_LOADER_ENGINE === 'external'}
<div class="mb-2.5 flex w-full flex-col">
<div>
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('External Web Loader URL')}
</div>
@@ -1350,7 +1350,7 @@
</div>
<div class="mt-2">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('External Web Loader API Key')}
</div>
@@ -1363,7 +1363,7 @@
{/if}
<div class="mb-2.5 w-full">
<div class=" self-center text-xs font-medium mb-1">
<div class=" self-center text-xs font-normal mb-1">
{$i18n.t('Concurrent Requests')}
</div>
@@ -1376,7 +1376,7 @@
</div>
<div class=" mb-2.5 flex w-full justify-between">
<div class=" self-center text-xs font-medium">
<div class=" self-center text-xs font-normal">
{$i18n.t('Youtube Language')}
</div>
<div class="flex items-center relative">
@@ -1391,7 +1391,7 @@
</div>
<div class=" mb-2.5 flex flex-col w-full justify-between">
<div class=" mb-1 text-xs font-medium">
<div class=" mb-1 text-xs font-normal">
{$i18n.t('Youtube Proxy URL')}
</div>
<div class="flex items-center relative">
@@ -1408,9 +1408,9 @@
</div>
{/if}
</div>
<div class="flex justify-end pt-3 text-sm font-medium">
<div class="flex justify-end pt-3 text-sm font-normal">
<button
class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
class="px-3.5 py-1.5 text-sm font-normal bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full"
type="submit"
>
{$i18n.t('Save')}