diff --git a/web/src/components/llm-select/index.tsx b/web/src/components/llm-select/index.tsx
index 4d730c80c..61d37b599 100644
--- a/web/src/components/llm-select/index.tsx
+++ b/web/src/components/llm-select/index.tsx
@@ -1,16 +1,30 @@
import { Popover, Select } from 'antd';
import LlmSettingItems from '../llm-setting-items';
-const LLMSelect = () => {
+interface IProps {
+ id?: string;
+ value?: string;
+ onChange?: (value: string) => void;
+}
+
+const LLMSelect = ({ id, value, onChange }: IProps) => {
const content = (
-
-
{}}>
+
+
);
return (
-
+
);
};
diff --git a/web/src/components/llm-setting-items/index.tsx b/web/src/components/llm-setting-items/index.tsx
index 398d1c4ca..8b88b8703 100644
--- a/web/src/components/llm-setting-items/index.tsx
+++ b/web/src/components/llm-setting-items/index.tsx
@@ -1,24 +1,38 @@
-import { LlmModelType, ModelVariableType } from '@/constants/knowledge';
+import {
+ LlmModelType,
+ ModelVariableType,
+ settledModelVariableMap,
+} from '@/constants/knowledge';
import { Divider, Flex, Form, InputNumber, Select, Slider, Switch } from 'antd';
import camelCase from 'lodash/camelCase';
import { useTranslate } from '@/hooks/commonHooks';
import { useSelectLlmOptionsByModelType } from '@/hooks/llmHooks';
-import { useMemo } from 'react';
+import { useCallback, useMemo } from 'react';
import styles from './index.less';
interface IProps {
prefix?: string;
- handleParametersChange(value: ModelVariableType): void;
+ formItemLayout?: any;
+ handleParametersChange?(value: ModelVariableType): void;
}
-const LlmSettingItems = ({ prefix, handleParametersChange }: IProps) => {
+const LlmSettingItems = ({ prefix, formItemLayout = {} }: IProps) => {
+ const form = Form.useFormInstance();
const { t } = useTranslate('chat');
const parameterOptions = Object.values(ModelVariableType).map((x) => ({
label: t(camelCase(x)),
value: x,
}));
+ const handleParametersChange = useCallback(
+ (value: ModelVariableType) => {
+ const variable = settledModelVariableMap[value];
+ form?.setFieldsValue(variable);
+ },
+ [form],
+ );
+
const memorizedPrefix = useMemo(() => (prefix ? [prefix] : []), [prefix]);
const modelOptions = useSelectLlmOptionsByModelType();
@@ -29,6 +43,7 @@ const LlmSettingItems = ({ prefix, handleParametersChange }: IProps) => {
label={t('model')}
name="llm_id"
tooltip={t('modelTip')}
+ {...formItemLayout}
rules={[{ required: true, message: t('modelMessage') }]}
>
@@ -38,6 +53,7 @@ const LlmSettingItems = ({ prefix, handleParametersChange }: IProps) => {
label={t('freedom')}
name="parameters"
tooltip={t('freedomTip')}
+ {...formItemLayout}
initialValue={ModelVariableType.Precise}
>