mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-06-30 06:35:14 +08:00
Fix: chatbot retrieval setting save issue (#9536)
This commit is contained in:
parent
b411a89703
commit
bddcb31fe2
@ -60,6 +60,7 @@ const ConfigContent: FC<Props> = ({
|
|||||||
const {
|
const {
|
||||||
modelList: rerankModelList,
|
modelList: rerankModelList,
|
||||||
defaultModel: rerankDefaultModel,
|
defaultModel: rerankDefaultModel,
|
||||||
|
currentModel: isRerankDefaultModelValid,
|
||||||
} = useModelListAndDefaultModelAndCurrentProviderAndModel(ModelTypeEnum.rerank)
|
} = useModelListAndDefaultModelAndCurrentProviderAndModel(ModelTypeEnum.rerank)
|
||||||
|
|
||||||
const {
|
const {
|
||||||
@ -160,14 +161,14 @@ const ConfigContent: FC<Props> = ({
|
|||||||
const selectedRerankMode = datasetConfigs.reranking_mode || RerankingModeEnum.RerankingModel
|
const selectedRerankMode = datasetConfigs.reranking_mode || RerankingModeEnum.RerankingModel
|
||||||
|
|
||||||
const canManuallyToggleRerank = useMemo(() => {
|
const canManuallyToggleRerank = useMemo(() => {
|
||||||
return !(
|
return (selectedDatasetsMode.allInternal && selectedDatasetsMode.allEconomic)
|
||||||
(selectedDatasetsMode.allInternal && selectedDatasetsMode.allEconomic)
|
|
||||||
|| selectedDatasetsMode.allExternal
|
|| selectedDatasetsMode.allExternal
|
||||||
)
|
|
||||||
}, [selectedDatasetsMode.allEconomic, selectedDatasetsMode.allExternal, selectedDatasetsMode.allInternal])
|
}, [selectedDatasetsMode.allEconomic, selectedDatasetsMode.allExternal, selectedDatasetsMode.allInternal])
|
||||||
|
|
||||||
const showRerankModel = useMemo(() => {
|
const showRerankModel = useMemo(() => {
|
||||||
if (!canManuallyToggleRerank)
|
if (!canManuallyToggleRerank)
|
||||||
|
return true
|
||||||
|
else if (canManuallyToggleRerank && !isRerankDefaultModelValid)
|
||||||
return false
|
return false
|
||||||
|
|
||||||
return datasetConfigs.reranking_enable
|
return datasetConfigs.reranking_enable
|
||||||
@ -179,7 +180,7 @@ const ConfigContent: FC<Props> = ({
|
|||||||
}, [currentRerankModel, showRerankModel, t])
|
}, [currentRerankModel, showRerankModel, t])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!canManuallyToggleRerank && showRerankModel !== datasetConfigs.reranking_enable) {
|
if (canManuallyToggleRerank && showRerankModel !== datasetConfigs.reranking_enable) {
|
||||||
onChange({
|
onChange({
|
||||||
...datasetConfigs,
|
...datasetConfigs,
|
||||||
reranking_enable: showRerankModel,
|
reranking_enable: showRerankModel,
|
||||||
|
@ -42,23 +42,30 @@ const ParamsConfig = ({
|
|||||||
allHighQuality,
|
allHighQuality,
|
||||||
allHighQualityFullTextSearch,
|
allHighQualityFullTextSearch,
|
||||||
allHighQualityVectorSearch,
|
allHighQualityVectorSearch,
|
||||||
allInternal,
|
|
||||||
allExternal,
|
allExternal,
|
||||||
mixtureHighQualityAndEconomic,
|
mixtureHighQualityAndEconomic,
|
||||||
inconsistentEmbeddingModel,
|
inconsistentEmbeddingModel,
|
||||||
mixtureInternalAndExternal,
|
mixtureInternalAndExternal,
|
||||||
} = getSelectedDatasetsMode(selectedDatasets)
|
} = 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
|
|
||||||
|
|
||||||
if (allEconomic || allHighQuality || allHighQualityFullTextSearch || allHighQualityVectorSearch || (allExternal && selectedDatasets.length === 1))
|
if (allEconomic || allHighQuality || allHighQualityFullTextSearch || allHighQualityVectorSearch || (allExternal && selectedDatasets.length === 1))
|
||||||
setRerankSettingModalOpen(false)
|
setRerankSettingModalOpen(false)
|
||||||
|
|
||||||
if (mixtureHighQualityAndEconomic || inconsistentEmbeddingModel || mixtureInternalAndExternal || (allExternal && selectedDatasets.length > 1))
|
if (mixtureHighQualityAndEconomic || inconsistentEmbeddingModel || mixtureInternalAndExternal || (allExternal && selectedDatasets.length > 1))
|
||||||
setRerankSettingModalOpen(true)
|
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({
|
setTempDataSetConfigs({
|
||||||
...getMultipleRetrievalConfig({
|
...getMultipleRetrievalConfig({
|
||||||
@ -90,7 +97,7 @@ const ParamsConfig = ({
|
|||||||
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_model?.reranking_model_name && (rerankDefaultModel && !isRerankDefaultModelValid))
|
||||||
errMsg = t('appDebug.datasetConfig.rerankModelRequired')
|
errMsg = t('appDebug.datasetConfig.rerankModelRequired')
|
||||||
}
|
}
|
||||||
if (errMsg) {
|
if (errMsg) {
|
||||||
@ -104,7 +111,6 @@ const ParamsConfig = ({
|
|||||||
const handleSave = () => {
|
const handleSave = () => {
|
||||||
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_model) {
|
||||||
config.reranking_model = {
|
config.reranking_model = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user