diff --git a/web/app/components/workflow/nodes/knowledge-base/components/embedding-model.tsx b/web/app/components/workflow/nodes/knowledge-base/components/embedding-model.tsx index c5ab6a4c6f..23481cb529 100644 --- a/web/app/components/workflow/nodes/knowledge-base/components/embedding-model.tsx +++ b/web/app/components/workflow/nodes/knowledge-base/components/embedding-model.tsx @@ -1,13 +1,12 @@ import { memo, useCallback, - useEffect, useMemo, } from 'react' import { useTranslation } from 'react-i18next' import { Field } from '@/app/components/workflow/nodes/_base/components/layout' import ModelSelector from '@/app/components/header/account-setting/model-provider-page/model-selector' -import { useModelListAndDefaultModel } from '@/app/components/header/account-setting/model-provider-page/hooks' +import { useModelList } from '@/app/components/header/account-setting/model-provider-page/hooks' import type { DefaultModel } from '@/app/components/header/account-setting/model-provider-page/declarations' import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations' @@ -28,9 +27,8 @@ const EmbeddingModel = ({ }: EmbeddingModelProps) => { const { t } = useTranslation() const { - defaultModel, - modelList: embeddingModelList, - } = useModelListAndDefaultModel(ModelTypeEnum.textEmbedding) + data: embeddingModelList, + } = useModelList(ModelTypeEnum.textEmbedding) const embeddingModelConfig = useMemo(() => { if (!embeddingModel || !embeddingModelProvider) return undefined @@ -48,15 +46,6 @@ const EmbeddingModel = ({ }) }, [onEmbeddingModelChange]) - useEffect(() => { - if (!embeddingModelConfig && defaultModel) { - handleEmbeddingModelChange({ - provider: defaultModel.provider.provider, - model: defaultModel.model, - }) - } - }, [embeddingModelConfig, defaultModel, handleEmbeddingModelChange]) - return ( { }) }, [handleNodeDataUpdate]) + const { + currentModel, + currentProvider, + } = useModelListAndDefaultModelAndCurrentProviderAndModel(ModelTypeEnum.textEmbedding) + + const handleInitConfig = useCallback(() => { + const nodeData = getNodeData() + + if (!nodeData?.data.embedding_model && !nodeData?.data.embedding_model_provider && currentModel && currentProvider) { + handleEmbeddingModelChange({ + embeddingModel: currentModel.model, + embeddingModelProvider: currentProvider.provider, + }) + } + }, [ + getNodeData, + handleEmbeddingModelChange, + currentModel, + currentProvider, + ]) + + useEffect(() => { + handleInitConfig() + }, [handleInitConfig]) + return { handleChunkStructureChange, handleIndexMethodChange,