diff --git a/app/client/platforms/openai.ts b/app/client/platforms/openai.ts index dfe41300..e140a1ef 100644 --- a/app/client/platforms/openai.ts +++ b/app/client/platforms/openai.ts @@ -1,5 +1,6 @@ import { DEFAULT_API_HOST, + DEFAULT_MODELS, OpenaiPath, REQUEST_TIMEOUT_MS, } from "@/app/constant"; @@ -23,6 +24,8 @@ export interface OpenAIListModelResponse { } export class ChatGPTApi implements LLMApi { + private disableListModels = true; + path(path: string): string { let openaiUrl = useAccessStore.getState().openaiUrl; if (openaiUrl.length === 0) { @@ -246,6 +249,10 @@ export class ChatGPTApi implements LLMApi { } async models(): Promise { + if (this.disableListModels) { + return DEFAULT_MODELS.slice(); + } + const res = await fetch(this.path(OpenaiPath.ListModelPath), { method: "GET", headers: { diff --git a/app/components/home.tsx b/app/components/home.tsx index 96c1b838..b3cec893 100644 --- a/app/components/home.tsx +++ b/app/components/home.tsx @@ -28,6 +28,7 @@ import { useAppConfig } from "../store/config"; import { AuthPage } from "./auth"; import { getClientConfig } from "../config/client"; import { api } from "../client/api"; +import { useAccessStore } from "../store"; export function Loading(props: { noLogo?: boolean }) { return ( @@ -171,6 +172,7 @@ export function Home() { useEffect(() => { console.log("[Config] got config from build time", getClientConfig()); + useAccessStore.getState().fetch(); }, []); if (!useHasHydrated()) { diff --git a/app/constant.ts b/app/constant.ts index df2bc52a..250bd135 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -108,24 +108,4 @@ export const DEFAULT_MODELS = [ name: "gpt-3.5-turbo-16k-0613", available: true, }, - { - name: "qwen-v1", // 通义千问 - available: false, - }, - { - name: "ernie", // 文心一言 - available: false, - }, - { - name: "spark", // 讯飞星火 - available: false, - }, - { - name: "llama", // llama - available: false, - }, - { - name: "chatglm", // chatglm-6b - available: false, - }, ] as const; diff --git a/app/store/access.ts b/app/store/access.ts index d2806414..c1a802eb 100644 --- a/app/store/access.ts +++ b/app/store/access.ts @@ -1,6 +1,6 @@ import { create } from "zustand"; import { persist } from "zustand/middleware"; -import { DEFAULT_API_HOST, StoreKey } from "../constant"; +import { DEFAULT_API_HOST, DEFAULT_MODELS, StoreKey } from "../constant"; import { getHeaders } from "../client/api"; import { BOT_HELLO } from "./chat"; import { getClientConfig } from "../config/client"; @@ -11,8 +11,10 @@ export interface AccessControlStore { needCode: boolean; hideUserApiKey: boolean; - openaiUrl: string; hideBalanceQuery: boolean; + disableGPT4: boolean; + + openaiUrl: string; updateToken: (_: string) => void; updateCode: (_: string) => void; @@ -35,8 +37,10 @@ export const useAccessStore = create()( accessCode: "", needCode: true, hideUserApiKey: false, - openaiUrl: DEFAULT_OPENAI_URL, hideBalanceQuery: false, + disableGPT4: false, + + openaiUrl: DEFAULT_OPENAI_URL, enabledAccessControl() { get().fetch(); @@ -75,8 +79,10 @@ export const useAccessStore = create()( console.log("[Config] got config from server", res); set(() => ({ ...res })); - if ((res as any).botHello) { - BOT_HELLO.content = (res as any).botHello; + if (res.disableGPT4) { + DEFAULT_MODELS.forEach( + (m: any) => (m.available = !m.name.startsWith("gpt-4")), + ); } }) .catch(() => {