Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web
This commit is contained in:
commit
ce31098527
|
@ -348,7 +348,11 @@ export class ClaudeApi implements LLMApi {
|
||||||
path(path: string): string {
|
path(path: string): string {
|
||||||
const accessStore = useAccessStore.getState();
|
const accessStore = useAccessStore.getState();
|
||||||
|
|
||||||
let baseUrl: string = accessStore.anthropicUrl;
|
let baseUrl: string = "";
|
||||||
|
|
||||||
|
if (accessStore.useCustomConfig) {
|
||||||
|
baseUrl = accessStore.anthropicUrl;
|
||||||
|
}
|
||||||
|
|
||||||
// if endpoint is empty, use default endpoint
|
// if endpoint is empty, use default endpoint
|
||||||
if (baseUrl.trim().length === 0) {
|
if (baseUrl.trim().length === 0) {
|
||||||
|
|
|
@ -104,7 +104,13 @@ export class GeminiProApi implements LLMApi {
|
||||||
};
|
};
|
||||||
|
|
||||||
const accessStore = useAccessStore.getState();
|
const accessStore = useAccessStore.getState();
|
||||||
let baseUrl = accessStore.googleUrl;
|
|
||||||
|
let baseUrl = "";
|
||||||
|
|
||||||
|
if (accessStore.useCustomConfig) {
|
||||||
|
baseUrl = accessStore.googleUrl;
|
||||||
|
}
|
||||||
|
|
||||||
const isApp = !!getClientConfig()?.isApp;
|
const isApp = !!getClientConfig()?.isApp;
|
||||||
|
|
||||||
let shouldStream = !!options.config.stream;
|
let shouldStream = !!options.config.stream;
|
||||||
|
|
|
@ -60,16 +60,24 @@ export class ChatGPTApi implements LLMApi {
|
||||||
path(path: string): string {
|
path(path: string): string {
|
||||||
const accessStore = useAccessStore.getState();
|
const accessStore = useAccessStore.getState();
|
||||||
|
|
||||||
const isAzure = accessStore.provider === ServiceProvider.Azure;
|
let baseUrl = "";
|
||||||
|
|
||||||
if (isAzure && !accessStore.isValidAzure()) {
|
if (accessStore.useCustomConfig) {
|
||||||
throw Error(
|
const isAzure = accessStore.provider === ServiceProvider.Azure;
|
||||||
"incomplete azure config, please check it in your settings page",
|
|
||||||
);
|
if (isAzure && !accessStore.isValidAzure()) {
|
||||||
|
throw Error(
|
||||||
|
"incomplete azure config, please check it in your settings page",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isAzure) {
|
||||||
|
path = makeAzurePath(path, accessStore.azureApiVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
baseUrl = isAzure ? accessStore.azureUrl : accessStore.openaiUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
let baseUrl = isAzure ? accessStore.azureUrl : accessStore.openaiUrl;
|
|
||||||
|
|
||||||
if (baseUrl.length === 0) {
|
if (baseUrl.length === 0) {
|
||||||
const isApp = !!getClientConfig()?.isApp;
|
const isApp = !!getClientConfig()?.isApp;
|
||||||
baseUrl = isApp
|
baseUrl = isApp
|
||||||
|
@ -84,10 +92,6 @@ export class ChatGPTApi implements LLMApi {
|
||||||
baseUrl = "https://" + baseUrl;
|
baseUrl = "https://" + baseUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isAzure) {
|
|
||||||
path = makeAzurePath(path, accessStore.azureApiVersion);
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log("[Proxy Endpoint] ", baseUrl, path);
|
console.log("[Proxy Endpoint] ", baseUrl, path);
|
||||||
|
|
||||||
return [baseUrl, path].join("/");
|
return [baseUrl, path].join("/");
|
||||||
|
|
280
app/constant.ts
280
app/constant.ts
|
@ -137,259 +137,71 @@ export const KnowledgeCutOffDate: Record<string, string> = {
|
||||||
"gemini-pro-vision": "2023-12",
|
"gemini-pro-vision": "2023-12",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const openaiModels = [
|
||||||
|
"gpt-3.5-turbo",
|
||||||
|
"gpt-3.5-turbo-0301",
|
||||||
|
"gpt-3.5-turbo-0613",
|
||||||
|
"gpt-3.5-turbo-1106",
|
||||||
|
"gpt-3.5-turbo-0125",
|
||||||
|
"gpt-3.5-turbo-16k",
|
||||||
|
"gpt-3.5-turbo-16k-0613",
|
||||||
|
"gpt-4",
|
||||||
|
"gpt-4-0314",
|
||||||
|
"gpt-4-0613",
|
||||||
|
"gpt-4-1106-preview",
|
||||||
|
"gpt-4-0125-preview",
|
||||||
|
"gpt-4-32k",
|
||||||
|
"gpt-4-32k-0314",
|
||||||
|
"gpt-4-32k-0613",
|
||||||
|
"gpt-4-turbo",
|
||||||
|
"gpt-4-turbo-preview",
|
||||||
|
"gpt-4-vision-preview",
|
||||||
|
"gpt-4-turbo-2024-04-09",
|
||||||
|
];
|
||||||
|
|
||||||
|
const googleModels = [
|
||||||
|
"gemini-1.0-pro",
|
||||||
|
"gemini-1.5-pro-latest",
|
||||||
|
"gemini-pro-vision",
|
||||||
|
];
|
||||||
|
|
||||||
|
const anthropicModels = [
|
||||||
|
"claude-instant-1.2",
|
||||||
|
"claude-2.0",
|
||||||
|
"claude-2.1",
|
||||||
|
"claude-3-sonnet-20240229",
|
||||||
|
"claude-3-opus-20240229",
|
||||||
|
"claude-3-haiku-20240307",
|
||||||
|
];
|
||||||
|
|
||||||
export const DEFAULT_MODELS = [
|
export const DEFAULT_MODELS = [
|
||||||
{
|
...openaiModels.map((name) => ({
|
||||||
name: "gpt-4",
|
name,
|
||||||
available: true,
|
available: true,
|
||||||
provider: {
|
provider: {
|
||||||
id: "openai",
|
id: "openai",
|
||||||
providerName: "OpenAI",
|
providerName: "OpenAI",
|
||||||
providerType: "openai",
|
providerType: "openai",
|
||||||
},
|
},
|
||||||
},
|
})),
|
||||||
{
|
...googleModels.map((name) => ({
|
||||||
name: "gpt-4-0314",
|
name,
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-4-0613",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-4-32k",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-4-32k-0314",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-4-32k-0613",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-4-turbo",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-4-turbo-2024-04-09",
|
|
||||||
available: true,
|
|
||||||
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,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-4-0125-preview",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-4-vision-preview",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-3.5-turbo",
|
|
||||||
available: true,
|
|
||||||
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,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-3.5-turbo-0613",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-3.5-turbo-1106",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-3.5-turbo-16k",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gpt-3.5-turbo-16k-0613",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "openai",
|
|
||||||
providerName: "OpenAI",
|
|
||||||
providerType: "openai",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gemini-1.0-pro",
|
|
||||||
available: true,
|
available: true,
|
||||||
provider: {
|
provider: {
|
||||||
id: "google",
|
id: "google",
|
||||||
providerName: "Google",
|
providerName: "Google",
|
||||||
providerType: "google",
|
providerType: "google",
|
||||||
},
|
},
|
||||||
},
|
})),
|
||||||
{
|
...anthropicModels.map((name) => ({
|
||||||
name: "gemini-1.5-pro-latest",
|
name,
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "google",
|
|
||||||
providerName: "Google",
|
|
||||||
providerType: "google",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "gemini-pro-vision",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "google",
|
|
||||||
providerName: "Google",
|
|
||||||
providerType: "google",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "claude-instant-1.2",
|
|
||||||
available: true,
|
available: true,
|
||||||
provider: {
|
provider: {
|
||||||
id: "anthropic",
|
id: "anthropic",
|
||||||
providerName: "Anthropic",
|
providerName: "Anthropic",
|
||||||
providerType: "anthropic",
|
providerType: "anthropic",
|
||||||
},
|
},
|
||||||
},
|
})),
|
||||||
{
|
|
||||||
name: "claude-2.0",
|
|
||||||
available: true,
|
|
||||||
provider: {
|
|
||||||
id: "anthropic",
|
|
||||||
providerName: "Anthropic",
|
|
||||||
providerType: "anthropic",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "claude-2.1",
|
|
||||||
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;
|
] as const;
|
||||||
|
|
||||||
export const CHAT_PAGE_SIZE = 15;
|
export const CHAT_PAGE_SIZE = 15;
|
||||||
|
|
|
@ -63,26 +63,26 @@ export function createWebDavClient(store: SyncStore) {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
path(path: string, proxyUrl: string = "") {
|
path(path: string, proxyUrl: string = "") {
|
||||||
// if (!path.endsWith("/")) {
|
|
||||||
// path += "/";
|
|
||||||
// }
|
|
||||||
if (path.startsWith("/")) {
|
if (path.startsWith("/")) {
|
||||||
path = path.slice(1);
|
path = path.slice(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (proxyUrl.length > 0 && !proxyUrl.endsWith("/")) {
|
if (proxyUrl.endsWith("/")) {
|
||||||
proxyUrl += "/";
|
proxyUrl = proxyUrl.slice(0, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
let url;
|
let url;
|
||||||
if (proxyUrl.length > 0 || proxyUrl === "/") {
|
const pathPrefix = "/api/webdav/";
|
||||||
let u = new URL(proxyUrl + "api/webdav/" + path);
|
|
||||||
|
try {
|
||||||
|
let u = new URL(proxyUrl + pathPrefix + path);
|
||||||
// add query params
|
// add query params
|
||||||
u.searchParams.append("endpoint", config.endpoint);
|
u.searchParams.append("endpoint", config.endpoint);
|
||||||
url = u.toString();
|
url = u.toString();
|
||||||
} else {
|
} catch (e) {
|
||||||
url = "/api/upstash/" + path + "?endpoint=" + config.endpoint;
|
url = pathPrefix + path + "?endpoint=" + config.endpoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
return url;
|
return url;
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue