'use client' import type { FC } from 'react' import React from 'react' import { useTranslation } from 'react-i18next' import AppIcon from '../../base/app-icon' import Effect from '../../base/effect' import { useDatasetDetailContextWithSelector } from '@/context/dataset-detail' import type { DataSet } from '@/models/datasets' import { DOC_FORM_TEXT } from '@/models/datasets' import { useKnowledge } from '@/hooks/use-knowledge' import cn from '@/utils/classnames' import Dropdown from './dropdown' type DatasetInfoProps = { expand: boolean } const DatasetInfo: FC = ({ expand, }) => { const { t } = useTranslation() const dataset = useDatasetDetailContextWithSelector(state => state.dataset) as DataSet const iconInfo = dataset.icon_info || { icon: '📙', icon_type: 'emoji', icon_background: '#FFF4ED', icon_url: '', } const isExternalProvider = dataset.provider === 'external' const { formatIndexingTechniqueAndMethod } = useKnowledge() return (
{expand && ( <>
{dataset.name}
{isExternalProvider && t('dataset.externalTag')} {!isExternalProvider && dataset.doc_form && dataset.indexing_technique && (
{t(`dataset.chunkingMode.${DOC_FORM_TEXT[dataset.doc_form]}`)} {formatIndexingTechniqueAndMethod(dataset.indexing_technique, dataset.retrieval_model_dict?.search_method)}
)}
{!!dataset.description && (

{dataset.description}

)}
)} {!expand && (
)}
) } export default React.memo(DatasetInfo)