feat: Retain llm setting for agent node (#21842)

This commit is contained in:
Kalo Chin
2025-07-02 21:28:25 +09:00
committed by GitHub
parent 5487463385
commit 4e7c9dd2ae

View File

@@ -25,6 +25,8 @@ import LLMParamsPanel from './llm-params-panel'
import TTSParamsPanel from './tts-params-panel'
import { useProviderContext } from '@/context/provider-context'
import cn from '@/utils/classnames'
import Toast from '@/app/components/base/toast'
import { fetchAndMergeValidCompletionParams } from '@/utils/completion-params'
export type ModelParameterModalProps = {
popupClassName?: string
@@ -121,17 +123,42 @@ const ModelParameterModal: FC<ModelParameterModalProps> = ({
return !isAPIKeySet || hasDeprecated || modelDisabled
}, [hasDeprecated, isAPIKeySet, modelDisabled])
const handleChangeModel = ({ provider, model }: DefaultModel) => {
const handleChangeModel = async ({ provider, model }: DefaultModel) => {
const targetProvider = scopedModelList.find(modelItem => modelItem.provider === provider)
const targetModelItem = targetProvider?.models.find((modelItem: { model: string }) => modelItem.model === model)
const model_type = targetModelItem?.model_type as string
let nextCompletionParams: FormValue = {}
if (model_type === ModelTypeEnum.textGeneration) {
try {
const { params: filtered, removedDetails } = await fetchAndMergeValidCompletionParams(
provider,
model,
value?.completion_params,
)
nextCompletionParams = filtered
const keys = Object.keys(removedDetails || {})
if (keys.length) {
Toast.notify({
type: 'warning',
message: `${t('common.modelProvider.parametersInvalidRemoved')}: ${keys.map(k => `${k} (${removedDetails[k]})`).join(', ')}`,
})
}
}
catch (e) {
Toast.notify({ type: 'error', message: t('common.error') })
}
}
setModel({
provider,
model,
model_type,
...(model_type === ModelTypeEnum.textGeneration ? {
mode: targetModelItem?.model_properties.mode as string,
completion_params: {},
completion_params: nextCompletionParams,
} : {}),
})
}