mirror of
https://github.com/open-webui/open-webui
synced 2025-06-26 18:26:48 +00:00
refac: external tools server support
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
|
||||
import { getKnowledgeBases } from '$lib/apis/knowledge';
|
||||
import { getFunctions } from '$lib/apis/functions';
|
||||
import { getModels, getVersionUpdates } from '$lib/apis';
|
||||
import { getModels, getToolServersData, getVersionUpdates } from '$lib/apis';
|
||||
import { getAllTags } from '$lib/apis/chats';
|
||||
import { getPrompts } from '$lib/apis/prompts';
|
||||
import { getTools } from '$lib/apis/tools';
|
||||
@@ -35,7 +35,8 @@
|
||||
banners,
|
||||
showSettings,
|
||||
showChangelog,
|
||||
temporaryChatEnabled
|
||||
temporaryChatEnabled,
|
||||
toolServers
|
||||
} from '$lib/stores';
|
||||
|
||||
import Sidebar from '$lib/components/layout/Sidebar.svelte';
|
||||
@@ -43,6 +44,7 @@
|
||||
import ChangelogModal from '$lib/components/ChangelogModal.svelte';
|
||||
import AccountPending from '$lib/components/layout/Overlay/AccountPending.svelte';
|
||||
import UpdateInfoToast from '$lib/components/layout/UpdateInfoToast.svelte';
|
||||
import { get } from 'svelte/store';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
|
||||
@@ -99,8 +101,10 @@
|
||||
$config?.features?.enable_direct_connections && ($settings?.directConnections ?? null)
|
||||
)
|
||||
);
|
||||
|
||||
banners.set(await getBanners(localStorage.token));
|
||||
tools.set(await getTools(localStorage.token));
|
||||
toolServers.set(await getToolServersData($settings?.toolServers ?? []));
|
||||
|
||||
document.addEventListener('keydown', async function (event) {
|
||||
const isCtrlPressed = event.ctrlKey || event.metaKey; // metaKey is for Cmd key on Mac
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
import { page } from '$app/stores';
|
||||
import { Toaster, toast } from 'svelte-sonner';
|
||||
|
||||
import { getBackendConfig } from '$lib/apis';
|
||||
import { executeToolServer, getBackendConfig } from '$lib/apis';
|
||||
import { getSessionUser } from '$lib/apis/auths';
|
||||
|
||||
import '../tailwind.css';
|
||||
@@ -205,17 +205,36 @@
|
||||
|
||||
const executeTool = async (data, cb) => {
|
||||
console.log(data);
|
||||
// TODO: MCP (SSE) support
|
||||
// TODO: API Server support
|
||||
|
||||
if (cb) {
|
||||
cb(
|
||||
JSON.parse(
|
||||
JSON.stringify({
|
||||
result: null
|
||||
})
|
||||
)
|
||||
);
|
||||
const toolServer = $settings?.toolServers?.find((server) => server.url === data.server?.url);
|
||||
|
||||
if (toolServer) {
|
||||
const res = await executeToolServer(
|
||||
toolServer.key,
|
||||
toolServer.url,
|
||||
data?.name,
|
||||
data?.params,
|
||||
toolServer
|
||||
).catch((error) => {
|
||||
console.error('executeToolServer', error);
|
||||
return {
|
||||
error: error
|
||||
};
|
||||
});
|
||||
|
||||
if (cb) {
|
||||
cb(JSON.parse(JSON.stringify(res)));
|
||||
}
|
||||
} else {
|
||||
if (cb) {
|
||||
cb(
|
||||
JSON.parse(
|
||||
JSON.stringify({
|
||||
error: 'Tool Server Not Found'
|
||||
})
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user