mirror of
				https://github.com/open-webui/open-webui
				synced 2025-06-26 18:26:48 +00:00 
			
		
		
		
	feat: OpenAPI YAML support for frontend toolserver
This commit is contained in:
		
							parent
							
								
									81af20aa9b
								
							
						
					
					
						commit
						17ea20d3ad
					
				
							
								
								
									
										26
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										26
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -70,7 +70,8 @@ | ||||
| 				"turndown": "^7.2.0", | ||||
| 				"undici": "^7.3.0", | ||||
| 				"uuid": "^9.0.1", | ||||
| 				"vite-plugin-static-copy": "^2.2.0" | ||||
| 				"vite-plugin-static-copy": "^2.2.0", | ||||
| 				"yaml": "^2.7.1" | ||||
| 			}, | ||||
| 			"devDependencies": { | ||||
| 				"@sveltejs/adapter-auto": "3.2.2", | ||||
| @ -9514,6 +9515,16 @@ | ||||
| 				"node": ">=10" | ||||
| 			} | ||||
| 		}, | ||||
| 		"node_modules/postcss-load-config/node_modules/yaml": { | ||||
| 			"version": "1.10.2", | ||||
| 			"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", | ||||
| 			"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", | ||||
| 			"dev": true, | ||||
| 			"license": "ISC", | ||||
| 			"engines": { | ||||
| 				"node": ">= 6" | ||||
| 			} | ||||
| 		}, | ||||
| 		"node_modules/postcss-safe-parser": { | ||||
| 			"version": "6.0.0", | ||||
| 			"resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", | ||||
| @ -13031,12 +13042,15 @@ | ||||
| 			} | ||||
| 		}, | ||||
| 		"node_modules/yaml": { | ||||
| 			"version": "1.10.2", | ||||
| 			"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", | ||||
| 			"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", | ||||
| 			"dev": true, | ||||
| 			"version": "2.7.1", | ||||
| 			"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz", | ||||
| 			"integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==", | ||||
| 			"license": "ISC", | ||||
| 			"bin": { | ||||
| 				"yaml": "bin.mjs" | ||||
| 			}, | ||||
| 			"engines": { | ||||
| 				"node": ">= 6" | ||||
| 				"node": ">= 14" | ||||
| 			} | ||||
| 		}, | ||||
| 		"node_modules/yauzl": { | ||||
|  | ||||
| @ -113,7 +113,8 @@ | ||||
| 		"turndown": "^7.2.0", | ||||
| 		"undici": "^7.3.0", | ||||
| 		"uuid": "^9.0.1", | ||||
| 		"vite-plugin-static-copy": "^2.2.0" | ||||
| 		"vite-plugin-static-copy": "^2.2.0", | ||||
| 		"yaml": "^2.7.1" | ||||
| 	}, | ||||
| 	"engines": { | ||||
| 		"node": ">=18.13.0 <=22.x.x", | ||||
|  | ||||
| @ -2,6 +2,7 @@ import { WEBUI_API_BASE_URL, WEBUI_BASE_URL } from '$lib/constants'; | ||||
| import { convertOpenApiToToolPayload } from '$lib/utils'; | ||||
| import { getOpenAIModelsDirect } from './openai'; | ||||
| 
 | ||||
| import { parse } from 'yaml'; | ||||
| import { toast } from 'svelte-sonner'; | ||||
| 
 | ||||
| export const getModels = async ( | ||||
| @ -271,8 +272,15 @@ export const getToolServerData = async (token: string, url: string) => { | ||||
| 		} | ||||
| 	}) | ||||
| 		.then(async (res) => { | ||||
| 			if (!res.ok) throw await res.json(); | ||||
| 			return res.json(); | ||||
| 			// Check if URL ends with .yaml or .yml to determine format
 | ||||
| 			if (url.toLowerCase().endsWith('.yaml') || url.toLowerCase().endsWith('.yml')) { | ||||
| 				if (!res.ok) throw await res.text(); | ||||
| 				const text = await res.text(); | ||||
| 				return parse(text); | ||||
| 			} else { | ||||
| 				if (!res.ok) throw await res.json(); | ||||
| 				return res.json(); | ||||
| 			} | ||||
| 		}) | ||||
| 		.catch((err) => { | ||||
| 			console.log(err); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user