mirror of
https://github.com/langgenius/dify.git
synced 2026-04-28 03:36:36 +08:00
chore: hiting test header ui
This commit is contained in:
parent
6da7efaa1d
commit
e418cf30f5
@ -2,12 +2,11 @@
|
|||||||
import type { FC } from 'react'
|
import type { FC } from 'react'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
|
import Image from 'next/image'
|
||||||
|
import { retrievalIcon } from '../../create/icons'
|
||||||
import type { RetrievalConfig } from '@/types/app'
|
import type { RetrievalConfig } from '@/types/app'
|
||||||
import { RETRIEVE_METHOD } from '@/types/app'
|
import { RETRIEVE_METHOD } from '@/types/app'
|
||||||
import RadioCard from '@/app/components/base/radio-card'
|
import RadioCard from '@/app/components/base/radio-card'
|
||||||
import { HighPriority } from '@/app/components/base/icons/src/vender/solid/arrows'
|
|
||||||
import { PatternRecognition, Semantic } from '@/app/components/base/icons/src/vender/solid/development'
|
|
||||||
import { FileSearch02 } from '@/app/components/base/icons/src/vender/solid/files'
|
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
value: RetrievalConfig
|
value: RetrievalConfig
|
||||||
@ -15,11 +14,12 @@ type Props = {
|
|||||||
|
|
||||||
export const getIcon = (type: RETRIEVE_METHOD) => {
|
export const getIcon = (type: RETRIEVE_METHOD) => {
|
||||||
return ({
|
return ({
|
||||||
[RETRIEVE_METHOD.semantic]: Semantic,
|
[RETRIEVE_METHOD.semantic]: retrievalIcon.vector,
|
||||||
[RETRIEVE_METHOD.fullText]: FileSearch02,
|
[RETRIEVE_METHOD.fullText]: retrievalIcon.fullText,
|
||||||
[RETRIEVE_METHOD.hybrid]: PatternRecognition,
|
[RETRIEVE_METHOD.hybrid]: retrievalIcon.hybrid,
|
||||||
[RETRIEVE_METHOD.invertedIndex]: HighPriority,
|
[RETRIEVE_METHOD.invertedIndex]: retrievalIcon.vector,
|
||||||
})[type] || FileSearch02
|
[RETRIEVE_METHOD.keywordSearch]: retrievalIcon.vector,
|
||||||
|
})[type] || retrievalIcon.vector
|
||||||
}
|
}
|
||||||
|
|
||||||
const EconomicalRetrievalMethodConfig: FC<Props> = ({
|
const EconomicalRetrievalMethodConfig: FC<Props> = ({
|
||||||
@ -28,11 +28,11 @@ const EconomicalRetrievalMethodConfig: FC<Props> = ({
|
|||||||
}) => {
|
}) => {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
const type = value.search_method
|
const type = value.search_method
|
||||||
const Icon = getIcon(type)
|
const icon = <Image className='size-3.5 text-util-colors-purple-purple-600' src={getIcon(type)} alt='' />
|
||||||
return (
|
return (
|
||||||
<div className='space-y-2'>
|
<div className='space-y-2'>
|
||||||
<RadioCard
|
<RadioCard
|
||||||
icon={<Icon className='w-4 h-4 text-util-colors-purple-purple-600' />}
|
icon={icon}
|
||||||
title={t(`dataset.retrieval.${type}.title`)}
|
title={t(`dataset.retrieval.${type}.title`)}
|
||||||
description={t(`dataset.retrieval.${type}.description`)}
|
description={t(`dataset.retrieval.${type}.description`)}
|
||||||
noRadio
|
noRadio
|
||||||
|
|||||||
@ -29,10 +29,6 @@
|
|||||||
background-image: url(./assets/plugin.svg);
|
background-image: url(./assets/plugin.svg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrapper {
|
|
||||||
@apply relative border border-primary-600 rounded-xl;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cardWrapper {
|
.cardWrapper {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fill, minmax(284px, auto));
|
grid-template-columns: repeat(auto-fill, minmax(284px, auto));
|
||||||
|
|||||||
@ -3,10 +3,10 @@ import { useTranslation } from 'react-i18next'
|
|||||||
import {
|
import {
|
||||||
RiEqualizer2Line,
|
RiEqualizer2Line,
|
||||||
} from '@remixicon/react'
|
} from '@remixicon/react'
|
||||||
|
import Image from 'next/image'
|
||||||
import Button from '../../base/button'
|
import Button from '../../base/button'
|
||||||
import Tag from '../../base/tag'
|
import Tag from '../../base/tag'
|
||||||
import { getIcon } from '../common/retrieval-method-info'
|
import { getIcon } from '../common/retrieval-method-info'
|
||||||
import s from './style.module.css'
|
|
||||||
import ModifyExternalRetrievalModal from './modify-external-retrieval-modal'
|
import ModifyExternalRetrievalModal from './modify-external-retrieval-modal'
|
||||||
import Tooltip from '@/app/components/base/tooltip'
|
import Tooltip from '@/app/components/base/tooltip'
|
||||||
import cn from '@/utils/classnames'
|
import cn from '@/utils/classnames'
|
||||||
@ -14,6 +14,7 @@ import type { ExternalKnowledgeBaseHitTestingResponse, HitTestingResponse } from
|
|||||||
import { externalKnowledgeBaseHitTesting, hitTesting } from '@/service/datasets'
|
import { externalKnowledgeBaseHitTesting, hitTesting } from '@/service/datasets'
|
||||||
import { asyncRunSafe } from '@/utils'
|
import { asyncRunSafe } from '@/utils'
|
||||||
import { RETRIEVE_METHOD, type RetrievalConfig } from '@/types/app'
|
import { RETRIEVE_METHOD, type RetrievalConfig } from '@/types/app'
|
||||||
|
import promptS from '@/app/components/app/configuration/config-prompt/style.module.css'
|
||||||
|
|
||||||
type TextAreaWithButtonIProps = {
|
type TextAreaWithButtonIProps = {
|
||||||
datasetId: string
|
datasetId: string
|
||||||
@ -103,13 +104,13 @@ const TextAreaWithButton = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const retrievalMethod = isEconomy ? RETRIEVE_METHOD.invertedIndex : retrievalConfig.search_method
|
const retrievalMethod = isEconomy ? RETRIEVE_METHOD.invertedIndex : retrievalConfig.search_method
|
||||||
const Icon = getIcon(retrievalMethod)
|
const icon = <Image className='size-3.5 text-util-colors-purple-purple-600' src={getIcon(retrievalMethod)} alt='' />
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className={s.wrapper}>
|
<div className={cn('relative rounded-xl', promptS.gradientBorder)}>
|
||||||
<div className='relative pt-2 rounded-tl-xl rounded-tr-xl bg-[#EEF4FF]'>
|
<div className='relative pt-1.5 rounded-tl-xl rounded-tr-xl bg-background-section-burn'>
|
||||||
<div className="px-4 pb-2 flex justify-between h-8 items-center">
|
<div className="pl-4 pr-1.5 pb-1 flex justify-between h-8 items-center">
|
||||||
<span className="text-gray-800 font-semibold text-sm">
|
<span className="text-text-secondary font-semibold text-[13px] leading-4 uppercase">
|
||||||
{t('datasetHitTesting.input.title')}
|
{t('datasetHitTesting.input.title')}
|
||||||
</span>
|
</span>
|
||||||
{isExternal
|
{isExternal
|
||||||
@ -123,17 +124,14 @@ const TextAreaWithButton = ({
|
|||||||
<span className='text-components-button-secondary-text system-xs-medium'>{t('datasetHitTesting.settingTitle')}</span>
|
<span className='text-components-button-secondary-text system-xs-medium'>{t('datasetHitTesting.settingTitle')}</span>
|
||||||
</div>
|
</div>
|
||||||
</Button>
|
</Button>
|
||||||
: <Tooltip
|
: <div
|
||||||
popupContent={t('dataset.retrieval.changeRetrievalMethod')}
|
onClick={onClickRetrievalMethod}
|
||||||
|
className='flex px-1.5 h-7 items-center bg-components-button-secondary-bg hover:bg-components-button-secondary-bg-hover rounded-lg border-[0.5px] border-components-button-secondary-bg shadow-xs backdrop-blur-[5px] cursor-pointer space-x-0.5'
|
||||||
>
|
>
|
||||||
<div
|
{icon}
|
||||||
onClick={onClickRetrievalMethod}
|
<div className='text-text-secondary text-xs font-medium uppercase'>{t(`dataset.retrieval.${retrievalMethod}.title`)}</div>
|
||||||
className='flex px-2 h-7 items-center space-x-1 bg-white hover:bg-[#ECE9FE] rounded-md shadow-sm cursor-pointer text-[#6927DA]'
|
<RiEqualizer2Line className='size-4 text-components-menu-item-text'></RiEqualizer2Line>
|
||||||
>
|
</div>
|
||||||
<Icon className='w-3.5 h-3.5'></Icon>
|
|
||||||
<div className='text-xs font-medium'>{t(`dataset.retrieval.${retrievalMethod}.title`)}</div>
|
|
||||||
</div>
|
|
||||||
</Tooltip>
|
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user