Bladeren bron

feat: (1) fix issues/4335 and issues/4518

butterfly 1 jaar geleden
bovenliggende
commit
fb8b8d28da
4 gewijzigde bestanden met toevoegingen van 36 en 22 verwijderingen
  1. 5 1
      app/client/platforms/anthropic.ts
  2. 7 1
      app/client/platforms/google.ts
  3. 15 11
      app/client/platforms/openai.ts
  4. 9 9
      app/utils/cloud/webdav.ts

+ 5 - 1
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) {

+ 7 - 1
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;

+ 15 - 11
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("/");

+ 9 - 9
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) {
-        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;
     },
   };