Files
dify/web/app/components/datasets/settings/utils/index.tsx
2025-12-09 11:44:50 +08:00

47 lines
1.9 KiB
TypeScript

import { type DefaultModel, type Model, ModelFeatureEnum } from '@/app/components/header/account-setting/model-provider-page/declarations'
import { IndexingType } from '../../create/step-two'
type ShowMultiModalTipProps = {
embeddingModel: DefaultModel
rerankingEnable: boolean
rerankModel: {
rerankingProviderName: string
rerankingModelName: string
}
indexMethod: IndexingType | undefined
embeddingModelList: Model[]
rerankModelList: Model[]
}
export const checkShowMultiModalTip = ({
embeddingModel,
rerankingEnable,
rerankModel,
indexMethod,
embeddingModelList,
rerankModelList,
}: ShowMultiModalTipProps) => {
if (indexMethod !== IndexingType.QUALIFIED || !embeddingModel.provider || !embeddingModel.model)
return false
const currentEmbeddingModelProvider = embeddingModelList.find(model => model.provider === embeddingModel.provider)
if (!currentEmbeddingModelProvider)
return false
const currentEmbeddingModel = currentEmbeddingModelProvider.models.find(model => model.model === embeddingModel.model)
if (!currentEmbeddingModel)
return false
const isCurrentEmbeddingModelSupportMultiModal = !!currentEmbeddingModel.features?.includes(ModelFeatureEnum.vision)
if (!isCurrentEmbeddingModelSupportMultiModal)
return false
const { rerankingModelName, rerankingProviderName } = rerankModel
if (!rerankingEnable || !rerankingModelName || !rerankingProviderName)
return false
const currentRerankingModelProvider = rerankModelList.find(model => model.provider === rerankingProviderName)
if (!currentRerankingModelProvider)
return false
const currentRerankingModel = currentRerankingModelProvider.models.find(model => model.model === rerankingModelName)
if (!currentRerankingModel)
return false
const isRerankingModelSupportMultiModal = !!currentRerankingModel.features?.includes(ModelFeatureEnum.vision)
return !isRerankingModelSupportMultiModal
}