import type { DefaultModel, Model } from '@/app/components/header/account-setting/model-provider-page/declarations' import { 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 }