123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import { RETRIEVE_METHOD, type RetrievalConfig } from '@/types/app'
- import type {
- DefaultModelResponse,
- Model,
- } from '@/app/components/header/account-setting/model-provider-page/declarations'
- import { RerankingModeEnum } from '@/models/datasets'
- export const isReRankModelSelected = ({
- rerankDefaultModel,
- isRerankDefaultModelValid,
- retrievalConfig,
- rerankModelList,
- indexMethod,
- }: {
- rerankDefaultModel?: DefaultModelResponse
- isRerankDefaultModelValid: boolean
- retrievalConfig: RetrievalConfig
- rerankModelList: Model[]
- indexMethod?: string
- }) => {
- const rerankModelSelected = (() => {
- if (retrievalConfig.reranking_model?.reranking_model_name) {
- const provider = rerankModelList.find(({ provider }) => provider === retrievalConfig.reranking_model?.reranking_provider_name)
- return provider?.models.find(({ model }) => model === retrievalConfig.reranking_model?.reranking_model_name)
- }
- if (isRerankDefaultModelValid)
- return !!rerankDefaultModel
- return false
- })()
- if (
- indexMethod === 'high_quality'
- && (retrievalConfig.search_method === RETRIEVE_METHOD.hybrid && retrievalConfig.reranking_mode !== RerankingModeEnum.WeightedScore)
- && !rerankModelSelected
- )
- return false
- return true
- }
- export const ensureRerankModelSelected = ({
- rerankDefaultModel,
- indexMethod,
- retrievalConfig,
- }: {
- rerankDefaultModel: DefaultModelResponse
- retrievalConfig: RetrievalConfig
- indexMethod?: string
- }) => {
- const rerankModel = retrievalConfig.reranking_model?.reranking_model_name ? retrievalConfig.reranking_model : undefined
- if (
- indexMethod === 'high_quality'
- && (retrievalConfig.reranking_enable || retrievalConfig.search_method === RETRIEVE_METHOD.hybrid)
- && !rerankModel
- && rerankDefaultModel
- ) {
- return {
- ...retrievalConfig,
- reranking_model: {
- reranking_provider_name: rerankDefaultModel.provider.provider,
- reranking_model_name: rerankDefaultModel.model,
- },
- }
- }
- return retrievalConfig
- }
|