diff --git a/src/components/seal-form/field-wrapper.tsx b/src/components/seal-form/field-wrapper.tsx deleted file mode 100644 index b3a2e34b..00000000 --- a/src/components/seal-form/field-wrapper.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import classNames from 'classnames'; -import React from 'react'; -import LabelInfo from './components/label-info'; -import wrapperStyle from './components/wrapper.less'; -interface WrapperProps { - children: React.ReactNode; - label: React.ReactNode; - status?: string; - className?: string; - disabled?: boolean; - required?: boolean; - description?: React.ReactNode; - variant?: string; - style?: React.CSSProperties; - onClick?: () => void; -} - -const Wrapper: React.FC = ({ - children, - label, - status, - className, - disabled, - required, - variant, - style, - description -}) => { - return ( -
- -
- {children} -
-
- ); -}; - -export default Wrapper; diff --git a/src/components/seal-form/input-search.tsx b/src/components/seal-form/input-search.tsx index 730a4891..30bb097e 100644 --- a/src/components/seal-form/input-search.tsx +++ b/src/components/seal-form/input-search.tsx @@ -1,8 +1,9 @@ import { Form, Input } from 'antd'; import type { SearchProps } from 'antd/es/input/Search'; -import { useEffect, useRef, useState } from 'react'; -import Wrapper from './components/wrapper'; +import React, { useEffect, useRef, useState } from 'react'; import { SealFormItemProps } from './types'; +import Wrapper from './wrapper'; +import InputWrapper from './wrapper/input'; type OnSearch = ( value: string, @@ -66,25 +67,27 @@ const SealInputSearch: React.FC = (props) => { }; return ( - - - + + + + + ); }; diff --git a/src/components/seal-form/seal-slider.tsx b/src/components/seal-form/seal-slider.tsx index 2a38b3cf..b0f95c19 100644 --- a/src/components/seal-form/seal-slider.tsx +++ b/src/components/seal-form/seal-slider.tsx @@ -54,9 +54,7 @@ const SealSlider: React.FC = (props) => { className="slider-label" style={{ width: labelWidth || INPUT_WIDTH.mini }} > - - - + {inputnumber ? ( []; - onValuesChange?: (changeValues: any, value: Record) => void; - setParams: (params: any) => void; - globalParams?: ParamsSettingsFormProps; -}; - -const METAKEYS: Record = { - seed: 'seed', - stop: 'stop', - temperature: 'temperature', - top_p: 'top_p', - n_ctx: 'n_ctx', - n_slot: 'n_slot', - max_model_len: 'max_model_len' -}; - -const ParamsSettings: React.FC = ({ - selectedModel, - setParams, - globalParams, - onValuesChange, - modelList, - showModelSelector = true -}) => { - const intl = useIntl(); - const initialValues = { - seed: null, - stop: null, - temperature: 1, - top_p: 1, - max_tokens: 1024, - ...globalParams - }; - const [form] = Form.useForm(); - const formId = useId(); - const [metaData, setMetaData] = useState>({}); - const [firstLoad, setFirstLoad] = useState(true); - - const handleOnFinish = (values: any) => { - console.log('handleOnFinish', values); - }; - - const handleOnFinishFailed = (errorInfo: any) => { - console.log('handleOnFinishFailed', errorInfo); - }; - - const handleValuesChange = useCallback( - (changedValues: any, allValues: any) => { - setParams?.(allValues); - onValuesChange?.(changedValues, allValues); - }, - [onValuesChange, setParams] - ); - const handleFieldValueChange = useCallback( - (val: any, field: string) => { - const values = form.getFieldsValue(); - form.setFieldsValue({ - ...values, - [field]: val - }); - setParams({ - ...values, - [field]: val - }); - onValuesChange?.( - { [field]: val }, - { - ...values, - [field]: val - } - ); - }, - [form, setParams, onValuesChange] - ); - - const handleModelChange = (val: string) => { - const model = _.find(modelList, { value: val }); - const modelMeta = model?.meta || {}; - const modelMetaValue = _.pick(modelMeta, _.keys(METAKEYS)); - const obj = Object.entries(METAKEYS).reduce((acc: any, [key, value]) => { - const val = modelMetaValue[key]; - if (val && _.hasIn(modelMetaValue, key)) { - acc[value] = val; - } - return acc; - }, {}); - - let defaultMaxTokens = 1024; - - if (obj.n_ctx && obj.n_slot) { - defaultMaxTokens = _.divide(obj.n_ctx / 2, obj.n_slot); - } else if (obj.max_model_len) { - defaultMaxTokens = obj.max_model_len / 2; - } - - const initials = { - ..._.omit(obj, ['n_ctx', 'n_slot', 'max_model_len']), - seed: obj.seed === -1 ? null : obj.seed, - max_tokens: defaultMaxTokens - }; - - form.setFieldsValue(initials); - - setMetaData({ - ...obj, - max_tokens: obj.max_model_len || _.divide(obj.n_ctx, obj.n_slot) - }); - return initials; - }; - - useEffect(() => { - let model = selectedModel || ''; - if (showModelSelector) { - model = model || _.get(modelList, '[0].value'); - } - const modelMetaData = handleModelChange(model); - const mergeData = _.merge({}, initialValues, modelMetaData); - - form.setFieldsValue({ - ...mergeData, - model: model - }); - setParams({ - ...mergeData, - model: model - }); - setFirstLoad(false); - }, [modelList, showModelSelector, selectedModel]); - - useEffect(() => { - if (!firstLoad) { - form.setFieldsValue(globalParams); - } - }, [globalParams, firstLoad]); - - const renderLabel = (args: { - field: string; - label: string; - description: string; - }) => { - return ( - - - {args.description ? ( - - {args.label} - - - - - ) : ( - {args.label} - )} - - - handleFieldValueChange(val, args.field)} - > - - ); - }; - - return ( -
-
- {showModelSelector && ( - <> -

- {intl.formatMessage({ id: 'playground.model' })} -

- - name="model" - rules={[ - { - required: true, - message: intl.formatMessage( - { - id: 'common.form.rule.select' - }, - { name: intl.formatMessage({ id: 'playground.model' }) } - ) - } - ]} - > - - - - )} -

- {intl.formatMessage({ id: 'playground.parameters' })} -

- - name="temperature" - rules={[{ required: false }]} - > - - handleFieldValueChange(val, 'temperature')} - > - - - - name="max_tokens" - rules={[{ required: false }]} - > - - handleFieldValueChange(val, 'max_tokens')} - > - - - - name="top_p" - rules={[{ required: false }]} - > - - handleFieldValueChange(val, 'top_p')} - > - - - - name="seed" - rules={[{ required: false }]} - > - - - - name="stop" - rules={[{ required: false }]} - normalize={(value) => { - return value || null; - }} - > - - -
-
- ); -}; - -export default memo(ParamsSettings);