mirror of
				https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
				synced 2025-11-04 08:13:43 +08:00 
			
		
		
		
	Merge pull request #2129 from Constaline/main
feat: add "Hide_Balance_Query" environment variable
This commit is contained in:
		@@ -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=
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -98,6 +98,10 @@ OpenAI 接口代理 URL,如果你手动配置了 openai 接口代理,请填
 | 
			
		||||
 | 
			
		||||
如果你不想让用户使用 GPT-4,将此环境变量设置为 1 即可。
 | 
			
		||||
 | 
			
		||||
### `HIDE_BALANCE_QUERY` (可选)
 | 
			
		||||
 | 
			
		||||
如果你不想让用户查询余额,将此环境变量设置为 1 即可。
 | 
			
		||||
 | 
			
		||||
## 开发
 | 
			
		||||
 | 
			
		||||
点击下方按钮,开始二次开发:
 | 
			
		||||
 
 | 
			
		||||
@@ -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.
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ const DANGER_CONFIG = {
 | 
			
		||||
  needCode: serverConfig.needCode,
 | 
			
		||||
  hideUserApiKey: serverConfig.hideUserApiKey,
 | 
			
		||||
  enableGPT4: serverConfig.enableGPT4,
 | 
			
		||||
  hideBalanceQuery: serverConfig.hideBalanceQuery,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
declare global {
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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,
 | 
			
		||||
  };
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -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();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user