|
|
|
|
@ -16,7 +16,6 @@ import type { DataSet } from '@/models/datasets'
|
|
|
|
|
import type { DatasetConfigs } from '@/models/debug'
|
|
|
|
|
import {
|
|
|
|
|
getMultipleRetrievalConfig,
|
|
|
|
|
getSelectedDatasetsMode,
|
|
|
|
|
} from '@/app/components/workflow/nodes/knowledge-retrieval/utils'
|
|
|
|
|
|
|
|
|
|
type ParamsConfigProps = {
|
|
|
|
|
@ -37,57 +36,8 @@ const ParamsConfig = ({
|
|
|
|
|
const [tempDataSetConfigs, setTempDataSetConfigs] = useState(datasetConfigs)
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
const {
|
|
|
|
|
allEconomic,
|
|
|
|
|
allHighQuality,
|
|
|
|
|
allHighQualityFullTextSearch,
|
|
|
|
|
allHighQualityVectorSearch,
|
|
|
|
|
allExternal,
|
|
|
|
|
mixtureHighQualityAndEconomic,
|
|
|
|
|
inconsistentEmbeddingModel,
|
|
|
|
|
mixtureInternalAndExternal,
|
|
|
|
|
} = getSelectedDatasetsMode(selectedDatasets)
|
|
|
|
|
|
|
|
|
|
if (allEconomic || allHighQuality || allHighQualityFullTextSearch || allHighQualityVectorSearch || (allExternal && selectedDatasets.length === 1))
|
|
|
|
|
setRerankSettingModalOpen(false)
|
|
|
|
|
|
|
|
|
|
if (mixtureHighQualityAndEconomic || inconsistentEmbeddingModel || mixtureInternalAndExternal || (allExternal && selectedDatasets.length > 1))
|
|
|
|
|
setRerankSettingModalOpen(true)
|
|
|
|
|
}, [selectedDatasets])
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
const {
|
|
|
|
|
allEconomic,
|
|
|
|
|
allInternal,
|
|
|
|
|
allExternal,
|
|
|
|
|
} = getSelectedDatasetsMode(selectedDatasets)
|
|
|
|
|
const { datasets, retrieval_model, score_threshold_enabled, ...restConfigs } = datasetConfigs
|
|
|
|
|
let rerankEnable = restConfigs.reranking_enable
|
|
|
|
|
|
|
|
|
|
if (((allInternal && allEconomic) || allExternal) && !restConfigs.reranking_model?.reranking_provider_name && rerankEnable === undefined)
|
|
|
|
|
rerankEnable = false
|
|
|
|
|
|
|
|
|
|
setTempDataSetConfigs({
|
|
|
|
|
...getMultipleRetrievalConfig({
|
|
|
|
|
top_k: restConfigs.top_k,
|
|
|
|
|
score_threshold: restConfigs.score_threshold,
|
|
|
|
|
reranking_model: restConfigs.reranking_model && {
|
|
|
|
|
provider: restConfigs.reranking_model.reranking_provider_name,
|
|
|
|
|
model: restConfigs.reranking_model.reranking_model_name,
|
|
|
|
|
},
|
|
|
|
|
reranking_mode: restConfigs.reranking_mode,
|
|
|
|
|
weights: restConfigs.weights,
|
|
|
|
|
reranking_enable: rerankEnable,
|
|
|
|
|
}, selectedDatasets),
|
|
|
|
|
reranking_model: restConfigs.reranking_model && {
|
|
|
|
|
reranking_provider_name: restConfigs.reranking_model.reranking_provider_name,
|
|
|
|
|
reranking_model_name: restConfigs.reranking_model.reranking_model_name,
|
|
|
|
|
},
|
|
|
|
|
retrieval_model,
|
|
|
|
|
score_threshold_enabled,
|
|
|
|
|
datasets,
|
|
|
|
|
})
|
|
|
|
|
}, [selectedDatasets, datasetConfigs])
|
|
|
|
|
setTempDataSetConfigs(datasetConfigs)
|
|
|
|
|
}, [datasetConfigs])
|
|
|
|
|
|
|
|
|
|
const {
|
|
|
|
|
defaultModel: rerankDefaultModel,
|
|
|
|
|
@ -135,7 +85,7 @@ const ParamsConfig = ({
|
|
|
|
|
reranking_mode: restConfigs.reranking_mode,
|
|
|
|
|
weights: restConfigs.weights,
|
|
|
|
|
reranking_enable: restConfigs.reranking_enable,
|
|
|
|
|
}, selectedDatasets)
|
|
|
|
|
}, selectedDatasets, selectedDatasets, !!isRerankDefaultModelValid)
|
|
|
|
|
|
|
|
|
|
setTempDataSetConfigs({
|
|
|
|
|
...retrievalConfig,
|
|
|
|
|
@ -180,6 +130,7 @@ const ParamsConfig = ({
|
|
|
|
|
|
|
|
|
|
<div className='mt-6 flex justify-end'>
|
|
|
|
|
<Button className='mr-2 flex-shrink-0' onClick={() => {
|
|
|
|
|
setTempDataSetConfigs(datasetConfigs)
|
|
|
|
|
setRerankSettingModalOpen(false)
|
|
|
|
|
}}>{t('common.operation.cancel')}</Button>
|
|
|
|
|
<Button variant='primary' className='flex-shrink-0' onClick={handleSave} >{t('common.operation.save')}</Button>
|
|
|
|
|
|