@ -23,8 +23,7 @@ import Editor from '@/app/components/workflow/nodes/_base/components/prompt/edit
import StructureOutput from './components/structure-output'
import Switch from '@/app/components/base/switch'
import { RiAlertFill , RiQuestionLine } from '@remixicon/react'
import { mergeValidCompletionParams } from '@/utils/completion-params'
import { fetchModelParameterRules } from '@/service/common'
import { fetchAndMergeValidCompletionParams } from '@/utils/completion-params'
import Toast from '@/app/components/base/toast'
const i18nPrefix = 'workflow.nodes.llm'
@ -142,14 +141,20 @@ const Panel: FC<NodePanelProps<LLMNodeType>> = ({
} ) = > {
( async ( ) = > {
try {
const url = ` /workspaces/current/model-providers/ ${ model . provider } /models/parameter-rules?model= ${ model . modelId } `
const { data : parameterRules } = await fetchModelParameterRules ( url )
const { params : filtered , removedDetails } = mergeValidCompletionParams ( inputs . model . completion_params , parameterRules ? ? [ ] )
const { params : filtered , removedDetails } = await fetchAndMergeValidCompletionParams (
model . provider ,
model . modelId ,
inputs . model . completion_params ,
)
const keys = Object . keys ( removedDetails )
if ( keys . length )
Toast . notify ( { type : 'warning' , message : ` ${ t ( 'common.modelProvider.parametersInvalidRemoved' ) } : ${ keys . map ( k = > ` ${ k } ( ${ removedDetails [ k ] } ) ` ) . join ( ', ' ) } ` } )
handleCompletionParamsChange ( filtered )
}
catch ( e ) {
Toast . notify ( { type : 'error' , message : t ( 'common.error' ) } )
handleCompletionParamsChange ( { } )
}
finally {
handleModelChanged ( model )
}