mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-05-21 21:20:19 +09:00
Merge 937e2b5a54
into 3809375694
This commit is contained in:
commit
0e05284353
@ -64,6 +64,11 @@ CUSTOM_MODELS=
|
|||||||
# Change default model
|
# Change default model
|
||||||
DEFAULT_MODEL=
|
DEFAULT_MODEL=
|
||||||
|
|
||||||
|
# (optional)
|
||||||
|
# Default: Empty
|
||||||
|
# Change default compress model
|
||||||
|
DEFAULT_COMPRESS_MODEL=
|
||||||
|
|
||||||
# anthropic claude Api Key.(optional)
|
# anthropic claude Api Key.(optional)
|
||||||
ANTHROPIC_API_KEY=
|
ANTHROPIC_API_KEY=
|
||||||
|
|
||||||
|
@ -322,6 +322,10 @@ For ByteDance: use `modelName@bytedance=deploymentName` to customize model name
|
|||||||
|
|
||||||
Change default model
|
Change default model
|
||||||
|
|
||||||
|
### `DEFAULT_COMPRESS_MODEL` (optional)
|
||||||
|
|
||||||
|
Change default summary model
|
||||||
|
|
||||||
### `VISION_MODELS` (optional)
|
### `VISION_MODELS` (optional)
|
||||||
|
|
||||||
> Default: Empty
|
> Default: Empty
|
||||||
@ -348,7 +352,6 @@ Stability API key.
|
|||||||
|
|
||||||
Customize Stability API url.
|
Customize Stability API url.
|
||||||
|
|
||||||
|
|
||||||
### `ENABLE_MCP` (optional)
|
### `ENABLE_MCP` (optional)
|
||||||
|
|
||||||
Enable MCP(Model Context Protocol)Feature
|
Enable MCP(Model Context Protocol)Feature
|
||||||
|
@ -244,6 +244,10 @@ DeepSeek Api Url.
|
|||||||
|
|
||||||
更改默认模型
|
更改默认模型
|
||||||
|
|
||||||
|
### `DEFAULT_COMPRESS_MODEL` (可选)
|
||||||
|
|
||||||
|
更改默认对话摘要模型
|
||||||
|
|
||||||
### `VISION_MODELS` (可选)
|
### `VISION_MODELS` (可选)
|
||||||
|
|
||||||
> 默认值:空
|
> 默认值:空
|
||||||
|
@ -217,6 +217,10 @@ ByteDance モードでは、`modelName@bytedance=deploymentName` 形式でモデ
|
|||||||
|
|
||||||
デフォルトのモデルを変更します。
|
デフォルトのモデルを変更します。
|
||||||
|
|
||||||
|
### `DEFAULT_COMPRESS_MODEL` (オプション)
|
||||||
|
|
||||||
|
デフォルトの圧縮モデルを変更します。
|
||||||
|
|
||||||
### `VISION_MODELS` (オプション)
|
### `VISION_MODELS` (オプション)
|
||||||
|
|
||||||
> デフォルト:空
|
> デフォルト:空
|
||||||
|
@ -14,6 +14,7 @@ const DANGER_CONFIG = {
|
|||||||
disableFastLink: serverConfig.disableFastLink,
|
disableFastLink: serverConfig.disableFastLink,
|
||||||
customModels: serverConfig.customModels,
|
customModels: serverConfig.customModels,
|
||||||
defaultModel: serverConfig.defaultModel,
|
defaultModel: serverConfig.defaultModel,
|
||||||
|
defaultCompressModel: serverConfig.defaultCompressModel,
|
||||||
visionModels: serverConfig.visionModels,
|
visionModels: serverConfig.visionModels,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -259,13 +259,15 @@ export function ModelConfigList(props: {
|
|||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{allModels
|
{Object.keys(groupModels).map((providerName, index) => (
|
||||||
.filter((v) => v.available)
|
<optgroup label={providerName} key={index}>
|
||||||
.map((v, i) => (
|
{groupModels[providerName].map((v, i) => (
|
||||||
<option value={`${v.name}@${v.provider?.providerName}`} key={i}>
|
<option value={`${v.name}@${v.provider?.providerName}`} key={i}>
|
||||||
{v.displayName}({v.provider?.providerName})
|
{v.displayName}
|
||||||
</option>
|
</option>
|
||||||
))}
|
))}
|
||||||
|
</optgroup>
|
||||||
|
))}
|
||||||
</Select>
|
</Select>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
</>
|
</>
|
||||||
|
@ -23,6 +23,7 @@ declare global {
|
|||||||
DISABLE_FAST_LINK?: string; // disallow parse settings from url or not
|
DISABLE_FAST_LINK?: string; // disallow parse settings from url or not
|
||||||
CUSTOM_MODELS?: string; // to control custom models
|
CUSTOM_MODELS?: string; // to control custom models
|
||||||
DEFAULT_MODEL?: string; // to control default model in every new chat window
|
DEFAULT_MODEL?: string; // to control default model in every new chat window
|
||||||
|
DEFAULT_COMPRESS_MODEL?: string; // to control default compress model
|
||||||
VISION_MODELS?: string; // to control vision models
|
VISION_MODELS?: string; // to control vision models
|
||||||
|
|
||||||
// stability only
|
// stability only
|
||||||
@ -135,6 +136,7 @@ export const getServerSideConfig = () => {
|
|||||||
const disableGPT4 = !!process.env.DISABLE_GPT4;
|
const disableGPT4 = !!process.env.DISABLE_GPT4;
|
||||||
let customModels = process.env.CUSTOM_MODELS ?? "";
|
let customModels = process.env.CUSTOM_MODELS ?? "";
|
||||||
let defaultModel = process.env.DEFAULT_MODEL ?? "";
|
let defaultModel = process.env.DEFAULT_MODEL ?? "";
|
||||||
|
let defaultCompressModel = process.env.DEFAULT_COMPRESS_MODEL ?? "";
|
||||||
let visionModels = process.env.VISION_MODELS ?? "";
|
let visionModels = process.env.VISION_MODELS ?? "";
|
||||||
|
|
||||||
if (disableGPT4) {
|
if (disableGPT4) {
|
||||||
@ -145,6 +147,9 @@ export const getServerSideConfig = () => {
|
|||||||
if (defaultModel && isGPT4Model(defaultModel)) {
|
if (defaultModel && isGPT4Model(defaultModel)) {
|
||||||
defaultModel = "";
|
defaultModel = "";
|
||||||
}
|
}
|
||||||
|
if (defaultCompressModel && isGPT4Model(defaultCompressModel)) {
|
||||||
|
defaultCompressModel = "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const isStability = !!process.env.STABILITY_API_KEY;
|
const isStability = !!process.env.STABILITY_API_KEY;
|
||||||
@ -262,6 +267,7 @@ export const getServerSideConfig = () => {
|
|||||||
disableFastLink: !!process.env.DISABLE_FAST_LINK,
|
disableFastLink: !!process.env.DISABLE_FAST_LINK,
|
||||||
customModels,
|
customModels,
|
||||||
defaultModel,
|
defaultModel,
|
||||||
|
defaultCompressModel,
|
||||||
visionModels,
|
visionModels,
|
||||||
allowedWebDavEndpoints,
|
allowedWebDavEndpoints,
|
||||||
enableMcp: process.env.ENABLE_MCP === "true",
|
enableMcp: process.env.ENABLE_MCP === "true",
|
||||||
|
@ -140,6 +140,7 @@ const DEFAULT_ACCESS_STATE = {
|
|||||||
disableFastLink: false,
|
disableFastLink: false,
|
||||||
customModels: "",
|
customModels: "",
|
||||||
defaultModel: "",
|
defaultModel: "",
|
||||||
|
defaultCompressModel: "",
|
||||||
visionModels: "",
|
visionModels: "",
|
||||||
|
|
||||||
// tts config
|
// tts config
|
||||||
@ -255,12 +256,21 @@ export const useAccessStore = createPersistStore(
|
|||||||
.then((res) => res.json())
|
.then((res) => res.json())
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
const defaultModel = res.defaultModel ?? "";
|
const defaultModel = res.defaultModel ?? "";
|
||||||
if (defaultModel !== "") {
|
if (defaultModel) {
|
||||||
const [model, providerName] = getModelProvider(defaultModel);
|
const [model, providerName] = getModelProvider(defaultModel);
|
||||||
DEFAULT_CONFIG.modelConfig.model = model;
|
DEFAULT_CONFIG.modelConfig.model = model;
|
||||||
DEFAULT_CONFIG.modelConfig.providerName = providerName as any;
|
DEFAULT_CONFIG.modelConfig.providerName = providerName as any;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const defaultCompressModel = res.defaultCompressModel ?? "";
|
||||||
|
if (defaultCompressModel) {
|
||||||
|
const [model, providerName] =
|
||||||
|
getModelProvider(defaultCompressModel);
|
||||||
|
DEFAULT_CONFIG.modelConfig.compressModel = model;
|
||||||
|
DEFAULT_CONFIG.modelConfig.compressProviderName =
|
||||||
|
providerName as any;
|
||||||
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
})
|
})
|
||||||
.then((res: DangerConfig) => {
|
.then((res: DangerConfig) => {
|
||||||
|
@ -123,9 +123,16 @@ function getSummarizeModel(
|
|||||||
currentModel: string,
|
currentModel: string,
|
||||||
providerName: string,
|
providerName: string,
|
||||||
): string[] {
|
): string[] {
|
||||||
|
const configStore = useAppConfig.getState();
|
||||||
|
if (configStore.modelConfig.compressModel) {
|
||||||
|
return [
|
||||||
|
configStore.modelConfig.compressModel,
|
||||||
|
configStore.modelConfig.compressProviderName,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
// if it is using gpt-* models, force to use 4o-mini to summarize
|
// if it is using gpt-* models, force to use 4o-mini to summarize
|
||||||
if (currentModel.startsWith("gpt") || currentModel.startsWith("chatgpt")) {
|
if (currentModel.startsWith("gpt") || currentModel.startsWith("chatgpt")) {
|
||||||
const configStore = useAppConfig.getState();
|
|
||||||
const accessStore = useAccessStore.getState();
|
const accessStore = useAccessStore.getState();
|
||||||
const allModel = collectModelsWithDefaultModel(
|
const allModel = collectModelsWithDefaultModel(
|
||||||
configStore.models,
|
configStore.models,
|
||||||
|
Loading…
Reference in New Issue
Block a user