2024-09-30 07:38:43 +00:00
|
|
|
'use client'
|
|
|
|
|
|
2025-12-23 08:58:55 +00:00
|
|
|
import type { CreateKnowledgeBaseReq } from '@/app/components/datasets/external-knowledge-base/create/declarations'
|
2025-12-23 10:02:10 +00:00
|
|
|
import * as React from 'react'
|
|
|
|
|
import { useState } from 'react'
|
2026-03-20 06:29:40 +00:00
|
|
|
import { useTranslation } from 'react-i18next'
|
2025-12-23 08:58:55 +00:00
|
|
|
import { trackEvent } from '@/app/components/base/amplitude'
|
2026-03-18 08:53:55 +00:00
|
|
|
import { toast } from '@/app/components/base/ui/toast'
|
2024-09-30 07:38:43 +00:00
|
|
|
import ExternalKnowledgeBaseCreate from '@/app/components/datasets/external-knowledge-base/create'
|
2026-03-18 04:57:03 +00:00
|
|
|
import { useRouter } from '@/next/navigation'
|
2024-09-30 07:38:43 +00:00
|
|
|
import { createExternalKnowledgeBase } from '@/service/datasets'
|
|
|
|
|
|
|
|
|
|
const ExternalKnowledgeBaseConnector = () => {
|
|
|
|
|
const [loading, setLoading] = useState(false)
|
|
|
|
|
const router = useRouter()
|
2026-03-20 06:29:40 +00:00
|
|
|
const { t } = useTranslation()
|
2024-09-30 07:38:43 +00:00
|
|
|
|
|
|
|
|
const handleConnect = async (formValue: CreateKnowledgeBaseReq) => {
|
|
|
|
|
try {
|
|
|
|
|
setLoading(true)
|
|
|
|
|
const result = await createExternalKnowledgeBase({ body: formValue })
|
|
|
|
|
if (result && result.id) {
|
2026-03-20 08:02:22 +00:00
|
|
|
toast.success(t('externalKnowledgeForm.connectedSuccess', { ns: 'dataset' }))
|
2025-12-15 07:25:10 +00:00
|
|
|
trackEvent('create_external_knowledge_base', {
|
|
|
|
|
provider: formValue.provider,
|
|
|
|
|
name: formValue.name,
|
|
|
|
|
})
|
2024-09-30 07:38:43 +00:00
|
|
|
router.back()
|
|
|
|
|
}
|
|
|
|
|
else { throw new Error('Failed to create external knowledge base') }
|
|
|
|
|
}
|
|
|
|
|
catch (error) {
|
|
|
|
|
console.error('Error creating external knowledge base:', error)
|
2026-03-20 08:02:22 +00:00
|
|
|
toast.error(t('externalKnowledgeForm.connectedFailed', { ns: 'dataset' }))
|
2024-09-30 07:38:43 +00:00
|
|
|
}
|
|
|
|
|
setLoading(false)
|
|
|
|
|
}
|
|
|
|
|
return (
|
|
|
|
|
<ExternalKnowledgeBaseCreate onConnect={handleConnect} loading={loading} />
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default ExternalKnowledgeBaseConnector
|