mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-08-03 18:00:39 +08:00
Fix: Creating Knowledge Base Support Enter Key (#7258)
### What problem does this PR solve? [https://github.com/infiniflow/ragflow/issues/7180](https://github.com/infiniflow/ragflow/issues/7180) When creating a knowledge base, support the enter key ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
parent
3052006ba8
commit
3da8776a3c
@ -142,6 +142,18 @@ const ChatConfigurationModal = ({
|
|||||||
}
|
}
|
||||||
}, [initialDialog, form, visible, modelId]);
|
}, [initialDialog, form, visible, modelId]);
|
||||||
|
|
||||||
|
const handleKeyDown = (e: React.KeyboardEvent) => {
|
||||||
|
// Allow Enter in textareas
|
||||||
|
if (e.target instanceof HTMLTextAreaElement) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.key === 'Enter' && !e.shiftKey) {
|
||||||
|
e.preventDefault();
|
||||||
|
handleOk();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
title={title}
|
title={title}
|
||||||
@ -171,6 +183,7 @@ const ChatConfigurationModal = ({
|
|||||||
style={{ maxWidth: 600 }}
|
style={{ maxWidth: 600 }}
|
||||||
validateMessages={validateMessages}
|
validateMessages={validateMessages}
|
||||||
colon={false}
|
colon={false}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
>
|
>
|
||||||
{Object.entries(segmentedMap).map(([key, Element]) => (
|
{Object.entries(segmentedMap).map(([key, Element]) => (
|
||||||
<Element
|
<Element
|
||||||
|
@ -22,6 +22,12 @@ const CreateAgentModal = ({ visible, hideModal, loading, onOk }: IProps) => {
|
|||||||
return onOk(ret.name);
|
return onOk(ret.name);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleKeyDown = (e: React.KeyboardEvent) => {
|
||||||
|
if (e.key === 'Enter' && !e.shiftKey) {
|
||||||
|
handleOk();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
title={t('createGraph', { keyPrefix: 'flow' })}
|
title={t('createGraph', { keyPrefix: 'flow' })}
|
||||||
@ -44,7 +50,7 @@ const CreateAgentModal = ({ visible, hideModal, loading, onOk }: IProps) => {
|
|||||||
name="name"
|
name="name"
|
||||||
rules={[{ required: true, message: t('namePlaceholder') }]}
|
rules={[{ required: true, message: t('namePlaceholder') }]}
|
||||||
>
|
>
|
||||||
<Input />
|
<Input onKeyDown={handleKeyDown} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Form>
|
</Form>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
@ -23,10 +23,15 @@ const KnowledgeCreatingModal = ({
|
|||||||
|
|
||||||
const handleOk = async () => {
|
const handleOk = async () => {
|
||||||
const ret = await form.validateFields();
|
const ret = await form.validateFields();
|
||||||
|
|
||||||
onOk(ret.name);
|
onOk(ret.name);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleKeyDown = async (e) => {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
await handleOk();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
title={t('createKnowledgeBase')}
|
title={t('createKnowledgeBase')}
|
||||||
@ -48,7 +53,7 @@ const KnowledgeCreatingModal = ({
|
|||||||
name="name"
|
name="name"
|
||||||
rules={[{ required: true, message: t('namePlaceholder') }]}
|
rules={[{ required: true, message: t('namePlaceholder') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('namePlaceholder')} />
|
<Input placeholder={t('namePlaceholder')} onKeyDown={handleKeyDown} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Form>
|
</Form>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
@ -37,6 +37,12 @@ const TencentCloudModal = ({
|
|||||||
onOk?.(data);
|
onOk?.(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleKeyDown = async (e: React.KeyboardEvent) => {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
await handleOk();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
title={t('addLlmTitle', { name: llmFactory })}
|
title={t('addLlmTitle', { name: llmFactory })}
|
||||||
@ -60,13 +66,7 @@ const TencentCloudModal = ({
|
|||||||
}}
|
}}
|
||||||
confirmLoading={loading}
|
confirmLoading={loading}
|
||||||
>
|
>
|
||||||
<Form
|
<Form>
|
||||||
name="basic"
|
|
||||||
style={{ maxWidth: 600 }}
|
|
||||||
autoComplete="off"
|
|
||||||
layout={'vertical'}
|
|
||||||
form={form}
|
|
||||||
>
|
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('modelType')}
|
label={t('modelType')}
|
||||||
name="model_type"
|
name="model_type"
|
||||||
@ -113,14 +113,20 @@ const TencentCloudModal = ({
|
|||||||
name="TencentCloud_sid"
|
name="TencentCloud_sid"
|
||||||
rules={[{ required: true, message: t('TencentCloudSIDMessage') }]}
|
rules={[{ required: true, message: t('TencentCloudSIDMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('TencentCloudSIDMessage')} />
|
<Input
|
||||||
|
placeholder={t('TencentCloudSIDMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('addTencentCloudSK')}
|
label={t('addTencentCloudSK')}
|
||||||
name="TencentCloud_sk"
|
name="TencentCloud_sk"
|
||||||
rules={[{ required: true, message: t('TencentCloudSKMessage') }]}
|
rules={[{ required: true, message: t('TencentCloudSKMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('TencentCloudSKMessage')} />
|
<Input
|
||||||
|
placeholder={t('TencentCloudSKMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Form>
|
</Form>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
@ -38,6 +38,12 @@ const ApiKeyModal = ({
|
|||||||
return onOk(ret);
|
return onOk(ret);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleKeyDown = async (e) => {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
await handleOk();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (visible) {
|
if (visible) {
|
||||||
form.setFieldValue('api_key', initialValue);
|
form.setFieldValue('api_key', initialValue);
|
||||||
@ -67,7 +73,7 @@ const ApiKeyModal = ({
|
|||||||
tooltip={t('apiKeyTip')}
|
tooltip={t('apiKeyTip')}
|
||||||
rules={[{ required: true, message: t('apiKeyMessage') }]}
|
rules={[{ required: true, message: t('apiKeyMessage') }]}
|
||||||
>
|
>
|
||||||
<Input />
|
<Input onKeyDown={handleKeyDown} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
{modelsWithBaseUrl.some((x) => x === llmFactory) && (
|
{modelsWithBaseUrl.some((x) => x === llmFactory) && (
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
@ -75,7 +81,10 @@ const ApiKeyModal = ({
|
|||||||
name="base_url"
|
name="base_url"
|
||||||
tooltip={t('baseUrlTip')}
|
tooltip={t('baseUrlTip')}
|
||||||
>
|
>
|
||||||
<Input placeholder="https://api.openai.com/v1" />
|
<Input
|
||||||
|
placeholder="https://api.openai.com/v1"
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
)}
|
)}
|
||||||
{llmFactory?.toLowerCase() === 'Minimax'.toLowerCase() && (
|
{llmFactory?.toLowerCase() === 'Minimax'.toLowerCase() && (
|
||||||
|
@ -49,6 +49,12 @@ const AzureOpenAIModal = ({
|
|||||||
const getOptions = (factory: string) => {
|
const getOptions = (factory: string) => {
|
||||||
return optionsMap.Default;
|
return optionsMap.Default;
|
||||||
};
|
};
|
||||||
|
const handleKeyDown = async (e: React.KeyboardEvent) => {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
await handleOk();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
title={t('addLlmTitle', { name: llmFactory })}
|
title={t('addLlmTitle', { name: llmFactory })}
|
||||||
@ -83,14 +89,17 @@ const AzureOpenAIModal = ({
|
|||||||
name="api_base"
|
name="api_base"
|
||||||
rules={[{ required: true, message: t('baseUrlNameMessage') }]}
|
rules={[{ required: true, message: t('baseUrlNameMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('baseUrlNameMessage')} />
|
<Input
|
||||||
|
placeholder={t('baseUrlNameMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('apiKey')}
|
label={t('apiKey')}
|
||||||
name="api_key"
|
name="api_key"
|
||||||
rules={[{ required: false, message: t('apiKeyMessage') }]}
|
rules={[{ required: false, message: t('apiKeyMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('apiKeyMessage')} />
|
<Input placeholder={t('apiKeyMessage')} onKeyDown={handleKeyDown} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('modelName')}
|
label={t('modelName')}
|
||||||
@ -98,7 +107,10 @@ const AzureOpenAIModal = ({
|
|||||||
initialValue="gpt-3.5-turbo"
|
initialValue="gpt-3.5-turbo"
|
||||||
rules={[{ required: true, message: t('modelNameMessage') }]}
|
rules={[{ required: true, message: t('modelNameMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('modelNameMessage')} />
|
<Input
|
||||||
|
placeholder={t('modelNameMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('apiVersion')}
|
label={t('apiVersion')}
|
||||||
@ -106,7 +118,10 @@ const AzureOpenAIModal = ({
|
|||||||
initialValue="2024-02-01"
|
initialValue="2024-02-01"
|
||||||
rules={[{ required: false, message: t('apiVersionMessage') }]}
|
rules={[{ required: false, message: t('apiVersionMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('apiVersionMessage')} />
|
<Input
|
||||||
|
placeholder={t('apiVersionMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('maxTokens')}
|
label={t('maxTokens')}
|
||||||
|
@ -33,6 +33,12 @@ const GoogleModal = ({
|
|||||||
onOk?.(data);
|
onOk?.(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleKeyDown = async (e: React.KeyboardEvent) => {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
await handleOk();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
title={t('addLlmTitle', { name: llmFactory })}
|
title={t('addLlmTitle', { name: llmFactory })}
|
||||||
@ -41,13 +47,7 @@ const GoogleModal = ({
|
|||||||
onCancel={hideModal}
|
onCancel={hideModal}
|
||||||
okButtonProps={{ loading }}
|
okButtonProps={{ loading }}
|
||||||
>
|
>
|
||||||
<Form
|
<Form>
|
||||||
name="basic"
|
|
||||||
style={{ maxWidth: 600 }}
|
|
||||||
autoComplete="off"
|
|
||||||
layout={'vertical'}
|
|
||||||
form={form}
|
|
||||||
>
|
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('modelType')}
|
label={t('modelType')}
|
||||||
name="model_type"
|
name="model_type"
|
||||||
@ -63,21 +63,30 @@ const GoogleModal = ({
|
|||||||
name="llm_name"
|
name="llm_name"
|
||||||
rules={[{ required: true, message: t('GoogleModelIDMessage') }]}
|
rules={[{ required: true, message: t('GoogleModelIDMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('GoogleModelIDMessage')} />
|
<Input
|
||||||
|
placeholder={t('GoogleModelIDMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('addGoogleProjectID')}
|
label={t('addGoogleProjectID')}
|
||||||
name="google_project_id"
|
name="google_project_id"
|
||||||
rules={[{ required: true, message: t('GoogleProjectIDMessage') }]}
|
rules={[{ required: true, message: t('GoogleProjectIDMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('GoogleProjectIDMessage')} />
|
<Input
|
||||||
|
placeholder={t('GoogleProjectIDMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('addGoogleRegion')}
|
label={t('addGoogleRegion')}
|
||||||
name="google_region"
|
name="google_region"
|
||||||
rules={[{ required: true, message: t('GoogleRegionMessage') }]}
|
rules={[{ required: true, message: t('GoogleRegionMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('GoogleRegionMessage')} />
|
<Input
|
||||||
|
placeholder={t('GoogleRegionMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('addGoogleServiceAccountKey')}
|
label={t('addGoogleServiceAccountKey')}
|
||||||
@ -86,7 +95,10 @@ const GoogleModal = ({
|
|||||||
{ required: true, message: t('GoogleServiceAccountKeyMessage') },
|
{ required: true, message: t('GoogleServiceAccountKeyMessage') },
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('GoogleServiceAccountKeyMessage')} />
|
<Input
|
||||||
|
placeholder={t('GoogleServiceAccountKeyMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('maxTokens')}
|
label={t('maxTokens')}
|
||||||
|
@ -40,6 +40,12 @@ const HunyuanModal = ({
|
|||||||
onOk?.(data);
|
onOk?.(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleKeyDown = async (e: React.KeyboardEvent) => {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
await handleOk();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
title={t('addLlmTitle', { name: llmFactory })}
|
title={t('addLlmTitle', { name: llmFactory })}
|
||||||
@ -61,14 +67,20 @@ const HunyuanModal = ({
|
|||||||
name="hunyuan_sid"
|
name="hunyuan_sid"
|
||||||
rules={[{ required: true, message: t('HunyuanSIDMessage') }]}
|
rules={[{ required: true, message: t('HunyuanSIDMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('HunyuanSIDMessage')} />
|
<Input
|
||||||
|
placeholder={t('HunyuanSIDMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('addHunyuanSK')}
|
label={t('addHunyuanSK')}
|
||||||
name="hunyuan_sk"
|
name="hunyuan_sk"
|
||||||
rules={[{ required: true, message: t('HunyuanSKMessage') }]}
|
rules={[{ required: true, message: t('HunyuanSKMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('HunyuanSKMessage')} />
|
<Input
|
||||||
|
placeholder={t('HunyuanSKMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Form>
|
</Form>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
@ -50,6 +50,12 @@ const OllamaModal = ({
|
|||||||
|
|
||||||
const { t } = useTranslate('setting');
|
const { t } = useTranslate('setting');
|
||||||
|
|
||||||
|
const handleKeyDown = async (e: React.KeyboardEvent) => {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
await handleOk();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const handleOk = async () => {
|
const handleOk = async () => {
|
||||||
const values = await form.validateFields();
|
const values = await form.validateFields();
|
||||||
const modelType =
|
const modelType =
|
||||||
@ -146,21 +152,27 @@ const OllamaModal = ({
|
|||||||
name="llm_name"
|
name="llm_name"
|
||||||
rules={[{ required: true, message: t('modelNameMessage') }]}
|
rules={[{ required: true, message: t('modelNameMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('modelNameMessage')} />
|
<Input
|
||||||
|
placeholder={t('modelNameMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('addLlmBaseUrl')}
|
label={t('addLlmBaseUrl')}
|
||||||
name="api_base"
|
name="api_base"
|
||||||
rules={[{ required: true, message: t('baseUrlNameMessage') }]}
|
rules={[{ required: true, message: t('baseUrlNameMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('baseUrlNameMessage')} />
|
<Input
|
||||||
|
placeholder={t('baseUrlNameMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('apiKey')}
|
label={t('apiKey')}
|
||||||
name="api_key"
|
name="api_key"
|
||||||
rules={[{ required: false, message: t('apiKeyMessage') }]}
|
rules={[{ required: false, message: t('apiKeyMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('apiKeyMessage')} />
|
<Input placeholder={t('apiKeyMessage')} onKeyDown={handleKeyDown} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('maxTokens')}
|
label={t('maxTokens')}
|
||||||
@ -184,6 +196,7 @@ const OllamaModal = ({
|
|||||||
<InputNumber
|
<InputNumber
|
||||||
placeholder={t('maxTokensTip')}
|
placeholder={t('maxTokensTip')}
|
||||||
style={{ width: '100%' }}
|
style={{ width: '100%' }}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
/>
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
||||||
|
@ -43,6 +43,12 @@ const SparkModal = ({
|
|||||||
onOk?.(data);
|
onOk?.(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleKeyDown = async (e: React.KeyboardEvent) => {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
await handleOk();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
title={t('addLlmTitle', { name: llmFactory })}
|
title={t('addLlmTitle', { name: llmFactory })}
|
||||||
@ -52,13 +58,7 @@ const SparkModal = ({
|
|||||||
okButtonProps={{ loading }}
|
okButtonProps={{ loading }}
|
||||||
confirmLoading={loading}
|
confirmLoading={loading}
|
||||||
>
|
>
|
||||||
<Form
|
<Form>
|
||||||
name="basic"
|
|
||||||
style={{ maxWidth: 600 }}
|
|
||||||
autoComplete="off"
|
|
||||||
layout={'vertical'}
|
|
||||||
form={form}
|
|
||||||
>
|
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('modelType')}
|
label={t('modelType')}
|
||||||
name="model_type"
|
name="model_type"
|
||||||
@ -75,22 +75,20 @@ const SparkModal = ({
|
|||||||
name="llm_name"
|
name="llm_name"
|
||||||
rules={[{ required: true, message: t('SparkModelNameMessage') }]}
|
rules={[{ required: true, message: t('SparkModelNameMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('modelNameMessage')} />
|
<Input
|
||||||
|
placeholder={t('modelNameMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item noStyle dependencies={['model_type']}>
|
<Form.Item<FieldType>
|
||||||
{({ getFieldValue }) =>
|
label={t('addSparkAPIPassword')}
|
||||||
getFieldValue('model_type') === 'chat' && (
|
name="spark_api_password"
|
||||||
<Form.Item<FieldType>
|
rules={[{ required: true, message: t('SparkAPIPasswordMessage') }]}
|
||||||
label={t('addSparkAPIPassword')}
|
>
|
||||||
name="spark_api_password"
|
<Input
|
||||||
rules={[
|
placeholder={t('SparkAPIPasswordMessage')}
|
||||||
{ required: true, message: t('SparkAPIPasswordMessage') },
|
onKeyDown={handleKeyDown}
|
||||||
]}
|
/>
|
||||||
>
|
|
||||||
<Input placeholder={t('SparkAPIPasswordMessage')} />
|
|
||||||
</Form.Item>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item noStyle dependencies={['model_type']}>
|
<Form.Item noStyle dependencies={['model_type']}>
|
||||||
{({ getFieldValue }) =>
|
{({ getFieldValue }) =>
|
||||||
|
@ -41,6 +41,12 @@ const YiyanModal = ({
|
|||||||
onOk?.(data);
|
onOk?.(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleKeyDown = async (e: React.KeyboardEvent) => {
|
||||||
|
if (e.key === 'Enter') {
|
||||||
|
await handleOk();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
title={t('addLlmTitle', { name: llmFactory })}
|
title={t('addLlmTitle', { name: llmFactory })}
|
||||||
@ -74,21 +80,24 @@ const YiyanModal = ({
|
|||||||
name="llm_name"
|
name="llm_name"
|
||||||
rules={[{ required: true, message: t('yiyanModelNameMessage') }]}
|
rules={[{ required: true, message: t('yiyanModelNameMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('yiyanModelNameMessage')} />
|
<Input
|
||||||
|
placeholder={t('yiyanModelNameMessage')}
|
||||||
|
onKeyDown={handleKeyDown}
|
||||||
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('addyiyanAK')}
|
label={t('addyiyanAK')}
|
||||||
name="yiyan_ak"
|
name="yiyan_ak"
|
||||||
rules={[{ required: true, message: t('yiyanAKMessage') }]}
|
rules={[{ required: true, message: t('yiyanAKMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('yiyanAKMessage')} />
|
<Input placeholder={t('yiyanAKMessage')} onKeyDown={handleKeyDown} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('addyiyanSK')}
|
label={t('addyiyanSK')}
|
||||||
name="yiyan_sk"
|
name="yiyan_sk"
|
||||||
rules={[{ required: true, message: t('yiyanSKMessage') }]}
|
rules={[{ required: true, message: t('yiyanSKMessage') }]}
|
||||||
>
|
>
|
||||||
<Input placeholder={t('yiyanSKMessage')} />
|
<Input placeholder={t('yiyanSKMessage')} onKeyDown={handleKeyDown} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item<FieldType>
|
<Form.Item<FieldType>
|
||||||
label={t('maxTokens')}
|
label={t('maxTokens')}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user