import { IModalManagerChildrenProps } from '@/components/modal-manager'; import { useTranslate } from '@/hooks/common-hooks'; import { Form, Input, Modal } from 'antd'; import { useEffect } from 'react'; import { ApiKeyPostBody } from '../../interface'; interface IProps extends Omit { loading: boolean; initialValue: string; llmFactory: string; onOk: (postBody: ApiKeyPostBody) => void; showModal?(): void; } type FieldType = { api_key?: string; base_url?: string; group_id?: string; }; const modelsWithBaseUrl = ['OpenAI', 'Azure-OpenAI']; const ApiKeyModal = ({ visible, hideModal, llmFactory, loading, initialValue, onOk, }: IProps) => { const [form] = Form.useForm(); const { t } = useTranslate('setting'); const handleOk = async () => { const ret = await form.validateFields(); return onOk(ret); }; useEffect(() => { if (visible) { form.setFieldValue('api_key', initialValue); } }, [initialValue, form, visible]); return (
label={t('apiKey')} name="api_key" tooltip={t('apiKeyTip')} rules={[{ required: true, message: t('apiKeyMessage') }]} > {modelsWithBaseUrl.some((x) => x === llmFactory) && ( label={t('baseUrl')} name="base_url" tooltip={t('baseUrlTip')} > )} {llmFactory?.toLowerCase() === 'Minimax'.toLowerCase() && ( label={'Group ID'} name="group_id"> )}
); }; export default ApiKeyModal;