diff --git a/web/app/components/app/configuration/dataset-config/params-config/config-content.tsx b/web/app/components/app/configuration/dataset-config/params-config/config-content.tsx index 683617bf25..3656bf6ea7 100644 --- a/web/app/components/app/configuration/dataset-config/params-config/config-content.tsx +++ b/web/app/components/app/configuration/dataset-config/params-config/config-content.tsx @@ -4,6 +4,7 @@ import { memo, useMemo } from 'react' import type { FC } from 'react' import { useTranslation } from 'react-i18next' import { + RiAlertFill, RiQuestionLine, } from '@remixicon/react' import WeightedScore from './weighted-score' @@ -26,7 +27,6 @@ import TooltipPlus from '@/app/components/base/tooltip-plus' import { ModelTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations' import type { DataSet, - WeightedScoreEnum, } from '@/models/datasets' import { RerankingModeEnum } from '@/models/datasets' import cn from '@/utils/classnames' @@ -112,12 +112,11 @@ const ConfigContent: FC = ({ }) } - const handleWeightedScoreChange = (value: { type: WeightedScoreEnum; value: number[] }) => { + const handleWeightedScoreChange = (value: { value: number[] }) => { const configs = { ...datasetConfigs, weights: { ...datasetConfigs.weights!, - weight_type: value.type, vector_setting: { ...datasetConfigs.weights!.vector_setting!, vector_weight: value.value[0], @@ -178,14 +177,6 @@ const ConfigContent: FC = ({ popupContent={(
{t('dataset.nTo1RetrievalLegacy')} - - ({t('dataset.nTo1RetrievalLegacyLink')}) -
)} > @@ -196,6 +187,22 @@ const ConfigContent: FC = ({ description={t('appDebug.datasetConfig.retrieveOneWay.description')} isChosen={type === RETRIEVE_TYPE.oneWay} onChosen={() => { setType(RETRIEVE_TYPE.oneWay) }} + extra={( +
+ +
+ {t('dataset.nTo1RetrievalLegacyLinkText')} + + {t('dataset.nTo1RetrievalLegacyLink')} + +
+
+ )} /> } @@ -302,7 +309,6 @@ const ConfigContent: FC = ({
{ } type Value = { - type: WeightedScoreEnum value: number[] } @@ -30,78 +26,31 @@ const WeightedScore = ({ onChange = () => {}, }: WeightedScoreProps) => { const { t } = useTranslation() - const options = [ - { - value: WeightedScoreEnum.SemanticFirst, - label: t('dataset.weightedScore.semanticFirst'), - }, - { - value: WeightedScoreEnum.KeywordFirst, - label: t('dataset.weightedScore.keywordFirst'), - }, - { - value: WeightedScoreEnum.Customized, - label: t('dataset.weightedScore.customized'), - }, - ] - - const disabled = value.type !== WeightedScoreEnum.Customized - - const handleTypeChange = useCallback((type: WeightedScoreEnum) => { - const result = { ...value, type } - - if (type === WeightedScoreEnum.SemanticFirst) - result.value = [DEFAULT_WEIGHTED_SCORE.semanticFirst.semantic, DEFAULT_WEIGHTED_SCORE.semanticFirst.keyword] - - if (type === WeightedScoreEnum.KeywordFirst) - result.value = [DEFAULT_WEIGHTED_SCORE.keywordFirst.semantic, DEFAULT_WEIGHTED_SCORE.keywordFirst.keyword] - - onChange(result) - }, [value, onChange]) return (
-
- { - options.map(option => ( -
handleTypeChange(option.value)} - > -
-
{option.label}
-
- )) - } -
-
-
-
- {t('dataset.weightedScore.semantic')} -
- {formatNumber(value.value[0])} -
+
onChange({ type: value.type, value: [v, (10 - v * 10) / 10] })} - disabled={disabled} - thumbClassName={cn(disabled && '!cursor-not-allowed')} - trackClassName='!bg-transparent' + onChange={v => onChange({ value: [v, (10 - v * 10) / 10] })} + trackClassName='weightedScoreSliderTrack' /> -
- {formatNumber(value.value[1])} -
- {t('dataset.weightedScore.keyword')} +
+
+
+ {t('dataset.weightedScore.semantic')} +
+ {formatNumber(value.value[0])} +
+
+ {formatNumber(value.value[1])} +
+ {t('dataset.weightedScore.keyword')} +
diff --git a/web/app/components/base/radio-card/simple/index.tsx b/web/app/components/base/radio-card/simple/index.tsx index 6893b4c2e2..926fc02523 100644 --- a/web/app/components/base/radio-card/simple/index.tsx +++ b/web/app/components/base/radio-card/simple/index.tsx @@ -12,6 +12,7 @@ type Props = { onChosen: () => void chosenConfig?: React.ReactNode icon?: JSX.Element + extra?: React.ReactNode } const RadioCard: FC = ({ @@ -20,20 +21,24 @@ const RadioCard: FC = ({ isChosen, onChosen, icon, + extra, }) => { return (
- {icon} -
-
-
{title}
-
+
+ {icon} +
+
+
{title}
+
+
+
{description}
-
{description}
+ {extra}
) } diff --git a/web/app/components/base/radio-card/simple/style.module.css b/web/app/components/base/radio-card/simple/style.module.css index 7b9871cc17..58a87086bc 100644 --- a/web/app/components/base/radio-card/simple/style.module.css +++ b/web/app/components/base/radio-card/simple/style.module.css @@ -1,5 +1,5 @@ .item { - @apply relative p-4 rounded-xl border border-gray-100 cursor-pointer; + @apply relative rounded-xl border border-gray-100 cursor-pointer; background-color: #fcfcfd; } diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/types.ts b/web/app/components/workflow/nodes/knowledge-retrieval/types.ts index b14a8bb15c..da9373962b 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/types.ts +++ b/web/app/components/workflow/nodes/knowledge-retrieval/types.ts @@ -2,7 +2,6 @@ import type { CommonNodeType, ModelConfig, ValueSelector } from '@/app/component import type { RETRIEVE_TYPE } from '@/types/app' import type { RerankingModeEnum, - WeightedScoreEnum, } from '@/models/datasets' export type MultipleRetrievalConfig = { @@ -14,7 +13,6 @@ export type MultipleRetrievalConfig = { } reranking_mode?: RerankingModeEnum weights?: { - weight_type: WeightedScoreEnum vector_setting: { vector_weight: number embedding_provider_name: string diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/use-config.ts b/web/app/components/workflow/nodes/knowledge-retrieval/use-config.ts index 0a5631a08e..994bf4f205 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/use-config.ts +++ b/web/app/components/workflow/nodes/knowledge-retrieval/use-config.ts @@ -263,7 +263,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => { handleMultipleRetrievalConfigChange, handleModelChanged, handleCompletionParamsChange, - selectedDatasets, + selectedDatasets: selectedDatasets.filter(d => d.name), handleOnDatasetsChange, isShowSingleRun, hideSingleRun, diff --git a/web/app/components/workflow/nodes/knowledge-retrieval/utils.ts b/web/app/components/workflow/nodes/knowledge-retrieval/utils.ts index d4dfd3b914..3835e88f90 100644 --- a/web/app/components/workflow/nodes/knowledge-retrieval/utils.ts +++ b/web/app/components/workflow/nodes/knowledge-retrieval/utils.ts @@ -7,7 +7,6 @@ import type { import { DEFAULT_WEIGHTED_SCORE, RerankingModeEnum, - WeightedScoreEnum, } from '@/models/datasets' import { RETRIEVE_METHOD } from '@/types/app' import { DATASET_DEFAULT } from '@/config' @@ -100,7 +99,6 @@ export const getMultipleRetrievalConfig = (multipleRetrievalConfig: MultipleRetr if (allHighQuality && !inconsistentEmbeddingModel && (reranking_mode === RerankingModeEnum.WeightedScore || reranking_mode === undefined) && !weights) { result.weights = { - weight_type: WeightedScoreEnum.Customized, vector_setting: { vector_weight: allHighQualityVectorSearch ? DEFAULT_WEIGHTED_SCORE.allHighQualityVectorSearch.semantic diff --git a/web/i18n/en-US/dataset.ts b/web/i18n/en-US/dataset.ts index 64fda36c10..e6914b4a00 100644 --- a/web/i18n/en-US/dataset.ts +++ b/web/i18n/en-US/dataset.ts @@ -70,6 +70,7 @@ const translation = { }, nTo1RetrievalLegacy: 'N-to-1 retrieval will be officially deprecated from September. It is recommended to use the latest Multi-path retrieval to obtain better results. ', nTo1RetrievalLegacyLink: 'Learn more', + nTo1RetrievalLegacyLinkText: ' N-to-1 retrieval will be officially deprecated in September.', } export default translation diff --git a/web/i18n/zh-Hans/dataset.ts b/web/i18n/zh-Hans/dataset.ts index 1dd11c5c33..f76be97818 100644 --- a/web/i18n/zh-Hans/dataset.ts +++ b/web/i18n/zh-Hans/dataset.ts @@ -70,6 +70,7 @@ const translation = { }, nTo1RetrievalLegacy: '9 月 1 日起我们将不再提供此能力,推荐使用最新的多路召回获得更好的检索效果。', nTo1RetrievalLegacyLink: '了解更多', + nTo1RetrievalLegacyLinkText: '9 月 1 日起我们将不再提供此能力。', } export default translation diff --git a/web/models/debug.ts b/web/models/debug.ts index 468d9fa0ba..2b2af80065 100644 --- a/web/models/debug.ts +++ b/web/models/debug.ts @@ -1,7 +1,6 @@ import type { AgentStrategy, ModelModeType, RETRIEVE_TYPE, ToolItem, TtsAutoPlay } from '@/types/app' import type { RerankingModeEnum, - WeightedScoreEnum, } from '@/models/datasets' export type Inputs = Record @@ -157,7 +156,6 @@ export type DatasetConfigs = { } reranking_mode?: RerankingModeEnum weights?: { - weight_type: WeightedScoreEnum vector_setting: { vector_weight: number embedding_provider_name: string