Browse Source

chore: update

DDMeaqua 1 year ago
parent
commit
afe12c212e

+ 3 - 3
app/api/[provider]/[...path]/route.ts

@@ -11,7 +11,7 @@ import { handle as moonshotHandler } from "../../moonshot";
 import { handle as stabilityHandler } from "../../stability";
 import { handle as iflytekHandler } from "../../iflytek";
 import { handle as xaiHandler } from "../../xai";
-import { handle as glmHandler } from "../../glm";
+import { handle as chatglmHandler } from "../../glm";
 import { handle as proxyHandler } from "../../proxy";
 
 async function handle(
@@ -42,8 +42,8 @@ async function handle(
       return iflytekHandler(req, { params });
     case ApiPath.XAI:
       return xaiHandler(req, { params });
-    case ApiPath.GLM:
-      return glmHandler(req, { params });
+    case ApiPath.ChatGLM:
+      return chatglmHandler(req, { params });
     case ApiPath.OpenAI:
       return openaiHandler(req, { params });
     default:

+ 2 - 2
app/api/auth.ts

@@ -95,8 +95,8 @@ export function auth(req: NextRequest, modelProvider: ModelProvider) {
       case ModelProvider.XAI:
         systemApiKey = serverConfig.xaiApiKey;
         break;
-      case ModelProvider.GLM:
-        systemApiKey = serverConfig.glmApiKey;
+      case ModelProvider.ChatGLM:
+        systemApiKey = serverConfig.chatglmApiKey;
         break;
       case ModelProvider.GPT:
       default:

+ 4 - 4
app/api/glm.ts

@@ -1,6 +1,6 @@
 import { getServerSideConfig } from "@/app/config/server";
 import {
-  GLM_BASE_URL,
+  CHATGLM_BASE_URL,
   ApiPath,
   ModelProvider,
   ServiceProvider,
@@ -42,9 +42,9 @@ async function request(req: NextRequest) {
   const controller = new AbortController();
 
   // alibaba use base url or just remove the path
-  let path = `${req.nextUrl.pathname}`.replaceAll(ApiPath.GLM, "");
+  let path = `${req.nextUrl.pathname}`.replaceAll(ApiPath.ChatGLM, "");
 
-  let baseUrl = serverConfig.glmUrl || GLM_BASE_URL;
+  let baseUrl = serverConfig.chatglmUrl || CHATGLM_BASE_URL;
 
   if (!baseUrl.startsWith("http")) {
     baseUrl = `https://${baseUrl}`;
@@ -92,7 +92,7 @@ async function request(req: NextRequest) {
         isModelAvailableInServer(
           serverConfig.customModels,
           jsonBody?.model as string,
-          ServiceProvider.GLM as string,
+          ServiceProvider.ChatGLM as string,
         )
       ) {
         return NextResponse.json(

+ 9 - 9
app/client/api.ts

@@ -21,7 +21,7 @@ import { HunyuanApi } from "./platforms/tencent";
 import { MoonshotApi } from "./platforms/moonshot";
 import { SparkApi } from "./platforms/iflytek";
 import { XAIApi } from "./platforms/xai";
-import { GLMApi } from "./platforms/glm";
+import { ChatGLMApi } from "./platforms/glm";
 
 export const ROLES = ["system", "user", "assistant"] as const;
 export type MessageRole = (typeof ROLES)[number];
@@ -157,8 +157,8 @@ export class ClientApi {
       case ModelProvider.XAI:
         this.llm = new XAIApi();
         break;
-      case ModelProvider.GLM:
-        this.llm = new GLMApi();
+      case ModelProvider.ChatGLM:
+        this.llm = new ChatGLMApi();
         break;
       default:
         this.llm = new ChatGPTApi();
@@ -248,7 +248,7 @@ export function getHeaders(ignoreHeaders: boolean = false) {
     const isMoonshot = modelConfig.providerName === ServiceProvider.Moonshot;
     const isIflytek = modelConfig.providerName === ServiceProvider.Iflytek;
     const isXAI = modelConfig.providerName === ServiceProvider.XAI;
-    const isGLM = modelConfig.providerName === ServiceProvider.GLM;
+    const isChatGLM = modelConfig.providerName === ServiceProvider.ChatGLM;
     const isEnabledAccessControl = accessStore.enabledAccessControl();
     const apiKey = isGoogle
       ? accessStore.googleApiKey
@@ -264,8 +264,8 @@ export function getHeaders(ignoreHeaders: boolean = false) {
       ? accessStore.moonshotApiKey
       : isXAI
       ? accessStore.xaiApiKey
-      : isGLM
-      ? accessStore.glmApiKey
+      : isChatGLM
+      ? accessStore.chatglmApiKey
       : isIflytek
       ? accessStore.iflytekApiKey && accessStore.iflytekApiSecret
         ? accessStore.iflytekApiKey + ":" + accessStore.iflytekApiSecret
@@ -281,7 +281,7 @@ export function getHeaders(ignoreHeaders: boolean = false) {
       isMoonshot,
       isIflytek,
       isXAI,
-      isGLM,
+      isChatGLM,
       apiKey,
       isEnabledAccessControl,
     };
@@ -346,8 +346,8 @@ export function getClientApi(provider: ServiceProvider): ClientApi {
       return new ClientApi(ModelProvider.Iflytek);
     case ServiceProvider.XAI:
       return new ClientApi(ModelProvider.XAI);
-    case ServiceProvider.GLM:
-      return new ClientApi(ModelProvider.GLM);
+    case ServiceProvider.ChatGLM:
+      return new ClientApi(ModelProvider.ChatGLM);
     default:
       return new ClientApi(ModelProvider.GPT);
   }

+ 12 - 7
app/client/platforms/glm.ts

@@ -1,5 +1,10 @@
 "use client";
-import { ApiPath, GLM_BASE_URL, GLM, REQUEST_TIMEOUT_MS } from "@/app/constant";
+import {
+  ApiPath,
+  CHATGLM_BASE_URL,
+  ChatGLM,
+  REQUEST_TIMEOUT_MS,
+} from "@/app/constant";
 import {
   useAccessStore,
   useAppConfig,
@@ -20,7 +25,7 @@ import { getMessageTextContent } from "@/app/utils";
 import { RequestPayload } from "./openai";
 import { fetch } from "@/app/utils/stream";
 
-export class GLMApi implements LLMApi {
+export class ChatGLMApi implements LLMApi {
   private disableListModels = true;
 
   path(path: string): string {
@@ -29,19 +34,19 @@ export class GLMApi implements LLMApi {
     let baseUrl = "";
 
     if (accessStore.useCustomConfig) {
-      baseUrl = accessStore.glmUrl;
+      baseUrl = accessStore.chatglmUrl;
     }
 
     if (baseUrl.length === 0) {
       const isApp = !!getClientConfig()?.isApp;
-      const apiPath = ApiPath.GLM;
-      baseUrl = isApp ? GLM_BASE_URL : apiPath;
+      const apiPath = ApiPath.ChatGLM;
+      baseUrl = isApp ? CHATGLM_BASE_URL : apiPath;
     }
 
     if (baseUrl.endsWith("/")) {
       baseUrl = baseUrl.slice(0, baseUrl.length - 1);
     }
-    if (!baseUrl.startsWith("http") && !baseUrl.startsWith(ApiPath.GLM)) {
+    if (!baseUrl.startsWith("http") && !baseUrl.startsWith(ApiPath.ChatGLM)) {
       baseUrl = "https://" + baseUrl;
     }
 
@@ -91,7 +96,7 @@ export class GLMApi implements LLMApi {
     options.onController?.(controller);
 
     try {
-      const chatPath = this.path(GLM.ChatPath);
+      const chatPath = this.path(ChatGLM.ChatPath);
       const chatPayload = {
         method: "POST",
         body: JSON.stringify(requestPayload),

+ 17 - 15
app/components/settings.tsx

@@ -72,7 +72,7 @@ import {
   Stability,
   Iflytek,
   SAAS_CHAT_URL,
-  GLM,
+  ChatGLM,
 } from "../constant";
 import { Prompt, SearchService, usePromptStore } from "../store/prompt";
 import { ErrorBoundary } from "./error";
@@ -1235,38 +1235,40 @@ export function Settings() {
     </>
   );
 
-  const glmConfigComponent = accessStore.provider === ServiceProvider.GLM && (
+  const chatglmConfigComponent = accessStore.provider ===
+    ServiceProvider.ChatGLM && (
     <>
       <ListItem
-        title={Locale.Settings.Access.GLM.Endpoint.Title}
+        title={Locale.Settings.Access.ChatGLM.Endpoint.Title}
         subTitle={
-          Locale.Settings.Access.GLM.Endpoint.SubTitle + GLM.ExampleEndpoint
+          Locale.Settings.Access.ChatGLM.Endpoint.SubTitle +
+          ChatGLM.ExampleEndpoint
         }
       >
         <input
-          aria-label={Locale.Settings.Access.GLM.Endpoint.Title}
+          aria-label={Locale.Settings.Access.ChatGLM.Endpoint.Title}
           type="text"
-          value={accessStore.glmUrl}
-          placeholder={GLM.ExampleEndpoint}
+          value={accessStore.chatglmUrl}
+          placeholder={ChatGLM.ExampleEndpoint}
           onChange={(e) =>
             accessStore.update(
-              (access) => (access.glmUrl = e.currentTarget.value),
+              (access) => (access.chatglmUrl = e.currentTarget.value),
             )
           }
         ></input>
       </ListItem>
       <ListItem
-        title={Locale.Settings.Access.GLM.ApiKey.Title}
-        subTitle={Locale.Settings.Access.GLM.ApiKey.SubTitle}
+        title={Locale.Settings.Access.ChatGLM.ApiKey.Title}
+        subTitle={Locale.Settings.Access.ChatGLM.ApiKey.SubTitle}
       >
         <PasswordInput
-          aria-label={Locale.Settings.Access.GLM.ApiKey.Title}
-          value={accessStore.glmApiKey}
+          aria-label={Locale.Settings.Access.ChatGLM.ApiKey.Title}
+          value={accessStore.chatglmApiKey}
           type="text"
-          placeholder={Locale.Settings.Access.GLM.ApiKey.Placeholder}
+          placeholder={Locale.Settings.Access.ChatGLM.ApiKey.Placeholder}
           onChange={(e) => {
             accessStore.update(
-              (access) => (access.glmApiKey = e.currentTarget.value),
+              (access) => (access.chatglmApiKey = e.currentTarget.value),
             );
           }}
         />
@@ -1733,7 +1735,7 @@ export function Settings() {
                   {stabilityConfigComponent}
                   {lflytekConfigComponent}
                   {XAIConfigComponent}
-                  {glmConfigComponent}
+                  {chatglmConfigComponent}
                 </>
               )}
             </>

+ 7 - 7
app/config/server.ts

@@ -75,9 +75,9 @@ declare global {
       XAI_URL?: string;
       XAI_API_KEY?: string;
 
-      // glm only
-      GLM_URL?: string;
-      GLM_API_KEY?: string;
+      // chatglm only
+      CHATGLM_URL?: string;
+      CHATGLM_API_KEY?: string;
 
       // custom template for preprocessing user input
       DEFAULT_INPUT_TEMPLATE?: string;
@@ -155,7 +155,7 @@ export const getServerSideConfig = () => {
   const isMoonshot = !!process.env.MOONSHOT_API_KEY;
   const isIflytek = !!process.env.IFLYTEK_API_KEY;
   const isXAI = !!process.env.XAI_API_KEY;
-  const isGLM = !!process.env.GLM_API_KEY;
+  const isChatGLM = !!process.env.CHATGLM_API_KEY;
   // const apiKeyEnvVar = process.env.OPENAI_API_KEY ?? "";
   // const apiKeys = apiKeyEnvVar.split(",").map((v) => v.trim());
   // const randomIndex = Math.floor(Math.random() * apiKeys.length);
@@ -222,9 +222,9 @@ export const getServerSideConfig = () => {
     xaiUrl: process.env.XAI_URL,
     xaiApiKey: getApiKey(process.env.XAI_API_KEY),
 
-    isGLM,
-    glmUrl: process.env.GLM_URL,
-    glmApiKey: getApiKey(process.env.GLM_API_KEY),
+    isChatGLM,
+    chatglmUrl: process.env.CHATGLM_URL,
+    chatglmApiKey: getApiKey(process.env.CHATGLM_API_KEY),
 
     cloudflareAccountId: process.env.CLOUDFLARE_ACCOUNT_ID,
     cloudflareKVNamespaceId: process.env.CLOUDFLARE_KV_NAMESPACE_ID,

+ 8 - 8
app/constant.ts

@@ -30,7 +30,7 @@ export const IFLYTEK_BASE_URL = "https://spark-api-open.xf-yun.com";
 
 export const XAI_BASE_URL = "https://api.x.ai";
 
-export const GLM_BASE_URL = "https://open.bigmodel.cn";
+export const CHATGLM_BASE_URL = "https://open.bigmodel.cn";
 
 export const CACHE_URL_PREFIX = "/api/cache";
 export const UPLOAD_URL = `${CACHE_URL_PREFIX}/upload`;
@@ -64,7 +64,7 @@ export enum ApiPath {
   Stability = "/api/stability",
   Artifacts = "/api/artifacts",
   XAI = "/api/xai",
-  GLM = "/api/glm",
+  ChatGLM = "/api/chatglm",
 }
 
 export enum SlotID {
@@ -118,7 +118,7 @@ export enum ServiceProvider {
   Stability = "Stability",
   Iflytek = "Iflytek",
   XAI = "XAI",
-  GLM = "ChatGLM",
+  ChatGLM = "ChatGLM",
 }
 
 // Google API safety settings, see https://ai.google.dev/gemini-api/docs/safety-settings
@@ -142,7 +142,7 @@ export enum ModelProvider {
   Moonshot = "Moonshot",
   Iflytek = "Iflytek",
   XAI = "XAI",
-  GLM = "ChatGLM",
+  ChatGLM = "ChatGLM",
 }
 
 export const Stability = {
@@ -230,8 +230,8 @@ export const XAI = {
   ChatPath: "v1/chat/completions",
 };
 
-export const GLM = {
-  ExampleEndpoint: GLM_BASE_URL,
+export const ChatGLM = {
+  ExampleEndpoint: CHATGLM_BASE_URL,
   ChatPath: "/api/paas/v4/chat/completions",
 };
 
@@ -386,7 +386,7 @@ const iflytekModels = [
 
 const xAIModes = ["grok-beta"];
 
-const glmModels = [
+const chatglmModels = [
   "glm-4-plus",
   "glm-4-0520",
   "glm-4",
@@ -520,7 +520,7 @@ export const DEFAULT_MODELS = [
       sorted: 11,
     },
   })),
-  ...glmModels.map((name) => ({
+  ...chatglmModels.map((name) => ({
     name,
     available: true,
     sorted: seq++,

+ 3 - 3
app/locales/cn.ts

@@ -473,11 +473,11 @@ const cn = {
           SubTitle: "样例:",
         },
       },
-      GLM: {
+      ChatGLM: {
         ApiKey: {
           Title: "接口密钥",
-          SubTitle: "使用自定义 GLM API Key",
-          Placeholder: "GLM API Key",
+          SubTitle: "使用自定义 ChatGLM API Key",
+          Placeholder: "ChatGLM API Key",
         },
         Endpoint: {
           Title: "接口地址",

+ 4 - 4
app/locales/en.ts

@@ -457,11 +457,11 @@ const en: LocaleType = {
           SubTitle: "Example: ",
         },
       },
-      GLM: {
+      ChatGLM: {
         ApiKey: {
-          Title: "GLM API Key",
-          SubTitle: "Use a custom GLM API Key",
-          Placeholder: "GLM API Key",
+          Title: "ChatGLM API Key",
+          SubTitle: "Use a custom ChatGLM API Key",
+          Placeholder: "ChatGLM API Key",
         },
         Endpoint: {
           Title: "Endpoint Address",

+ 8 - 8
app/store/access.ts

@@ -14,7 +14,7 @@ import {
   STABILITY_BASE_URL,
   IFLYTEK_BASE_URL,
   XAI_BASE_URL,
-  GLM_BASE_URL,
+  CHATGLM_BASE_URL,
 } from "../constant";
 import { getHeaders } from "../client/api";
 import { getClientConfig } from "../config/client";
@@ -48,7 +48,7 @@ const DEFAULT_IFLYTEK_URL = isApp ? IFLYTEK_BASE_URL : ApiPath.Iflytek;
 
 const DEFAULT_XAI_URL = isApp ? XAI_BASE_URL : ApiPath.XAI;
 
-const DEFAULT_GLM_URL = isApp ? GLM_BASE_URL : ApiPath.GLM;
+const DEFAULT_CHATGLM_URL = isApp ? CHATGLM_BASE_URL : ApiPath.ChatGLM;
 
 const DEFAULT_ACCESS_STATE = {
   accessCode: "",
@@ -111,9 +111,9 @@ const DEFAULT_ACCESS_STATE = {
   xaiUrl: DEFAULT_XAI_URL,
   xaiApiKey: "",
 
-  // glm
-  glmUrl: DEFAULT_GLM_URL,
-  glmApiKey: "",
+  // chatglm
+  chatglmUrl: DEFAULT_CHATGLM_URL,
+  chatglmApiKey: "",
 
   // server config
   needCode: true,
@@ -187,8 +187,8 @@ export const useAccessStore = createPersistStore(
       return ensure(get(), ["xaiApiKey"]);
     },
 
-    isValidGLM() {
-      return ensure(get(), ["glmApiKey"]);
+    isValidChatGLM() {
+      return ensure(get(), ["chatglmApiKey"]);
     },
 
     isAuthorized() {
@@ -207,7 +207,7 @@ export const useAccessStore = createPersistStore(
         this.isValidMoonshot() ||
         this.isValidIflytek() ||
         this.isValidXAI() ||
-        this.isValidGLM() ||
+        this.isValidChatGLM() ||
         !this.enabledAccessControl() ||
         (this.enabledAccessControl() && ensure(get(), ["accessCode"]))
       );

+ 1 - 1
app/utils.ts

@@ -279,7 +279,7 @@ export function showPlugins(provider: ServiceProvider, model: string) {
     provider == ServiceProvider.OpenAI ||
     provider == ServiceProvider.Azure ||
     provider == ServiceProvider.Moonshot ||
-    provider == ServiceProvider.GLM
+    provider == ServiceProvider.ChatGLM
   ) {
     return true;
   }