mirror of
				https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
				synced 2025-11-04 08:13:43 +08:00 
			
		
		
		
	Merge pull request #1842 from Yidadaa/bugfix-0607
fix: #1815 refuse to serve when disable gpt4
This commit is contained in:
		@@ -1,9 +1,10 @@
 | 
			
		||||
import { NextRequest } from "next/server";
 | 
			
		||||
import { NextRequest, NextResponse } from "next/server";
 | 
			
		||||
 | 
			
		||||
export const OPENAI_URL = "api.openai.com";
 | 
			
		||||
const DEFAULT_PROTOCOL = "https";
 | 
			
		||||
const PROTOCOL = process.env.PROTOCOL ?? DEFAULT_PROTOCOL;
 | 
			
		||||
const BASE_URL = process.env.BASE_URL ?? OPENAI_URL;
 | 
			
		||||
const DISABLE_GPT4 = !!process.env.DISABLE_GPT4;
 | 
			
		||||
 | 
			
		||||
export async function requestOpenai(req: NextRequest) {
 | 
			
		||||
  const controller = new AbortController();
 | 
			
		||||
@@ -41,10 +42,30 @@ export async function requestOpenai(req: NextRequest) {
 | 
			
		||||
    },
 | 
			
		||||
    cache: "no-store",
 | 
			
		||||
    method: req.method,
 | 
			
		||||
    body: req.body,
 | 
			
		||||
    body: req.clone().body,
 | 
			
		||||
    signal: controller.signal,
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  // #1815 try to refuse gpt4 request
 | 
			
		||||
  if (DISABLE_GPT4) {
 | 
			
		||||
    try {
 | 
			
		||||
      const clonedBody = await req.clone().json();
 | 
			
		||||
      if ((clonedBody?.model ?? "").includes("gpt-4")) {
 | 
			
		||||
        return NextResponse.json(
 | 
			
		||||
          {
 | 
			
		||||
            error: true,
 | 
			
		||||
            message: "you are not allowed to use gpt-4 model",
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            status: 403,
 | 
			
		||||
          },
 | 
			
		||||
        );
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      console.error("[OpenAI] gpt4 filter", e);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    const res = await fetch(fetchUrl, fetchOptions);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -68,14 +68,6 @@ export const ALL_MODELS = [
 | 
			
		||||
    name: "gpt-4-32k-0314",
 | 
			
		||||
    available: ENABLE_GPT4,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "gpt-4-mobile",
 | 
			
		||||
    available: ENABLE_GPT4,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "text-davinci-002-render-sha-mobile",
 | 
			
		||||
    available: true,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    name: "gpt-3.5-turbo",
 | 
			
		||||
    available: true,
 | 
			
		||||
 
 | 
			
		||||
@@ -84,7 +84,7 @@ export const useUpdateStore = create<UpdateStore>()(
 | 
			
		||||
            }));
 | 
			
		||||
          }
 | 
			
		||||
        } catch (e) {
 | 
			
		||||
          showToast((e as Error).message);
 | 
			
		||||
          console.error((e as Error).message);
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
    }),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user