mirror of
				https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
				synced 2025-11-04 16:23:41 +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";
 | 
					export const OPENAI_URL = "api.openai.com";
 | 
				
			||||||
const DEFAULT_PROTOCOL = "https";
 | 
					const DEFAULT_PROTOCOL = "https";
 | 
				
			||||||
const PROTOCOL = process.env.PROTOCOL ?? DEFAULT_PROTOCOL;
 | 
					const PROTOCOL = process.env.PROTOCOL ?? DEFAULT_PROTOCOL;
 | 
				
			||||||
const BASE_URL = process.env.BASE_URL ?? OPENAI_URL;
 | 
					const BASE_URL = process.env.BASE_URL ?? OPENAI_URL;
 | 
				
			||||||
 | 
					const DISABLE_GPT4 = !!process.env.DISABLE_GPT4;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export async function requestOpenai(req: NextRequest) {
 | 
					export async function requestOpenai(req: NextRequest) {
 | 
				
			||||||
  const controller = new AbortController();
 | 
					  const controller = new AbortController();
 | 
				
			||||||
@@ -41,10 +42,30 @@ export async function requestOpenai(req: NextRequest) {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    cache: "no-store",
 | 
					    cache: "no-store",
 | 
				
			||||||
    method: req.method,
 | 
					    method: req.method,
 | 
				
			||||||
    body: req.body,
 | 
					    body: req.clone().body,
 | 
				
			||||||
    signal: controller.signal,
 | 
					    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 {
 | 
					  try {
 | 
				
			||||||
    const res = await fetch(fetchUrl, fetchOptions);
 | 
					    const res = await fetch(fetchUrl, fetchOptions);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -68,14 +68,6 @@ export const ALL_MODELS = [
 | 
				
			|||||||
    name: "gpt-4-32k-0314",
 | 
					    name: "gpt-4-32k-0314",
 | 
				
			||||||
    available: ENABLE_GPT4,
 | 
					    available: ENABLE_GPT4,
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    name: "gpt-4-mobile",
 | 
					 | 
				
			||||||
    available: ENABLE_GPT4,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    name: "text-davinci-002-render-sha-mobile",
 | 
					 | 
				
			||||||
    available: true,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    name: "gpt-3.5-turbo",
 | 
					    name: "gpt-3.5-turbo",
 | 
				
			||||||
    available: true,
 | 
					    available: true,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -84,7 +84,7 @@ export const useUpdateStore = create<UpdateStore>()(
 | 
				
			|||||||
            }));
 | 
					            }));
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        } catch (e) {
 | 
					        } catch (e) {
 | 
				
			||||||
          showToast((e as Error).message);
 | 
					          console.error((e as Error).message);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
    }),
 | 
					    }),
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user