'use client' import type { CreateKnowledgeBaseReq } from './declarations' import { RiArrowLeftLine, RiArrowRightLine } from '@remixicon/react' import { useRouter } from 'next/navigation' import { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' import Divider from '@/app/components/base/divider' import { useDocLink } from '@/context/i18n' 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