mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-12 20:35:19 +00:00
fix: direct tool server
This commit is contained in:
parent
4b22aa819c
commit
f4047eea77
3 changed files with 38 additions and 10 deletions
|
|
@ -347,25 +347,20 @@ export const getToolServerData = async (token: string, url: string) => {
|
||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getToolServersData = async (i18n, servers: object[]) => {
|
export const getToolServersData = async (servers: object[]) => {
|
||||||
return (
|
return (
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
servers
|
servers
|
||||||
.filter((server) => server?.config?.enable)
|
.filter((server) => server?.config?.enable)
|
||||||
.map(async (server) => {
|
.map(async (server) => {
|
||||||
|
let error = null;
|
||||||
const data = await getToolServerData(
|
const data = await getToolServerData(
|
||||||
(server?.auth_type ?? 'bearer') === 'bearer' ? server?.key : localStorage.token,
|
(server?.auth_type ?? 'bearer') === 'bearer' ? server?.key : localStorage.token,
|
||||||
(server?.path ?? '').includes('://')
|
(server?.path ?? '').includes('://')
|
||||||
? server?.path
|
? server?.path
|
||||||
: `${server?.url}${(server?.path ?? '').startsWith('/') ? '' : '/'}${server?.path}`
|
: `${server?.url}${(server?.path ?? '').startsWith('/') ? '' : '/'}${server?.path}`
|
||||||
).catch((err) => {
|
).catch((err) => {
|
||||||
toast.error(
|
error = err;
|
||||||
$i18n.t(`Failed to connect to {{URL}} OpenAPI tool server`, {
|
|
||||||
URL: (server?.path ?? '').includes('://')
|
|
||||||
? server?.path
|
|
||||||
: `${server?.url}${(server?.path ?? '').startsWith('/') ? '' : '/'}${server?.path}`
|
|
||||||
})
|
|
||||||
);
|
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -377,6 +372,13 @@ export const getToolServersData = async (i18n, servers: object[]) => {
|
||||||
info: info,
|
info: info,
|
||||||
specs: specs
|
specs: specs
|
||||||
};
|
};
|
||||||
|
} else if (error) {
|
||||||
|
return {
|
||||||
|
error,
|
||||||
|
url: server?.url
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,20 @@
|
||||||
toolServers: servers
|
toolServers: servers
|
||||||
});
|
});
|
||||||
|
|
||||||
toolServers.set(await getToolServersData($i18n, $settings?.toolServers ?? []));
|
let toolServersData = await getToolServersData($settings?.toolServers ?? []);
|
||||||
|
toolServersData = toolServersData.filter((data) => {
|
||||||
|
if (data.error) {
|
||||||
|
toast.error(
|
||||||
|
$i18n.t(`Failed to connect to {{URL}} OpenAPI tool server`, {
|
||||||
|
URL: data?.url
|
||||||
|
})
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
toolServers.set(toolServersData);
|
||||||
};
|
};
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,20 @@
|
||||||
|
|
||||||
banners.set(await getBanners(localStorage.token));
|
banners.set(await getBanners(localStorage.token));
|
||||||
tools.set(await getTools(localStorage.token));
|
tools.set(await getTools(localStorage.token));
|
||||||
toolServers.set(await getToolServersData($i18n, $settings?.toolServers ?? []));
|
|
||||||
|
let toolServersData = await getToolServersData($settings?.toolServers ?? []);
|
||||||
|
toolServersData = toolServersData.filter((data) => {
|
||||||
|
if (data.error) {
|
||||||
|
toast.error(
|
||||||
|
$i18n.t(`Failed to connect to {{URL}} OpenAPI tool server`, {
|
||||||
|
URL: data?.url
|
||||||
|
})
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
toolServers.set(toolServersData);
|
||||||
|
|
||||||
document.addEventListener('keydown', async function (event) {
|
document.addEventListener('keydown', async 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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue