Co-authored-by: Yi <yxiaoisme@gmail.com>tags/0.11.0
| import type { DataSet } from '@/models/datasets' | import type { DataSet } from '@/models/datasets' | ||||
| import { | import { | ||||
| getMultipleRetrievalConfig, | getMultipleRetrievalConfig, | ||||
| getSelectedDatasetsMode, | |||||
| } from '@/app/components/workflow/nodes/knowledge-retrieval/utils' | } from '@/app/components/workflow/nodes/knowledge-retrieval/utils' | ||||
| import { useModelListAndDefaultModelAndCurrentProviderAndModel } from '@/app/components/header/account-setting/model-provider-page/hooks' | import { useModelListAndDefaultModelAndCurrentProviderAndModel } from '@/app/components/header/account-setting/model-provider-page/hooks' | ||||
| import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations' | import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations' | ||||
| isAgent, | isAgent, | ||||
| datasetConfigs, | datasetConfigs, | ||||
| setDatasetConfigs, | setDatasetConfigs, | ||||
| setRerankSettingModalOpen, | |||||
| } = useContext(ConfigContext) | } = useContext(ConfigContext) | ||||
| const formattingChangedDispatcher = useFormattingChangedDispatcher() | const formattingChangedDispatcher = useFormattingChangedDispatcher() | ||||
| ...(datasetConfigs as any), | ...(datasetConfigs as any), | ||||
| ...retrievalConfig, | ...retrievalConfig, | ||||
| }) | }) | ||||
| const { | |||||
| allExternal, | |||||
| allInternal, | |||||
| mixtureInternalAndExternal, | |||||
| mixtureHighQualityAndEconomic, | |||||
| inconsistentEmbeddingModel, | |||||
| } = getSelectedDatasetsMode(filteredDataSets) | |||||
| if ( | |||||
| (allInternal && (mixtureHighQualityAndEconomic || inconsistentEmbeddingModel)) | |||||
| || mixtureInternalAndExternal | |||||
| || allExternal | |||||
| ) | |||||
| setRerankSettingModalOpen(true) | |||||
| formattingChangedDispatcher() | formattingChangedDispatcher() | ||||
| } | } | ||||
| <div className='mt-2'> | <div className='mt-2'> | ||||
| <div className='flex items-center'> | <div className='flex items-center'> | ||||
| { | { | ||||
| selectedDatasetsMode.allEconomic && ( | |||||
| selectedDatasetsMode.allEconomic && !selectedDatasetsMode.mixtureInternalAndExternal && ( | |||||
| <div | <div | ||||
| className='flex items-center' | className='flex items-center' | ||||
| onClick={handleDisabledSwitchClick} | onClick={handleDisabledSwitchClick} | 
| import Toast from '@/app/components/base/toast' | import Toast from '@/app/components/base/toast' | ||||
| import { useModelListAndDefaultModelAndCurrentProviderAndModel } from '@/app/components/header/account-setting/model-provider-page/hooks' | import { useModelListAndDefaultModelAndCurrentProviderAndModel } from '@/app/components/header/account-setting/model-provider-page/hooks' | ||||
| import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations' | import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations' | ||||
| import { RerankingModeEnum } from '@/models/datasets' | |||||
| import type { DataSet } from '@/models/datasets' | import type { DataSet } from '@/models/datasets' | ||||
| import type { DatasetConfigs } from '@/models/debug' | import type { DatasetConfigs } from '@/models/debug' | ||||
| import { | import { | ||||
| const isValid = () => { | const isValid = () => { | ||||
| let errMsg = '' | let errMsg = '' | ||||
| if (tempDataSetConfigs.retrieval_model === RETRIEVE_TYPE.multiWay) { | if (tempDataSetConfigs.retrieval_model === RETRIEVE_TYPE.multiWay) { | ||||
| if (!tempDataSetConfigs.reranking_model?.reranking_model_name && (rerankDefaultModel && !isRerankDefaultModelValid)) | |||||
| if (tempDataSetConfigs.reranking_enable | |||||
| && tempDataSetConfigs.reranking_mode === RerankingModeEnum.RerankingModel | |||||
| && !isRerankDefaultModelValid | |||||
| ) | |||||
| errMsg = t('appDebug.datasetConfig.rerankModelRequired') | errMsg = t('appDebug.datasetConfig.rerankModelRequired') | ||||
| } | } | ||||
| if (errMsg) { | if (errMsg) { | ||||
| if (!isValid()) | if (!isValid()) | ||||
| return | return | ||||
| const config = { ...tempDataSetConfigs } | const config = { ...tempDataSetConfigs } | ||||
| if (config.retrieval_model === RETRIEVE_TYPE.multiWay && !config.reranking_model) { | |||||
| if (config.retrieval_model === RETRIEVE_TYPE.multiWay | |||||
| && config.reranking_mode === RerankingModeEnum.RerankingModel | |||||
| && !config.reranking_model) { | |||||
| config.reranking_model = { | config.reranking_model = { | ||||
| reranking_provider_name: rerankDefaultModel?.provider?.provider, | reranking_provider_name: rerankDefaultModel?.provider?.provider, | ||||
| reranking_model_name: rerankDefaultModel?.model, | reranking_model_name: rerankDefaultModel?.model, | 
| } | } | ||||
| hideSelectDataSet() | hideSelectDataSet() | ||||
| const { | const { | ||||
| allEconomic, | |||||
| allExternal, | |||||
| allInternal, | |||||
| mixtureInternalAndExternal, | |||||
| mixtureHighQualityAndEconomic, | mixtureHighQualityAndEconomic, | ||||
| inconsistentEmbeddingModel, | inconsistentEmbeddingModel, | ||||
| } = getSelectedDatasetsMode(newDatasets) | } = getSelectedDatasetsMode(newDatasets) | ||||
| if (allEconomic || mixtureHighQualityAndEconomic || inconsistentEmbeddingModel) | |||||
| if ( | |||||
| (allInternal && (mixtureHighQualityAndEconomic || inconsistentEmbeddingModel)) | |||||
| || mixtureInternalAndExternal | |||||
| || allExternal | |||||
| ) | |||||
| setRerankSettingModalOpen(true) | setRerankSettingModalOpen(true) | ||||
| const { datasets, retrieval_model, score_threshold_enabled, ...restConfigs } = datasetConfigs | const { datasets, retrieval_model, score_threshold_enabled, ...restConfigs } = datasetConfigs | 
| if ( | if ( | ||||
| (allInternal && (mixtureHighQualityAndEconomic || inconsistentEmbeddingModel)) | (allInternal && (mixtureHighQualityAndEconomic || inconsistentEmbeddingModel)) | ||||
| || mixtureInternalAndExternal | || mixtureInternalAndExternal | ||||
| || (allExternal && newDatasets.length > 1) | |||||
| || allExternal | |||||
| ) | ) | ||||
| setRerankModelOpen(true) | setRerankModelOpen(true) | ||||
| }, [inputs, setInputs, payload.retrieval_mode, selectedDatasets, currentRerankModel]) | }, [inputs, setInputs, payload.retrieval_mode, selectedDatasets, currentRerankModel]) |