'use client' import type { FC } from 'react' import React, { useMemo } 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 isPipelinePublished = useMemo(() => { return dataset.runtime_mode === 'rag_pipeline' && dataset.is_published }, [dataset.runtime_mode, dataset.is_published]) const { formatIndexingTechniqueAndMethod } = useKnowledge() return (
{expand && ( )}
{expand && (
)}
{!expand && (
)} {expand && (
{dataset.name}
{isExternalProvider && t('dataset.externalTag')} {!isExternalProvider && isPipelinePublished && 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}

)}
)}
) } export default React.memo(DatasetInfo)