|
|
|
@ -1,6 +1,6 @@
|
|
|
|
'use client'
|
|
|
|
'use client'
|
|
|
|
|
|
|
|
|
|
|
|
import { memo, useEffect, useMemo } from 'react'
|
|
|
|
import { memo, useCallback, useEffect, useMemo } from 'react'
|
|
|
|
import type { FC } from 'react'
|
|
|
|
import type { FC } from 'react'
|
|
|
|
import { useTranslation } from 'react-i18next'
|
|
|
|
import { useTranslation } from 'react-i18next'
|
|
|
|
import WeightedScore from './weighted-score'
|
|
|
|
import WeightedScore from './weighted-score'
|
|
|
|
@ -11,7 +11,7 @@ import type {
|
|
|
|
DatasetConfigs,
|
|
|
|
DatasetConfigs,
|
|
|
|
} from '@/models/debug'
|
|
|
|
} from '@/models/debug'
|
|
|
|
import ModelSelector from '@/app/components/header/account-setting/model-provider-page/model-selector'
|
|
|
|
import ModelSelector from '@/app/components/header/account-setting/model-provider-page/model-selector'
|
|
|
|
import { useModelListAndDefaultModelAndCurrentProviderAndModel } from '@/app/components/header/account-setting/model-provider-page/hooks'
|
|
|
|
import { useCurrentProviderAndModel, useModelListAndDefaultModelAndCurrentProviderAndModel } from '@/app/components/header/account-setting/model-provider-page/hooks'
|
|
|
|
import type { ModelConfig } from '@/app/components/workflow/types'
|
|
|
|
import type { ModelConfig } from '@/app/components/workflow/types'
|
|
|
|
import ModelParameterModal from '@/app/components/header/account-setting/model-provider-page/model-parameter-modal'
|
|
|
|
import ModelParameterModal from '@/app/components/header/account-setting/model-provider-page/model-parameter-modal'
|
|
|
|
import Tooltip from '@/app/components/base/tooltip'
|
|
|
|
import Tooltip from '@/app/components/base/tooltip'
|
|
|
|
@ -23,6 +23,7 @@ import { RerankingModeEnum } from '@/models/datasets'
|
|
|
|
import cn from '@/utils/classnames'
|
|
|
|
import cn from '@/utils/classnames'
|
|
|
|
import { useSelectedDatasetsMode } from '@/app/components/workflow/nodes/knowledge-retrieval/hooks'
|
|
|
|
import { useSelectedDatasetsMode } from '@/app/components/workflow/nodes/knowledge-retrieval/hooks'
|
|
|
|
import Switch from '@/app/components/base/switch'
|
|
|
|
import Switch from '@/app/components/base/switch'
|
|
|
|
|
|
|
|
import Toast from '@/app/components/base/toast'
|
|
|
|
|
|
|
|
|
|
|
|
type Props = {
|
|
|
|
type Props = {
|
|
|
|
datasetConfigs: DatasetConfigs
|
|
|
|
datasetConfigs: DatasetConfigs
|
|
|
|
@ -60,6 +61,24 @@ const ConfigContent: FC<Props> = ({
|
|
|
|
modelList: rerankModelList,
|
|
|
|
modelList: rerankModelList,
|
|
|
|
defaultModel: rerankDefaultModel,
|
|
|
|
defaultModel: rerankDefaultModel,
|
|
|
|
} = useModelListAndDefaultModelAndCurrentProviderAndModel(ModelTypeEnum.rerank)
|
|
|
|
} = useModelListAndDefaultModelAndCurrentProviderAndModel(ModelTypeEnum.rerank)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const {
|
|
|
|
|
|
|
|
currentModel,
|
|
|
|
|
|
|
|
} = useCurrentProviderAndModel(
|
|
|
|
|
|
|
|
rerankModelList,
|
|
|
|
|
|
|
|
rerankDefaultModel
|
|
|
|
|
|
|
|
? {
|
|
|
|
|
|
|
|
...rerankDefaultModel,
|
|
|
|
|
|
|
|
provider: rerankDefaultModel.provider.provider,
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
: undefined,
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const handleDisabledSwitchClick = useCallback(() => {
|
|
|
|
|
|
|
|
if (!currentModel)
|
|
|
|
|
|
|
|
Toast.notify({ type: 'error', message: t('workflow.errorMsg.rerankModelRequired') })
|
|
|
|
|
|
|
|
}, [currentModel, rerankDefaultModel, t])
|
|
|
|
|
|
|
|
|
|
|
|
const rerankModel = (() => {
|
|
|
|
const rerankModel = (() => {
|
|
|
|
if (datasetConfigs.reranking_model?.reranking_provider_name) {
|
|
|
|
if (datasetConfigs.reranking_model?.reranking_provider_name) {
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
@ -231,9 +250,14 @@ const ConfigContent: FC<Props> = ({
|
|
|
|
<div className='flex items-center'>
|
|
|
|
<div className='flex items-center'>
|
|
|
|
{
|
|
|
|
{
|
|
|
|
selectedDatasetsMode.allEconomic && (
|
|
|
|
selectedDatasetsMode.allEconomic && (
|
|
|
|
|
|
|
|
<div
|
|
|
|
|
|
|
|
className='flex items-center'
|
|
|
|
|
|
|
|
onClick={handleDisabledSwitchClick}
|
|
|
|
|
|
|
|
>
|
|
|
|
<Switch
|
|
|
|
<Switch
|
|
|
|
size='md'
|
|
|
|
size='md'
|
|
|
|
defaultValue={showRerankModel}
|
|
|
|
defaultValue={currentModel ? showRerankModel : false}
|
|
|
|
|
|
|
|
disabled={!currentModel}
|
|
|
|
onChange={(v) => {
|
|
|
|
onChange={(v) => {
|
|
|
|
onChange({
|
|
|
|
onChange({
|
|
|
|
...datasetConfigs,
|
|
|
|
...datasetConfigs,
|
|
|
|
@ -241,6 +265,7 @@ const ConfigContent: FC<Props> = ({
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}}
|
|
|
|
}}
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
<div className='leading-[32px] ml-1 text-text-secondary system-sm-semibold'>{t('common.modelProvider.rerankModel.key')}</div>
|
|
|
|
<div className='leading-[32px] ml-1 text-text-secondary system-sm-semibold'>{t('common.modelProvider.rerankModel.key')}</div>
|
|
|
|
|