mirror of
https://github.com/open-webui/open-webui
synced 2024-11-22 08:07:55 +00:00
chore: format
This commit is contained in:
parent
70f580ec45
commit
7ef5aa520c
@ -22,7 +22,6 @@ Noticed something off? Have an idea? Check our [Issues tab](https://github.com/o
|
|||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
>
|
>
|
||||||
> - **Template Compliance:** Please be aware that failure to follow the provided issue template, or not providing the requested information at all, will likely result in your issue being closed without further consideration. This approach is critical for maintaining the manageability and integrity of issue tracking.
|
> - **Template Compliance:** Please be aware that failure to follow the provided issue template, or not providing the requested information at all, will likely result in your issue being closed without further consideration. This approach is critical for maintaining the manageability and integrity of issue tracking.
|
||||||
>
|
|
||||||
> - **Detail is Key:** To ensure your issue is understood and can be effectively addressed, it's imperative to include comprehensive details. Descriptions should be clear, including steps to reproduce, expected outcomes, and actual results. Lack of sufficient detail may hinder our ability to resolve your issue.
|
> - **Detail is Key:** To ensure your issue is understood and can be effectively addressed, it's imperative to include comprehensive details. Descriptions should be clear, including steps to reproduce, expected outcomes, and actual results. Lack of sufficient detail may hinder our ability to resolve your issue.
|
||||||
|
|
||||||
### 🧭 Scope of Support
|
### 🧭 Scope of Support
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!doctype html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
|
@ -260,7 +260,7 @@ export const getOpenAIModelsDirect = async (
|
|||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
||||||
const models = Array.isArray(res) ? res : res?.data ?? null;
|
const models = Array.isArray(res) ? res : (res?.data ?? null);
|
||||||
|
|
||||||
return models
|
return models
|
||||||
.map((model) => ({ id: model.id, name: model.name ?? model.id, external: true }))
|
.map((model) => ({ id: model.id, name: model.name ?? model.id, external: true }))
|
||||||
|
@ -739,7 +739,7 @@
|
|||||||
? await getAndUpdateUserLocation(localStorage.token)
|
? await getAndUpdateUserLocation(localStorage.token)
|
||||||
: undefined
|
: undefined
|
||||||
)}${
|
)}${
|
||||||
responseMessage?.userContext ?? null
|
(responseMessage?.userContext ?? null)
|
||||||
? `\n\nUser Context:\n${responseMessage?.userContext ?? ''}`
|
? `\n\nUser Context:\n${responseMessage?.userContext ?? ''}`
|
||||||
: ''
|
: ''
|
||||||
}`
|
}`
|
||||||
@ -811,7 +811,7 @@
|
|||||||
options: {
|
options: {
|
||||||
...(params ?? $settings.params ?? {}),
|
...(params ?? $settings.params ?? {}),
|
||||||
stop:
|
stop:
|
||||||
params?.stop ?? $settings?.params?.stop ?? undefined
|
(params?.stop ?? $settings?.params?.stop ?? undefined)
|
||||||
? (params?.stop.split(',').map((token) => token.trim()) ?? $settings.params.stop).map(
|
? (params?.stop.split(',').map((token) => token.trim()) ?? $settings.params.stop).map(
|
||||||
(str) => decodeURIComponent(JSON.parse('"' + str.replace(/\"/g, '\\"') + '"'))
|
(str) => decodeURIComponent(JSON.parse('"' + str.replace(/\"/g, '\\"') + '"'))
|
||||||
)
|
)
|
||||||
@ -1056,7 +1056,7 @@
|
|||||||
stream: true,
|
stream: true,
|
||||||
model: model.id,
|
model: model.id,
|
||||||
stream_options:
|
stream_options:
|
||||||
model.info?.meta?.capabilities?.usage ?? false
|
(model.info?.meta?.capabilities?.usage ?? false)
|
||||||
? {
|
? {
|
||||||
include_usage: true
|
include_usage: true
|
||||||
}
|
}
|
||||||
@ -1072,7 +1072,7 @@
|
|||||||
? await getAndUpdateUserLocation(localStorage.token)
|
? await getAndUpdateUserLocation(localStorage.token)
|
||||||
: undefined
|
: undefined
|
||||||
)}${
|
)}${
|
||||||
responseMessage?.userContext ?? null
|
(responseMessage?.userContext ?? null)
|
||||||
? `\n\nUser Context:\n${responseMessage?.userContext ?? ''}`
|
? `\n\nUser Context:\n${responseMessage?.userContext ?? ''}`
|
||||||
: ''
|
: ''
|
||||||
}`
|
}`
|
||||||
@ -1092,7 +1092,7 @@
|
|||||||
text:
|
text:
|
||||||
arr.length - 1 !== idx
|
arr.length - 1 !== idx
|
||||||
? message.content
|
? message.content
|
||||||
: message?.raContent ?? message.content
|
: (message?.raContent ?? message.content)
|
||||||
},
|
},
|
||||||
...message.files
|
...message.files
|
||||||
.filter((file) => file.type === 'image')
|
.filter((file) => file.type === 'image')
|
||||||
@ -1108,12 +1108,12 @@
|
|||||||
content:
|
content:
|
||||||
arr.length - 1 !== idx
|
arr.length - 1 !== idx
|
||||||
? message.content
|
? message.content
|
||||||
: message?.raContent ?? message.content
|
: (message?.raContent ?? message.content)
|
||||||
})
|
})
|
||||||
})),
|
})),
|
||||||
seed: params?.seed ?? $settings?.params?.seed ?? undefined,
|
seed: params?.seed ?? $settings?.params?.seed ?? undefined,
|
||||||
stop:
|
stop:
|
||||||
params?.stop ?? $settings?.params?.stop ?? undefined
|
(params?.stop ?? $settings?.params?.stop ?? undefined)
|
||||||
? (params?.stop.split(',').map((token) => token.trim()) ?? $settings.params.stop).map(
|
? (params?.stop.split(',').map((token) => token.trim()) ?? $settings.params.stop).map(
|
||||||
(str) => decodeURIComponent(JSON.parse('"' + str.replace(/\"/g, '\\"') + '"'))
|
(str) => decodeURIComponent(JSON.parse('"' + str.replace(/\"/g, '\\"') + '"'))
|
||||||
)
|
)
|
||||||
|
@ -305,7 +305,7 @@
|
|||||||
{#each messages as message, messageIdx}
|
{#each messages as message, messageIdx}
|
||||||
<div class=" w-full {messageIdx === messages.length - 1 ? ' pb-12' : ''}">
|
<div class=" w-full {messageIdx === messages.length - 1 ? ' pb-12' : ''}">
|
||||||
<div
|
<div
|
||||||
class="flex flex-col justify-between px-5 mb-3 {$settings?.widescreenMode ?? null
|
class="flex flex-col justify-between px-5 mb-3 {($settings?.widescreenMode ?? null)
|
||||||
? 'max-w-full'
|
? 'max-w-full'
|
||||||
: 'max-w-5xl'} mx-auto rounded-lg group"
|
: 'max-w-5xl'} mx-auto rounded-lg group"
|
||||||
>
|
>
|
||||||
@ -317,10 +317,10 @@
|
|||||||
{message}
|
{message}
|
||||||
isFirstMessage={messageIdx === 0}
|
isFirstMessage={messageIdx === 0}
|
||||||
siblings={message.parentId !== null
|
siblings={message.parentId !== null
|
||||||
? history.messages[message.parentId]?.childrenIds ?? []
|
? (history.messages[message.parentId]?.childrenIds ?? [])
|
||||||
: Object.values(history.messages)
|
: (Object.values(history.messages)
|
||||||
.filter((message) => message.parentId === null)
|
.filter((message) => message.parentId === null)
|
||||||
.map((message) => message.id) ?? []}
|
.map((message) => message.id) ?? [])}
|
||||||
{confirmEditMessage}
|
{confirmEditMessage}
|
||||||
{showPreviousMessage}
|
{showPreviousMessage}
|
||||||
{showNextMessage}
|
{showNextMessage}
|
||||||
|
@ -191,7 +191,7 @@
|
|||||||
const res = await synthesizeOpenAISpeech(
|
const res = await synthesizeOpenAISpeech(
|
||||||
localStorage.token,
|
localStorage.token,
|
||||||
$settings?.audio?.tts?.defaultVoice === $config.audio.tts.voice
|
$settings?.audio?.tts?.defaultVoice === $config.audio.tts.voice
|
||||||
? $settings?.audio?.tts?.voice ?? $config?.audio?.tts?.voice
|
? ($settings?.audio?.tts?.voice ?? $config?.audio?.tts?.voice)
|
||||||
: $config?.audio?.tts?.voice,
|
: $config?.audio?.tts?.voice,
|
||||||
sentence
|
sentence
|
||||||
).catch((error) => {
|
).catch((error) => {
|
||||||
|
@ -62,8 +62,8 @@
|
|||||||
{#if !($settings?.chatBubble ?? true)}
|
{#if !($settings?.chatBubble ?? true)}
|
||||||
<ProfileImage
|
<ProfileImage
|
||||||
src={message.user
|
src={message.user
|
||||||
? $models.find((m) => m.id === message.user)?.info?.meta?.profile_image_url ?? '/user.png'
|
? ($models.find((m) => m.id === message.user)?.info?.meta?.profile_image_url ?? '/user.png')
|
||||||
: user?.profile_image_url ?? '/user.png'}
|
: (user?.profile_image_url ?? '/user.png')}
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
<div class="w-full overflow-hidden pl-1">
|
<div class="w-full overflow-hidden pl-1">
|
||||||
@ -96,7 +96,7 @@
|
|||||||
{#if message.files}
|
{#if message.files}
|
||||||
<div class="mt-2.5 mb-1 w-full flex flex-col justify-end overflow-x-auto gap-1 flex-wrap">
|
<div class="mt-2.5 mb-1 w-full flex flex-col justify-end overflow-x-auto gap-1 flex-wrap">
|
||||||
{#each message.files as file}
|
{#each message.files as file}
|
||||||
<div class={$settings?.chatBubble ?? true ? 'self-end' : ''}>
|
<div class={($settings?.chatBubble ?? true) ? 'self-end' : ''}>
|
||||||
{#if file.type === 'image'}
|
{#if file.type === 'image'}
|
||||||
<img src={file.url} alt="input" class=" max-h-96 rounded-lg" draggable="false" />
|
<img src={file.url} alt="input" class=" max-h-96 rounded-lg" draggable="false" />
|
||||||
{:else}
|
{:else}
|
||||||
@ -162,9 +162,9 @@
|
|||||||
</div>
|
</div>
|
||||||
{:else}
|
{:else}
|
||||||
<div class="w-full">
|
<div class="w-full">
|
||||||
<div class="flex {$settings?.chatBubble ?? true ? 'justify-end' : ''} mb-2">
|
<div class="flex {($settings?.chatBubble ?? true) ? 'justify-end' : ''} mb-2">
|
||||||
<div
|
<div
|
||||||
class="rounded-3xl {$settings?.chatBubble ?? true
|
class="rounded-3xl {($settings?.chatBubble ?? true)
|
||||||
? `max-w-[90%] px-5 py-2 bg-gray-50 dark:bg-gray-850 ${
|
? `max-w-[90%] px-5 py-2 bg-gray-50 dark:bg-gray-850 ${
|
||||||
message.files ? 'rounded-tr-lg' : ''
|
message.files ? 'rounded-tr-lg' : ''
|
||||||
}`
|
}`
|
||||||
@ -175,7 +175,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class=" flex {$settings?.chatBubble ?? true
|
class=" flex {($settings?.chatBubble ?? true)
|
||||||
? 'justify-end'
|
? 'justify-end'
|
||||||
: ''} text-gray-600 dark:text-gray-500"
|
: ''} text-gray-600 dark:text-gray-500"
|
||||||
>
|
>
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
on:click={() => {
|
on:click={() => {
|
||||||
valves[property] =
|
valves[property] =
|
||||||
(valves[property] ?? null) === null
|
(valves[property] ?? null) === null
|
||||||
? valvesSpec.properties[property]?.default ?? ''
|
? (valvesSpec.properties[property]?.default ?? '')
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
dispatch('change');
|
dispatch('change');
|
||||||
|
@ -292,7 +292,7 @@
|
|||||||
>
|
>
|
||||||
<div class=" self-start w-8 pt-0.5">
|
<div class=" self-start w-8 pt-0.5">
|
||||||
<div
|
<div
|
||||||
class=" rounded-full bg-stone-700 {model?.info?.meta?.hidden ?? false
|
class=" rounded-full bg-stone-700 {(model?.info?.meta?.hidden ?? false)
|
||||||
? 'brightness-90 dark:brightness-50'
|
? 'brightness-90 dark:brightness-50'
|
||||||
: ''} "
|
: ''} "
|
||||||
>
|
>
|
||||||
@ -305,7 +305,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class=" flex-1 self-center {model?.info?.meta?.hidden ?? false ? 'text-gray-500' : ''}"
|
class=" flex-1 self-center {(model?.info?.meta?.hidden ?? false) ? 'text-gray-500' : ''}"
|
||||||
>
|
>
|
||||||
<div class=" font-semibold line-clamp-1">{model.name}</div>
|
<div class=" font-semibold line-clamp-1">{model.name}</div>
|
||||||
<div class=" text-xs overflow-hidden text-ellipsis line-clamp-1">
|
<div class=" text-xs overflow-hidden text-ellipsis line-clamp-1">
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import katex from 'katex';
|
import katex from 'katex';
|
||||||
|
|
||||||
const inlineRule = /^(\${1,2})(?!\$)((?:\\.|[^\\\n])*?(?:\\.|[^\\\n\$]))\1(?=[\s?!\.,:?!。,:]|$)/;
|
const inlineRule =
|
||||||
|
/^(\${1,2})(?!\$)((?:\\.|[^\\\n])*?(?:\\.|[^\\\n\$]))\1(?=[\s?!\.,:?!。,:]|$)/;
|
||||||
const inlineRuleNonStandard = /^(\${1,2})(?!\$)((?:\\.|[^\\\n])*?(?:\\.|[^\\\n\$]))\1/; // Non-standard, even if there are no spaces before and after $ or $$, try to parse
|
const inlineRuleNonStandard = /^(\${1,2})(?!\$)((?:\\.|[^\\\n])*?(?:\\.|[^\\\n\$]))\1/; // Non-standard, even if there are no spaces before and after $ or $$, try to parse
|
||||||
|
|
||||||
const blockRule = /^(\${1,2})\n((?:\\[^]|[^\\])+?)\n\1(?:\n|$)/;
|
const blockRule = /^(\${1,2})\n((?:\\[^]|[^\\])+?)\n\1(?:\n|$)/;
|
||||||
@ -9,13 +10,15 @@ export default function(options = {}) {
|
|||||||
return {
|
return {
|
||||||
extensions: [
|
extensions: [
|
||||||
inlineKatex(options, createRenderer(options, false)),
|
inlineKatex(options, createRenderer(options, false)),
|
||||||
blockKatex(options, createRenderer(options, true)),
|
blockKatex(options, createRenderer(options, true))
|
||||||
],
|
]
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function createRenderer(options, newlineAfter) {
|
function createRenderer(options, newlineAfter) {
|
||||||
return (token) => katex.renderToString(token.text, { ...options, displayMode: token.displayMode }) + (newlineAfter ? '\n' : '');
|
return (token) =>
|
||||||
|
katex.renderToString(token.text, { ...options, displayMode: token.displayMode }) +
|
||||||
|
(newlineAfter ? '\n' : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
function inlineKatex(options, renderer) {
|
function inlineKatex(options, renderer) {
|
||||||
@ -52,11 +55,11 @@ function inlineKatex(options, renderer) {
|
|||||||
type: 'inlineKatex',
|
type: 'inlineKatex',
|
||||||
raw: match[0],
|
raw: match[0],
|
||||||
text: match[2].trim(),
|
text: match[2].trim(),
|
||||||
displayMode: match[1].length === 2,
|
displayMode: match[1].length === 2
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
renderer,
|
renderer
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,10 +74,10 @@ function blockKatex(options, renderer) {
|
|||||||
type: 'blockKatex',
|
type: 'blockKatex',
|
||||||
raw: match[0],
|
raw: match[0],
|
||||||
text: match[2].trim(),
|
text: match[2].trim(),
|
||||||
displayMode: match[1].length === 2,
|
displayMode: match[1].length === 2
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
renderer,
|
renderer
|
||||||
};
|
};
|
||||||
}
|
}
|
@ -154,7 +154,7 @@
|
|||||||
|
|
||||||
params = { ...params, ...model?.info?.params };
|
params = { ...params, ...model?.info?.params };
|
||||||
params.stop = params?.stop
|
params.stop = params?.stop
|
||||||
? (typeof params.stop === 'string' ? params.stop.split(',') : params?.stop ?? []).join(
|
? (typeof params.stop === 'string' ? params.stop.split(',') : (params?.stop ?? [])).join(
|
||||||
','
|
','
|
||||||
)
|
)
|
||||||
: null;
|
: null;
|
||||||
|
@ -352,8 +352,23 @@
|
|||||||
|
|
||||||
<style>
|
<style>
|
||||||
.font-mona {
|
.font-mona {
|
||||||
font-family: 'Mona Sans', -apple-system, 'Inter', ui-sans-serif, system-ui, 'Segoe UI', Roboto,
|
font-family:
|
||||||
Ubuntu, Cantarell, 'Noto Sans', sans-serif, 'Helvetica Neue', Arial, 'Apple Color Emoji',
|
'Mona Sans',
|
||||||
'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
|
-apple-system,
|
||||||
|
'Inter',
|
||||||
|
ui-sans-serif,
|
||||||
|
system-ui,
|
||||||
|
'Segoe UI',
|
||||||
|
Roboto,
|
||||||
|
Ubuntu,
|
||||||
|
Cantarell,
|
||||||
|
'Noto Sans',
|
||||||
|
sans-serif,
|
||||||
|
'Helvetica Neue',
|
||||||
|
Arial,
|
||||||
|
'Apple Color Emoji',
|
||||||
|
'Segoe UI Emoji',
|
||||||
|
'Segoe UI Symbol',
|
||||||
|
'Noto Color Emoji';
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
Loading…
Reference in New Issue
Block a user