import { Button, Col, Form, Input, Modal, Row, Spin, Tabs } from 'antd'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { apiInterceptors, getArguments, saveArguments } from '@/client/api'; import { IArguments, ISpace } from '@/types/knowledge'; import { AlertFilled, BookOutlined, FileSearchOutlined } from '@ant-design/icons'; const { TextArea } = Input; interface IProps { space: ISpace; argumentsShow: boolean; setArgumentsShow: (argumentsShow: boolean) => void; } export default function ArgumentsModal({ space, argumentsShow, setArgumentsShow }: IProps) { const { t } = useTranslation(); const [newSpaceArguments, setNewSpaceArguments] = useState(); const [spinning, setSpinning] = useState(false); const fetchArguments = async () => { const [_, data] = await apiInterceptors(getArguments(space.name)); setNewSpaceArguments(data); }; useEffect(() => { fetchArguments(); }, [space.name]); const renderEmbeddingForm = () => { return ( tooltip={t(`the_top_k_vectors`)} rules={[{ required: true }]} label={t('topk')} name={['embedding', 'topk']} > tooltip={t(`Set_a_threshold_score`)} rules={[{ required: true }]} label={t('recall_score')} name={['embedding', 'recall_score']} > tooltip={t(`recall_type`)} rules={[{ required: true }]} label={t('recall_type')} name={['embedding', 'recall_type']} > tooltip={t(`A_model_used`)} rules={[{ required: true }]} label={t('model')} name={['embedding', 'model']} > tooltip={t(`The_size_of_the_data_chunks`)} rules={[{ required: true }]} label={t('chunk_size')} name={['embedding', 'chunk_size']} > tooltip={t(`The_amount_of_overlap`)} rules={[{ required: true }]} label={t('chunk_overlap')} name={['embedding', 'chunk_overlap']} > ); }; const renderPromptForm = () => { return ( <> tooltip={t(`A_contextual_parameter`)} label={t('scene')} name={['prompt', 'scene']}>