diff --git a/app/client/platforms/anthropic.ts b/app/client/platforms/anthropic.ts index fea3d8654c1..ba07dcc761e 100644 --- a/app/client/platforms/anthropic.ts +++ b/app/client/platforms/anthropic.ts @@ -348,7 +348,11 @@ export class ClaudeApi implements LLMApi { path(path: string): string { const accessStore = useAccessStore.getState(); - let baseUrl: string = accessStore.anthropicUrl; + let baseUrl: string = ""; + + if (accessStore.useCustomConfig) { + baseUrl = accessStore.anthropicUrl; + } // if endpoint is empty, use default endpoint if (baseUrl.trim().length === 0) { diff --git a/app/client/platforms/google.ts b/app/client/platforms/google.ts index 3a814b90328..1ab36db25e0 100644 --- a/app/client/platforms/google.ts +++ b/app/client/platforms/google.ts @@ -104,7 +104,13 @@ export class GeminiProApi implements LLMApi { }; const accessStore = useAccessStore.getState(); - let baseUrl = accessStore.googleUrl; + + let baseUrl = ""; + + if (accessStore.useCustomConfig) { + baseUrl = accessStore.googleUrl; + } + const isApp = !!getClientConfig()?.isApp; let shouldStream = !!options.config.stream; diff --git a/app/client/platforms/openai.ts b/app/client/platforms/openai.ts index 7652ba0f2f9..ca8bc2ebe6f 100644 --- a/app/client/platforms/openai.ts +++ b/app/client/platforms/openai.ts @@ -60,15 +60,23 @@ export class ChatGPTApi implements LLMApi { path(path: string): string { const accessStore = useAccessStore.getState(); - const isAzure = accessStore.provider === ServiceProvider.Azure; + let baseUrl = ""; - if (isAzure && !accessStore.isValidAzure()) { - throw Error( - "incomplete azure config, please check it in your settings page", - ); - } + if (accessStore.useCustomConfig) { + const isAzure = accessStore.provider === ServiceProvider.Azure; - let baseUrl = isAzure ? accessStore.azureUrl : accessStore.openaiUrl; + if (isAzure && !accessStore.isValidAzure()) { + throw Error( + "incomplete azure config, please check it in your settings page", + ); + } + + if (isAzure) { + path = makeAzurePath(path, accessStore.azureApiVersion); + } + + baseUrl = isAzure ? accessStore.azureUrl : accessStore.openaiUrl; + } if (baseUrl.length === 0) { const isApp = !!getClientConfig()?.isApp; @@ -84,10 +92,6 @@ export class ChatGPTApi implements LLMApi { baseUrl = "https://" + baseUrl; } - if (isAzure) { - path = makeAzurePath(path, accessStore.azureApiVersion); - } - console.log("[Proxy Endpoint] ", baseUrl, path); return [baseUrl, path].join("/"); diff --git a/app/utils/cloud/webdav.ts b/app/utils/cloud/webdav.ts index f7d48dd0393..0ca781b7584 100644 --- a/app/utils/cloud/webdav.ts +++ b/app/utils/cloud/webdav.ts @@ -63,26 +63,26 @@ export function createWebDavClient(store: SyncStore) { }; }, path(path: string, proxyUrl: string = "") { - // if (!path.endsWith("/")) { - // path += "/"; - // } if (path.startsWith("/")) { path = path.slice(1); } - if (proxyUrl.length > 0 && !proxyUrl.endsWith("/")) { - proxyUrl += "/"; + if (proxyUrl.endsWith("/")) { + proxyUrl = proxyUrl.slice(0, -1); } let url; - if (proxyUrl.length > 0 || proxyUrl === "/") { - let u = new URL(proxyUrl + "api/webdav/" + path); + const pathPrefix = "/api/webdav/"; + + try { + let u = new URL(proxyUrl + pathPrefix + path); // add query params u.searchParams.append("endpoint", config.endpoint); url = u.toString(); - } else { - url = "/api/upstash/" + path + "?endpoint=" + config.endpoint; + } catch (e) { + url = pathPrefix + path + "?endpoint=" + config.endpoint; } + return url; }, };