|
@@ -44,31 +44,28 @@
|
|
let showShortcuts = false;
|
|
let showShortcuts = false;
|
|
|
|
|
|
const getModels = async () => {
|
|
const getModels = async () => {
|
|
- let models = [];
|
|
|
|
- models.push(
|
|
|
|
- ...(await getOllamaModels(localStorage.token).catch((error) => {
|
|
|
|
- toast.error(error);
|
|
|
|
- return [];
|
|
|
|
- }))
|
|
|
|
- );
|
|
|
|
-
|
|
|
|
- // $settings.OPENAI_API_BASE_URL ?? 'https://api.openai.com/v1',
|
|
|
|
- // $settings.OPENAI_API_KEY
|
|
|
|
-
|
|
|
|
- const openAIModels = await getOpenAIModels(localStorage.token).catch((error) => {
|
|
|
|
- console.log(error);
|
|
|
|
- return null;
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- models.push(...(openAIModels ? [{ name: 'hr' }, ...openAIModels] : []));
|
|
|
|
-
|
|
|
|
- const liteLLMModels = await getLiteLLMModels(localStorage.token).catch((error) => {
|
|
|
|
- console.log(error);
|
|
|
|
- return null;
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- models.push(...(liteLLMModels ? [{ name: 'hr' }, ...liteLLMModels] : []));
|
|
|
|
-
|
|
|
|
|
|
+ let models = await Promise.all([
|
|
|
|
+ await getOllamaModels(localStorage.token).catch((error) => {
|
|
|
|
+ console.log(error);
|
|
|
|
+ return null;
|
|
|
|
+ }),
|
|
|
|
+ await getOpenAIModels(localStorage.token).catch((error) => {
|
|
|
|
+ console.log(error);
|
|
|
|
+ return null;
|
|
|
|
+ }),
|
|
|
|
+ await getLiteLLMModels(localStorage.token).catch((error) => {
|
|
|
|
+ console.log(error);
|
|
|
|
+ return null;
|
|
|
|
+ })
|
|
|
|
+ ]);
|
|
|
|
+
|
|
|
|
+ models = models
|
|
|
|
+ .filter((models) => models)
|
|
|
|
+ .reduce((a, e, i, arr) => a.concat(e, ...(i < arr.length - 1 ? [{ name: 'hr' }] : [])), []);
|
|
|
|
+
|
|
|
|
+ // models.push(...(ollamaModels ? [{ name: 'hr' }, ...ollamaModels] : []));
|
|
|
|
+ // models.push(...(openAIModels ? [{ name: 'hr' }, ...openAIModels] : []));
|
|
|
|
+ // models.push(...(liteLLMModels ? [{ name: 'hr' }, ...liteLLMModels] : []));
|
|
return models;
|
|
return models;
|
|
};
|
|
};
|
|
|
|
|
|
@@ -125,8 +122,6 @@
|
|
await models.set(await getModels());
|
|
await models.set(await getModels());
|
|
});
|
|
});
|
|
|
|
|
|
- await setOllamaVersion();
|
|
|
|
-
|
|
|
|
document.addEventListener('keydown', function (event) {
|
|
document.addEventListener('keydown', function (event) {
|
|
const isCtrlPressed = event.ctrlKey || event.metaKey; // metaKey is for Cmd key on Mac
|
|
const isCtrlPressed = event.ctrlKey || event.metaKey; // metaKey is for Cmd key on Mac
|
|
// Check if the Shift key is pressed
|
|
// Check if the Shift key is pressed
|
|
@@ -258,60 +253,6 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- {:else if checkVersion(REQUIRED_OLLAMA_VERSION, ollamaVersion ?? '0')}
|
|
|
|
- <div class="fixed w-full h-full flex z-50">
|
|
|
|
- <div
|
|
|
|
- class="absolute w-full h-full backdrop-blur-md bg-white/20 dark:bg-gray-900/50 flex justify-center"
|
|
|
|
- >
|
|
|
|
- <div class="m-auto pb-44 flex flex-col justify-center">
|
|
|
|
- <div class="max-w-md">
|
|
|
|
- <div class="text-center dark:text-white text-2xl font-medium z-50">
|
|
|
|
- Connection Issue or Update Needed
|
|
|
|
- </div>
|
|
|
|
-
|
|
|
|
- <div class=" mt-4 text-center text-sm dark:text-gray-200 w-full">
|
|
|
|
- Oops! It seems like your Ollama needs a little attention. <br
|
|
|
|
- class=" hidden sm:flex"
|
|
|
|
- />We've detected either a connection hiccup or observed that you're using an older
|
|
|
|
- version. Ensure you're on the latest Ollama version
|
|
|
|
- <br class=" hidden sm:flex" />(version
|
|
|
|
- <span class=" dark:text-white font-medium">{REQUIRED_OLLAMA_VERSION} or higher</span
|
|
|
|
- >) or check your connection.
|
|
|
|
-
|
|
|
|
- <div class="mt-1 text-sm">
|
|
|
|
- Trouble accessing Ollama?
|
|
|
|
- <a
|
|
|
|
- class=" text-black dark:text-white font-semibold underline"
|
|
|
|
- href="https://github.com/open-webui/open-webui#troubleshooting"
|
|
|
|
- target="_blank"
|
|
|
|
- >
|
|
|
|
- Click here for help.
|
|
|
|
- </a>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
-
|
|
|
|
- <div class=" mt-6 mx-auto relative group w-fit">
|
|
|
|
- <button
|
|
|
|
- class="relative z-20 flex px-5 py-2 rounded-full bg-white border border-gray-100 dark:border-none hover:bg-gray-100 transition font-medium text-sm"
|
|
|
|
- on:click={async () => {
|
|
|
|
- location.href = '/';
|
|
|
|
- // await setOllamaVersion();
|
|
|
|
- }}
|
|
|
|
- >
|
|
|
|
- Check Again
|
|
|
|
- </button>
|
|
|
|
-
|
|
|
|
- <button
|
|
|
|
- class="text-xs text-center w-full mt-2 text-gray-400 underline"
|
|
|
|
- on:click={async () => {
|
|
|
|
- await setOllamaVersion(REQUIRED_OLLAMA_VERSION);
|
|
|
|
- }}>Close</button
|
|
|
|
- >
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
{:else if localDBChats.length > 0}
|
|
{:else if localDBChats.length > 0}
|
|
<div class="fixed w-full h-full flex z-50">
|
|
<div class="fixed w-full h-full flex z-50">
|
|
<div
|
|
<div
|