diff --git a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/index.tsx b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/index.tsx index ac704574ac..07162a2cc3 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/index.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/index.tsx @@ -69,6 +69,8 @@ const stopParameerRule: ModelParameterRule = { zh_Hans: '输入序列并按 Tab 键', }, } + +const PROVIDER_WITH_PRESET_TONE = ['openai', 'azure_openai'] const ModelParameterModal: FC = ({ isAdvancedMode, modelId, @@ -105,10 +107,11 @@ const ModelParameterModal: FC = ({ const remvoedCustomeTone = TONE_LIST.slice(0, -1) const CUSTOM_TONE_ID = 4 const tone = remvoedCustomeTone.find((tone) => { - return tone.config?.temperature === completionParams.temperature - && tone.config?.top_p === completionParams.top_p - && tone.config?.presence_penalty === completionParams.presence_penalty - && tone.config?.frequency_penalty === completionParams.frequency_penalty + const config: Record = tone.config || {} + + return Object.keys(config).every((key) => { + return config[key] === completionParams[key] + }) }) return tone ? tone.id : CUSTOM_TONE_ID } @@ -122,14 +125,11 @@ const ModelParameterModal: FC = ({ })[toneId] || '' // set completionParams by toneId const handleToneChange = (id: number) => { - if (id === 4) - return // custom tone const tone = TONE_LIST.find(tone => tone.id === id) if (tone) { setToneId(id) onCompletionParamsChange({ ...tone.config, - max_tokens: completionParams.max_tokens, }) } } @@ -173,6 +173,7 @@ const ModelParameterModal: FC = ({ const handleInitialParams = () => { const newCompletionParams = { ...completionParams } + const defaultParams: Record = {} if (parameterRules.length) { parameterRules.forEach((parameterRule) => { if (!newCompletionParams[parameterRule.name]) { @@ -181,8 +182,13 @@ const ModelParameterModal: FC = ({ else delete newCompletionParams[parameterRule.name] } + if (!isNullOrUndefined(parameterRule.default)) + defaultParams[parameterRule.name] = parameterRule.default }) + if (PROVIDER_WITH_PRESET_TONE.includes(provider)) + TONE_LIST[3].config = defaultParams as any + onCompletionParamsChange(newCompletionParams) } } @@ -305,7 +311,7 @@ const ModelParameterModal: FC = ({
) } - {['openai', 'azure_openai'].includes(provider) && !isLoading && !!parameterRules.length && ( + {PROVIDER_WITH_PRESET_TONE.includes(provider) && !isLoading && !!parameterRules.length && (
{t('appDebug.modelConfig.setTone')}
diff --git a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/parameter-item.tsx b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/parameter-item.tsx index 50afb8f8da..41aed8e4d7 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/parameter-item.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/parameter-item.tsx @@ -67,6 +67,12 @@ const ParameterItem: FC = ({ } const handleSlideChange = (num: number) => { + if (!isNullOrUndefined(parameterRule.max) && num > parameterRule.max!) + return handleInputChange(parameterRule.max) + + if (!isNullOrUndefined(parameterRule.min) && num < parameterRule.min!) + return handleInputChange(parameterRule.min) + handleInputChange(num) }