fix: eco knowledge retrieval method (#6798)

This commit is contained in:
zxhlyh 2024-07-30 16:59:03 +08:00 committed by GitHub
parent 0675c5f716
commit 0a744a73b3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 33 additions and 5 deletions

View File

@ -32,6 +32,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 { useGetLanguage } from '@/context/i18n'
type Props = { type Props = {
datasetConfigs: DatasetConfigs datasetConfigs: DatasetConfigs
@ -43,6 +44,11 @@ type Props = {
selectedDatasets?: DataSet[] selectedDatasets?: DataSet[]
} }
const LEGACY_LINK_MAP = {
en_US: 'https://docs.dify.ai/guides/knowledge-base/integrate-knowledge-within-application',
zh_Hans: 'https://docs.dify.ai/v/zh-hans/guides/knowledge-base/integrate_knowledge_within_application',
} as Record<string, string>
const ConfigContent: FC<Props> = ({ const ConfigContent: FC<Props> = ({
datasetConfigs, datasetConfigs,
onChange, onChange,
@ -53,6 +59,7 @@ const ConfigContent: FC<Props> = ({
selectedDatasets = [], selectedDatasets = [],
}) => { }) => {
const { t } = useTranslation() const { t } = useTranslation()
const language = useGetLanguage()
const selectedDatasetsMode = useSelectedDatasetsMode(selectedDatasets) const selectedDatasetsMode = useSelectedDatasetsMode(selectedDatasets)
const type = datasetConfigs.retrieval_model const type = datasetConfigs.retrieval_model
const setType = (value: RETRIEVE_TYPE) => { const setType = (value: RETRIEVE_TYPE) => {
@ -167,7 +174,21 @@ const ConfigContent: FC<Props> = ({
title={( title={(
<div className='flex items-center'> <div className='flex items-center'>
{t('appDebug.datasetConfig.retrieveOneWay.title')} {t('appDebug.datasetConfig.retrieveOneWay.title')}
<TooltipPlus popupContent={<div className='w-[320px]'>{t('dataset.nTo1RetrievalLegacy')}</div>}> <TooltipPlus
popupContent={(
<div className='w-[320px]'>
{t('dataset.nTo1RetrievalLegacy')}
<a
className='underline'
href={LEGACY_LINK_MAP[language]}
target='_blank'
rel='noopener noreferrer'
>
({t('dataset.nTo1RetrievalLegacyLink')})
</a>
</div>
)}
>
<div className='ml-1 flex items-center px-[5px] h-[18px] rounded-[5px] border border-text-accent-secondary system-2xs-medium-uppercase text-text-accent-secondary'>legacy</div> <div className='ml-1 flex items-center px-[5px] h-[18px] rounded-[5px] border border-text-accent-secondary system-2xs-medium-uppercase text-text-accent-secondary'>legacy</div>
</TooltipPlus> </TooltipPlus>
</div> </div>

View File

@ -8,7 +8,10 @@ export const useKnowledge = () => {
return t(`dataset.indexingTechnique.${indexingTechnique}`) return t(`dataset.indexingTechnique.${indexingTechnique}`)
}, [t]) }, [t])
const formatIndexingMethod = useCallback((indexingMethod: string) => { const formatIndexingMethod = useCallback((indexingMethod: string, isEco?: boolean) => {
if (isEco)
return t('dataset.indexingMethod.invertedIndex')
return t(`dataset.indexingMethod.${indexingMethod}`) return t(`dataset.indexingMethod.${indexingMethod}`)
}, [t]) }, [t])
@ -16,7 +19,7 @@ export const useKnowledge = () => {
let result = formatIndexingTechnique(indexingTechnique) let result = formatIndexingTechnique(indexingTechnique)
if (indexingMethod) if (indexingMethod)
result += ` · ${formatIndexingMethod(indexingMethod)}` result += ` · ${formatIndexingMethod(indexingMethod, indexingTechnique === 'economy')}`
return result return result
}, [formatIndexingTechnique, formatIndexingMethod]) }, [formatIndexingTechnique, formatIndexingMethod])

View File

@ -53,6 +53,7 @@ const translation = {
semantic_search: 'VECTOR', semantic_search: 'VECTOR',
full_text_search: 'FULL TEXT', full_text_search: 'FULL TEXT',
hybrid_search: 'HYBRID', hybrid_search: 'HYBRID',
invertedIndex: 'INVERTED',
}, },
mixtureHighQualityAndEconomicTip: 'The Rerank model is required for mixture of high quality and economical knowledge bases.', mixtureHighQualityAndEconomicTip: 'The Rerank model is required for mixture of high quality and economical knowledge bases.',
inconsistentEmbeddingModelTip: 'The Rerank model is required if the Embedding models of the selected knowledge bases are inconsistent.', inconsistentEmbeddingModelTip: 'The Rerank model is required if the Embedding models of the selected knowledge bases are inconsistent.',
@ -67,7 +68,8 @@ const translation = {
semantic: 'Semantic', semantic: 'Semantic',
keyword: 'Keyword', keyword: 'Keyword',
}, },
nTo1RetrievalLegacy: 'According to the optimization and upgrade of the retrieval strategy, N-to-1 retrieval will be officially deprecated in September. Until then you can still use it normally.', 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',
} }
export default translation export default translation

View File

@ -53,6 +53,7 @@ const translation = {
semantic_search: '向量检索', semantic_search: '向量检索',
full_text_search: '全文检索', full_text_search: '全文检索',
hybrid_search: '混合检索', hybrid_search: '混合检索',
invertedIndex: '倒排索引',
}, },
mixtureHighQualityAndEconomicTip: '混合使用高质量和经济型知识库需要配置 Rerank 模型。', mixtureHighQualityAndEconomicTip: '混合使用高质量和经济型知识库需要配置 Rerank 模型。',
inconsistentEmbeddingModelTip: '当所选知识库配置的 Embedding 模型不一致时,需要配置 Rerank 模型。', inconsistentEmbeddingModelTip: '当所选知识库配置的 Embedding 模型不一致时,需要配置 Rerank 模型。',
@ -67,7 +68,8 @@ const translation = {
semantic: '语义', semantic: '语义',
keyword: '关键词', keyword: '关键词',
}, },
nTo1RetrievalLegacy: '为了对检索策略进行优化和升级N 选 1 检索功能将于九月份正式被优化。在此之前,您仍然可以正常使用该功能。', nTo1RetrievalLegacy: '9 月 1 日起我们将不再提供此能力,推荐使用最新的多路召回获得更好的检索效果。',
nTo1RetrievalLegacyLink: '了解更多',
} }
export default translation export default translation