Browse Source

feat: add "Hide_Balance_Query" environment variable

Constaline 1 year ago
parent
commit
c05de45d99
8 changed files with 49 additions and 23 deletions
  1. 5 0
      .env.template
  2. 6 0
      README.md
  3. 4 0
      README_CN.md
  4. 4 0
      README_ES.md
  5. 1 0
      app/api/config/route.ts
  6. 25 23
      app/components/settings.tsx
  7. 2 0
      app/config/server.ts
  8. 2 0
      app/store/access.ts

+ 5 - 0
.env.template

@@ -27,3 +27,8 @@ HIDE_USER_API_KEY=
 # Default: Empty
 # If you do not want users to use GPT-4, set this value to 1.
 DISABLE_GPT4=
+
+# (optional)
+# Default: Empty
+# If you do not want users to query balance, set this value to 1.
+Hide_Balance_Query=

+ 6 - 0
README.md

@@ -185,6 +185,12 @@ If you do not want users to input their own API key, set this value to 1.
 
 If you do not want users to use GPT-4, set this value to 1.
 
+### `Hide_Balance_Query` (optional)
+
+> Default: Empty
+
+If you do not want users to query balance, set this value to 1.
+
 ## Requirements
 
 NodeJS >= 18, Docker >= 20

+ 4 - 0
README_CN.md

@@ -98,6 +98,10 @@ OpenAI 接口代理 URL,如果你手动配置了 openai 接口代理,请填
 
 如果你不想让用户使用 GPT-4,将此环境变量设置为 1 即可。
 
+### `Hide_Balance_Query` (可选)
+
+如果你不想让用户查询余额,将此环境变量设置为 1 即可。
+
 ## 开发
 
 点击下方按钮,开始二次开发:

+ 4 - 0
README_ES.md

@@ -96,6 +96,10 @@ Si no desea que los usuarios rellenen la clave de API ellos mismos, establezca e
 
 Si no desea que los usuarios utilicen GPT-4, establezca esta variable de entorno en 1.
 
+### `Hide_Balance_Query` (Opcional)
+
+Si no desea que los usuarios consulte el saldo, establezca esta variable de entorno en 1.
+
 ## explotación
 
 > No se recomienda encarecidamente desarrollar o implementar localmente, debido a algunas razones técnicas, es difícil configurar el agente API de OpenAI localmente, a menos que pueda asegurarse de que puede conectarse directamente al servidor OpenAI.

+ 1 - 0
app/api/config/route.ts

@@ -10,6 +10,7 @@ const DANGER_CONFIG = {
   needCode: serverConfig.needCode,
   hideUserApiKey: serverConfig.hideUserApiKey,
   enableGPT4: serverConfig.enableGPT4,
+  hideBalanceQuery: serverConfig.hideBalanceQuery,
 };
 
 declare global {

+ 25 - 23
app/components/settings.tsx

@@ -522,29 +522,31 @@ export function Settings() {
             </ListItem>
           ) : null}
 
-          <ListItem
-            title={Locale.Settings.Usage.Title}
-            subTitle={
-              showUsage
-                ? loadingUsage
-                  ? Locale.Settings.Usage.IsChecking
-                  : Locale.Settings.Usage.SubTitle(
-                      usage?.used ?? "[?]",
-                      usage?.subscription ?? "[?]",
-                    )
-                : Locale.Settings.Usage.NoAccess
-            }
-          >
-            {!showUsage || loadingUsage ? (
-              <div />
-            ) : (
-              <IconButton
-                icon={<ResetIcon></ResetIcon>}
-                text={Locale.Settings.Usage.Check}
-                onClick={() => checkUsage(true)}
-              />
-            )}
-          </ListItem>
+          {!accessStore.hideBalanceQuery ? (
+            <ListItem
+              title={Locale.Settings.Usage.Title}
+              subTitle={
+                showUsage
+                  ? loadingUsage
+                    ? Locale.Settings.Usage.IsChecking
+                    : Locale.Settings.Usage.SubTitle(
+                        usage?.used ?? "[?]",
+                        usage?.subscription ?? "[?]",
+                      )
+                  : Locale.Settings.Usage.NoAccess
+              }
+            >
+              {!showUsage || loadingUsage ? (
+                <div />
+              ) : (
+                <IconButton
+                  icon={<ResetIcon></ResetIcon>}
+                  text={Locale.Settings.Usage.Check}
+                  onClick={() => checkUsage(true)}
+                />
+              )}
+            </ListItem>
+          ) : null}
 
           {!accessStore.hideUserApiKey ? (
             <ListItem

+ 2 - 0
app/config/server.ts

@@ -12,6 +12,7 @@ declare global {
       DISABLE_GPT4?: string; // allow user to use gpt-4 or not
       BUILD_MODE?: "standalone" | "export";
       BUILD_APP?: string; // is building desktop app
+      Hide_Balance_Query?: string; // allow user to query balance or not
     }
   }
 }
@@ -46,5 +47,6 @@ export const getServerSideConfig = () => {
     isVercel: !!process.env.VERCEL,
     hideUserApiKey: !!process.env.HIDE_USER_API_KEY,
     enableGPT4: !process.env.DISABLE_GPT4,
+    hideBalanceQuery: !!process.env.Hide_Balance_Query,
   };
 };

+ 2 - 0
app/store/access.ts

@@ -13,6 +13,7 @@ export interface AccessControlStore {
   needCode: boolean;
   hideUserApiKey: boolean;
   openaiUrl: string;
+  hideBalanceQuery: boolean;
 
   updateToken: (_: string) => void;
   updateCode: (_: string) => void;
@@ -36,6 +37,7 @@ export const useAccessStore = create<AccessControlStore>()(
       needCode: true,
       hideUserApiKey: false,
       openaiUrl: DEFAULT_OPENAI_URL,
+      hideBalanceQuery: false,
 
       enabledAccessControl() {
         get().fetch();