'use client' import type { CreateKnowledgeBaseReq } from './declarations' import { Button } from '@langgenius/dify-ui/button' import { RiArrowLeftLine, RiArrowRightLine } from '@remixicon/react' import { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' import Divider from '@/app/components/base/divider' import { useDocLink } from '@/context/i18n' import { useRouter } from '@/next/navigation' import ExternalApiSelection from './ExternalApiSelection' import InfoPanel from './InfoPanel' import KnowledgeBaseInfo from './KnowledgeBaseInfo' import RetrievalSettings from './RetrievalSettings' type ExternalKnowledgeBaseCreateProps = { onConnect: (formValue: CreateKnowledgeBaseReq) => void loading: boolean } const ExternalKnowledgeBaseCreate: React.FC = ({ onConnect, loading, }) => { const { t } = useTranslation() const docLink = useDocLink() const router = useRouter() const [formData, setFormData] = useState({ name: '', description: '', external_knowledge_api_id: '', external_knowledge_id: '', external_retrieval_model: { top_k: 4, score_threshold: 0.5, score_threshold_enabled: false, }, provider: 'external', }) const navBackHandle = useCallback(() => { router.replace('/datasets') }, [router]) const handleFormChange = (newData: CreateKnowledgeBaseReq) => { setFormData(newData) } const isFormValid = formData.name.trim() !== '' && formData.external_knowledge_api_id !== '' && formData.external_knowledge_id !== '' && formData.external_retrieval_model.top_k !== undefined && formData.external_retrieval_model.score_threshold !== undefined return (
{t(($) => $.connectDataset, { ns: 'dataset' })}

{t(($) => $['connectHelper.helper1'], { ns: 'dataset' })} {t(($) => $['connectHelper.helper2'], { ns: 'dataset' })} {t(($) => $['connectHelper.helper3'], { ns: 'dataset' })} {t(($) => $['connectHelper.helper4'], { ns: 'dataset' })} {t(($) => $['connectHelper.helper5'], { ns: 'dataset' })}

handleFormChange({ ...formData, ...data, }) } /> handleFormChange({ ...formData, ...data, }) } /> handleFormChange({ ...formData, external_retrieval_model: { ...formData.external_retrieval_model, ...data, }, }) } />
) } export default ExternalKnowledgeBaseCreate