NextChat-U/app/constant.ts

371 lines
8.0 KiB
TypeScript
Raw Normal View History

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`;
2023-04-06 01:41:44 +09:00
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`;
2023-03-31 01:46:17 +09:00
export const FETCH_TAG_URL = `https://api.github.com/repos/${OWNER}/${REPO}/tags?per_page=1`;
2023-04-11 02:21:34 +09:00
export const RUNTIME_CONFIG_DOM = "danger-runtime-config";
2023-09-13 03:51:02 +09:00
export const DEFAULT_API_HOST = "https://api.nextchat.dev";
2023-11-08 01:20:34 +09:00
export const OPENAI_BASE_URL = "https://api.openai.com";
2024-04-07 12:32:57 +09:00
export const ANTHROPIC_BASE_URL = "https://api.anthropic.com";
2023-04-21 02:12:39 +09:00
2023-12-24 03:15:30 +09:00
export const GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/";
2023-04-21 02:12:39 +09:00
export enum Path {
Home = "/",
Chat = "/chat",
Settings = "/settings",
2023-04-24 02:15:44 +09:00
NewChat = "/new-chat",
2023-04-25 01:49:27 +09:00
Masks = "/masks",
2023-06-07 03:18:24 +09:00
Auth = "/auth",
2023-04-24 02:15:44 +09:00
}
2023-09-13 03:51:02 +09:00
export enum ApiPath {
2024-03-14 02:33:41 +09:00
Cors = "",
2023-11-10 03:43:30 +09:00
OpenAI = "/api/openai",
2023-11-08 00:22:11 +09:00
Anthropic = "/api/anthropic",
2023-09-13 03:51:02 +09:00
}
2023-04-24 02:15:44 +09:00
export enum SlotID {
AppBody = "app-body",
2023-11-10 03:43:30 +09:00
CustomModel = "custom-model",
2023-04-21 02:12:39 +09:00
}
2023-04-21 03:52:53 +09:00
2023-04-27 02:16:21 +09:00
export enum FileName {
Masks = "masks.json",
Prompts = "prompts.json",
}
2023-04-27 03:00:22 +09:00
export enum StoreKey {
Chat = "chat-next-web-store",
Access = "access-control",
Config = "app-config",
Mask = "mask-store",
Prompt = "prompt-store",
Update = "chat-update",
2023-06-28 01:34:01 +09:00
Sync = "sync",
2023-04-27 03:00:22 +09:00
}
export const DEFAULT_SIDEBAR_WIDTH = 300;
2023-04-21 03:52:53 +09:00
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;
2023-05-15 00:00:17 +09:00
2023-09-13 03:51:02 +09:00
export const STORAGE_KEY = "chatgpt-next-web";
2023-05-15 00:00:17 +09:00
export const REQUEST_TIMEOUT_MS = 60000;
2023-05-25 02:04:37 +09:00
export const EXPORT_MESSAGE_CLASS_NAME = "export-markdown";
2023-11-10 03:43:30 +09:00
export enum ServiceProvider {
OpenAI = "OpenAI",
Azure = "Azure",
2023-12-24 03:15:30 +09:00
Google = "Google",
2024-04-07 12:32:57 +09:00
Anthropic = "Anthropic",
2023-12-24 03:15:30 +09:00
}
export enum ModelProvider {
GPT = "GPT",
2023-12-24 05:22:12 +09:00
GeminiPro = "GeminiPro",
2024-04-07 12:32:57 +09:00
Claude = "Claude",
2023-11-10 03:43:30 +09:00
}
2024-04-07 12:32:57 +09:00
export const Anthropic = {
ChatPath: "v1/messages",
ChatPath1: "v1/complete",
ExampleEndpoint: "https://api.anthropic.com",
Vision: "2023-06-01",
};
export const OpenaiPath = {
ChatPath: "v1/chat/completions",
UsagePath: "dashboard/billing/usage",
SubsPath: "dashboard/billing/subscription",
ListModelPath: "v1/models",
};
2023-11-10 03:43:30 +09:00
export const Azure = {
ExampleEndpoint: "https://{resource-url}/openai/deployments/{deploy-id}",
};
2023-12-24 03:15:30 +09:00
export const Google = {
ExampleEndpoint: "https://generativelanguage.googleapis.com/",
2023-12-24 03:15:30 +09:00
ChatPath: "v1beta/models/gemini-pro:generateContent",
2024-02-20 19:04:32 +09:00
VisionChatPath: "v1beta/models/gemini-pro-vision:generateContent",
2023-12-24 03:15:30 +09:00
// /api/openai/v1/chat/completions
};
2023-06-24 17:50:05 +09:00
export const DEFAULT_INPUT_TEMPLATE = `{{input}}`; // input / time / model / lang
// export const DEFAULT_SYSTEM_TEMPLATE = `
// You are ChatGPT, a large language model trained by {{ServiceProvider}}.
// Knowledge cutoff: {{cutoff}}
// Current model: {{model}}
// Current time: {{time}}
// Latex inline: $x^2$
// Latex block: $$e=mc^2$$
// `;
2023-06-26 14:18:59 +09:00
export const DEFAULT_SYSTEM_TEMPLATE = `
You are ChatGPT, a large language model trained by {{ServiceProvider}}.
Knowledge cutoff: {{cutoff}}
2023-06-26 14:18:59 +09:00
Current model: {{model}}
Current time: {{time}}
2024-04-09 11:45:09 +09:00
Latex inline: \\(x^2\\)
Latex block: $$e=mc^2$$
`;
export const SUMMARIZE_MODEL = "gpt-3.5-turbo";
2024-02-20 19:04:32 +09:00
export const GEMINI_SUMMARIZE_MODEL = "gemini-pro";
export const KnowledgeCutOffDate: Record<string, string> = {
default: "2021-09",
2024-02-27 11:28:54 +09:00
"gpt-4-turbo-preview": "2023-12",
"gpt-4-1106-preview": "2023-04",
2024-02-27 11:28:54 +09:00
"gpt-4-0125-preview": "2023-12",
"gpt-4-vision-preview": "2023-04",
// After improvements,
// it's now easier to add "KnowledgeCutOffDate" instead of stupid hardcoding it, as was done previously.
"gemini-pro": "2023-12",
};
export const DEFAULT_MODELS = [
{
name: "gpt-4",
2023-07-05 23:41:10 +09:00
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-4-0314",
2023-07-05 23:41:10 +09:00
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-4-0613",
2023-07-05 23:41:10 +09:00
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-4-32k",
2023-07-05 23:41:10 +09:00
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-4-32k-0314",
2023-07-05 23:41:10 +09:00
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-4-32k-0613",
2023-07-05 23:41:10 +09:00
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-4-turbo-preview",
available: true,
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-4-1106-preview",
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
2024-01-26 16:00:02 +09:00
{
name: "gpt-4-0125-preview",
available: true,
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-4-vision-preview",
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-3.5-turbo",
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-3.5-turbo-0125",
available: true,
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-3.5-turbo-0301",
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-3.5-turbo-0613",
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-3.5-turbo-1106",
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-3.5-turbo-16k",
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
name: "gpt-3.5-turbo-16k-0613",
available: true,
2023-12-24 03:15:30 +09:00
provider: {
id: "openai",
providerName: "OpenAI",
providerType: "openai",
},
},
{
2023-12-24 05:22:12 +09:00
name: "gemini-pro",
2023-12-24 03:15:30 +09:00
available: true,
provider: {
id: "google",
providerName: "Google",
providerType: "google",
},
},
2024-02-20 19:04:32 +09:00
{
name: "gemini-pro-vision",
available: true,
provider: {
id: "google",
providerName: "Google",
providerType: "google",
},
},
2024-04-07 12:32:57 +09:00
{
2024-04-07 16:20:27 +09:00
name: "claude-instant-1.2",
2024-04-07 12:32:57 +09:00
available: true,
provider: {
id: "anthropic",
providerName: "Anthropic",
providerType: "anthropic",
},
},
{
2024-04-07 16:20:27 +09:00
name: "claude-2.0",
available: true,
provider: {
id: "anthropic",
providerName: "Anthropic",
providerType: "anthropic",
},
},
{
name: "claude-2.1",
2024-04-07 12:32:57 +09:00
available: true,
provider: {
id: "anthropic",
providerName: "Anthropic",
providerType: "anthropic",
},
},
{
name: "claude-3-opus-20240229",
available: true,
provider: {
id: "anthropic",
providerName: "Anthropic",
providerType: "anthropic",
},
},
{
name: "claude-3-sonnet-20240229",
available: true,
provider: {
id: "anthropic",
providerName: "Anthropic",
providerType: "anthropic",
},
},
{
name: "claude-3-haiku-20240307",
available: true,
provider: {
id: "anthropic",
providerName: "Anthropic",
providerType: "anthropic",
},
},
] as const;
2023-08-04 20:24:10 +09:00
export const CHAT_PAGE_SIZE = 15;
export const MAX_RENDER_MSG_COUNT = 45;
2024-04-09 19:05:56 +09:00
2024-04-09 19:23:52 +09:00
export const internalWhiteWebDavEndpoints = ["https://dav.jianguoyun.com"];