import { type FC, useEffect, useState } from 'react'; import { Form, App, Button, Skeleton } from 'antd'; import { useTranslation } from 'react-i18next'; import type { SpaceConfigData } from './types' import { getWorkspaceModels, updateWorkspaceModels } from '@/api/workspaces' import { getModelListUrl } from '@/api/models' import CustomSelect from '@/components/CustomSelect' import RbAlert from '@/components/RbAlert'; const SpaceConfig: FC = () => { const { t } = useTranslation(); const { message } = App.useApp(); const [pageLoading, setPageLoding] = useState(false) const [form] = Form.useForm(); const [loading, setLoading] = useState(false) const values = Form.useWatch([], form); useEffect(() => { setPageLoding(true) getWorkspaceModels().then((res) => { const { llm, embedding, rerank } = res as SpaceConfigData form.setFieldsValue({ llm, embedding, rerank }) }) .finally(() => { setPageLoding(false) }) }, []) // 封装保存方法,添加提交逻辑 const handleSave = () => { form .validateFields() .then(() => { setLoading(true) updateWorkspaceModels(values) .then(() => { setLoading(false) message.success(t('common.updateSuccess')) }) .catch(() => { setLoading(false) }); }) .catch((err) => { console.log('err', err) }); } return (
{pageLoading ? :
{t('space.configAlert')}
}
); }; export default SpaceConfig;