Timothy Jaeryang Baek 3 months ago
parent
commit
ee44383c83

+ 3 - 1
backend/open_webui/routers/configs.py

@@ -100,7 +100,9 @@ async def set_tool_servers_config(
     form_data: ToolServersConfigForm,
     user=Depends(get_admin_user),
 ):
-    request.app.state.config.TOOL_SERVER_CONNECTIONS = form_data.TOOL_SERVER_CONNECTIONS
+    request.app.state.config.TOOL_SERVER_CONNECTIONS = [
+        connection.model_dump() for connection in form_data.TOOL_SERVER_CONNECTIONS
+    ]
 
     request.app.state.TOOL_SERVERS = await get_tool_servers_data(
         request.app.state.config.TOOL_SERVER_CONNECTIONS

+ 16 - 2
src/lib/components/admin/Settings/Tools.svelte

@@ -15,6 +15,7 @@
 	import Connection from '$lib/components/chat/Settings/Tools/Connection.svelte';
 
 	import AddServerModal from '$lib/components/AddServerModal.svelte';
+	import { getToolServerConnections, setToolServerConnections } from '$lib/apis/configs';
 
 	export let saveSettings: Function;
 
@@ -26,10 +27,23 @@
 		await updateHandler();
 	};
 
-	const updateHandler = async () => {};
+	const updateHandler = async () => {
+		const res = await setToolServerConnections(localStorage.token, {
+			TOOL_SERVER_CONNECTIONS: servers
+		}).catch((err) => {
+			toast.error($i18n.t('Failed to save connections'));
+
+			return null;
+		});
+
+		if (res) {
+			toast.success($i18n.t('Connections saved successfully'));
+		}
+	};
 
 	onMount(async () => {
-		servers = [];
+		const res = await getToolServerConnections(localStorage.token);
+		servers = res.TOOL_SERVER_CONNECTIONS;
 	});
 </script>