feat: multimodal support (image) (#27793)
Co-authored-by: zxhlyh <jasonapring2015@outlook.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
46
web/app/components/datasets/settings/utils/index.tsx
Normal file
46
web/app/components/datasets/settings/utils/index.tsx
Normal file
@@ -0,0 +1,46 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user