forked from ChatGPTNextWeb/NextChat
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
16 changed files
with
748 additions
and
101 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
export const OWNER = "Yidadaa"; | ||
export const REPO = "ChatGPT-Next-Web"; | ||
export const REPO_URL = `https://github.com/${OWNER}/${REPO}`; | ||
export const ISSUE_URL = `https://github.com/${OWNER}/${REPO}/issues`; | ||
export const UPDATE_URL = `${REPO_URL}#keep-updated`; | ||
export const RELEASE_URL = `${REPO_URL}/releases`; | ||
export const FETCH_COMMIT_URL = `https://api.github.com/repos/${OWNER}/${REPO}/commits?per_page=1`; | ||
export const FETCH_TAG_URL = `https://api.github.com/repos/${OWNER}/${REPO}/tags?per_page=1`; | ||
export const RUNTIME_CONFIG_DOM = "danger-runtime-config"; | ||
export const DEFAULT_API_HOST = "https://chatgpt1.nextweb.fun/api/proxy"; | ||
|
||
export enum Path { | ||
Home = "/", | ||
Chat = "/chat", | ||
Settings = "/settings", | ||
NewChat = "/new-chat", | ||
Masks = "/masks", | ||
Auth = "/auth", | ||
} | ||
|
||
export enum SlotID { | ||
AppBody = "app-body", | ||
} | ||
|
||
export enum FileName { | ||
Masks = "masks.json", | ||
Prompts = "prompts.json", | ||
} | ||
|
||
export enum StoreKey { | ||
Chat = "chat-next-web-store", | ||
Access = "access-control", | ||
Config = "app-config", | ||
Mask = "mask-store", | ||
Prompt = "prompt-store", | ||
Update = "chat-update", | ||
Sync = "sync", | ||
} | ||
|
||
export const MAX_SIDEBAR_WIDTH = 500; | ||
export const MIN_SIDEBAR_WIDTH = 230; | ||
export const NARROW_SIDEBAR_WIDTH = 100; | ||
|
||
export const ACCESS_CODE_PREFIX = "nk-"; | ||
|
||
export const LAST_INPUT_KEY = "last-input"; | ||
export const UNFINISHED_INPUT = (id: string) => "unfinished-input-" + id; | ||
|
||
export const STORAGE_KEY = "chatgpt-next-web"; | ||
|
||
export const REQUEST_TIMEOUT_MS = 60000; | ||
|
||
export const EXPORT_MESSAGE_CLASS_NAME = "export-markdown"; | ||
|
||
export const OpenaiPath = { | ||
ChatPath: "v1/chat/completions", | ||
UsagePath: "dashboard/billing/usage", | ||
SubsPath: "dashboard/billing/subscription", | ||
ListModelPath: "v1/models", | ||
}; | ||
|
||
export const DEFAULT_INPUT_TEMPLATE = `{{input}}`; // input / time / model / lang | ||
export const DEFAULT_SYSTEM_TEMPLATE = ` | ||
You are ChatGPT, a large language model trained by OpenAI. | ||
Knowledge cutoff: 2021-09 | ||
Current model: {{model}} | ||
Current time: {{time}}`; | ||
|
||
export const SUMMARIZE_MODEL = "gpt-3.5-turbo"; | ||
|
||
export const DEFAULT_MODELS = [ | ||
{ | ||
name: "gpt-4", | ||
available: true, | ||
}, | ||
{ | ||
name: "gpt-4-0314", | ||
available: true, | ||
}, | ||
{ | ||
name: "gpt-4-0613", | ||
available: true, | ||
}, | ||
{ | ||
name: "gpt-4-32k", | ||
available: true, | ||
}, | ||
{ | ||
name: "gpt-4-32k-0314", | ||
available: true, | ||
}, | ||
{ | ||
name: "gpt-4-32k-0613", | ||
available: true, | ||
}, | ||
{ | ||
name: "gpt-3.5-turbo", | ||
available: true, | ||
}, | ||
{ | ||
name: "gpt-3.5-turbo-0301", | ||
available: true, | ||
}, | ||
{ | ||
name: "gpt-3.5-turbo-0613", | ||
available: true, | ||
}, | ||
{ | ||
name: "gpt-3.5-turbo-16k", | ||
available: true, | ||
}, | ||
{ | ||
name: "gpt-3.5-turbo-16k-0613", | ||
available: true, | ||
}, | ||
] as const; | ||
|
||
export const CHAT_PAGE_SIZE = 15; | ||
export const MAX_RENDER_MSG_COUNT = 45; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
import { NextRequest, NextResponse } from "next/server"; | ||
|
||
async function handle( | ||
req: NextRequest, | ||
{ params }: { params: { path: string[] } }, | ||
) { | ||
if (req.method === "OPTIONS") { | ||
return NextResponse.json({ body: "OK" }, { status: 200 }); | ||
} | ||
|
||
const [protocol, ...subpath] = params.path; | ||
const targetUrl = `${protocol}://${subpath.join("/")}`; | ||
|
||
const method = req.headers.get("method") ?? undefined; | ||
const shouldNotHaveBody = ["get", "head"].includes( | ||
method?.toLowerCase() ?? "", | ||
); | ||
|
||
const fetchOptions: RequestInit = { | ||
headers: { | ||
authorization: req.headers.get("authorization") ?? "", | ||
}, | ||
body: shouldNotHaveBody ? null : req.body, | ||
method, | ||
// @ts-ignore | ||
duplex: "half", | ||
}; | ||
|
||
console.log("[Any Proxy]", targetUrl); | ||
|
||
const fetchResult = fetch(targetUrl, fetchOptions); | ||
|
||
return fetchResult; | ||
} | ||
|
||
export const GET = handle; | ||
export const POST = handle; | ||
export const PUT = handle; | ||
|
||
// nextjs dose not support those https methods, sucks | ||
export const PROFIND = handle; | ||
export const MKCOL = handle; | ||
|
||
export const runtime = "edge"; |
Oops, something went wrong.