fix: do not init meta data when switch tab
This commit is contained in:
@@ -348,7 +348,7 @@ const options = [
|
||||
{
|
||||
label: '--rope-scaling',
|
||||
value: '--rope-scaling',
|
||||
options: ['none', 'linear', 'yarn']
|
||||
options: ['linear', 'yarn']
|
||||
},
|
||||
{
|
||||
label: '--rope-scale',
|
||||
|
||||
@@ -289,8 +289,8 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
|
||||
isResetNeeded: false
|
||||
};
|
||||
});
|
||||
setMask(data.mask || null);
|
||||
setImage(data.img || maskUpload[0]?.dataUrl || null);
|
||||
setMask(data.mask || maskUpload[0]?.dataUrl || null);
|
||||
setImage(data.img);
|
||||
},
|
||||
[]
|
||||
);
|
||||
@@ -332,7 +332,7 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
|
||||
return (
|
||||
<>
|
||||
<UploadImg
|
||||
accept="image/png"
|
||||
accept="image/*"
|
||||
drag={true}
|
||||
multiple={false}
|
||||
handleUpdateImgList={handleUpdateImageList}
|
||||
|
||||
@@ -689,11 +689,12 @@ export const ChatParamsConfig: ParamsSchema[] = [
|
||||
html: false,
|
||||
isLocalized: true
|
||||
},
|
||||
attrs: {
|
||||
formItemAttrs: {
|
||||
normalize(value: string) {
|
||||
return value || null;
|
||||
}
|
||||
},
|
||||
attrs: {},
|
||||
rules: [
|
||||
{
|
||||
required: false
|
||||
|
||||
@@ -10,6 +10,13 @@ export const LLM_METAKEYS: Record<string, any> = {
|
||||
presence_penalty: 'presence_penalty'
|
||||
};
|
||||
|
||||
export const precisionTwoKeys = [
|
||||
'temperature',
|
||||
'top_p',
|
||||
'frequency_penalty',
|
||||
'presence_penalty'
|
||||
];
|
||||
|
||||
export const IMG_METAKEYS = [
|
||||
'sample_method',
|
||||
'sampling_steps',
|
||||
|
||||
@@ -23,7 +23,8 @@ import {
|
||||
IMG_METAKEYS,
|
||||
advancedFieldsDefaultValus,
|
||||
imgInitialValues,
|
||||
openaiCompatibleFieldsDefaultValus
|
||||
openaiCompatibleFieldsDefaultValus,
|
||||
precisionTwoKeys
|
||||
} from './config';
|
||||
|
||||
interface MessageProps {
|
||||
@@ -53,16 +54,13 @@ export const useInitLLmMeta = (
|
||||
} = options;
|
||||
const formRef = useRef<any>(null);
|
||||
const [searchParams] = useSearchParams();
|
||||
const defaultModel =
|
||||
searchParams.get('model') ||
|
||||
(isChat ? model ?? modelList?.[0]?.value : model);
|
||||
const [modelMeta, setModelMeta] = useState<any>({});
|
||||
const [initialValues, setInitialValues] = useState<any>({
|
||||
...defaultValues,
|
||||
model: defaultModel
|
||||
model: ''
|
||||
});
|
||||
const [parameters, setParams] = useState<any>({
|
||||
model: defaultModel
|
||||
model: ''
|
||||
});
|
||||
const [paramsConfig, setParamsConfig] =
|
||||
useState<ParamsSchema[]>(defaultParamsConfig);
|
||||
@@ -70,13 +68,20 @@ export const useInitLLmMeta = (
|
||||
|
||||
const { initialize: innitializeParams } = useOverlayScroller();
|
||||
|
||||
const defaultModel = useMemo(() => {
|
||||
return (
|
||||
searchParams.get('model') ||
|
||||
(isChat ? model ?? modelList?.[0]?.value : model)
|
||||
);
|
||||
}, [model, modelList, isChat]);
|
||||
const extractLLMMeta = (meta: any) => {
|
||||
const towKeys = new Set(precisionTwoKeys);
|
||||
const modelMeta = 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;
|
||||
if (_.hasIn(modelMetaValue, key)) {
|
||||
acc[value] = towKeys.has(key) ? _.round(val, 2) : val;
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
@@ -109,10 +114,9 @@ export const useInitLLmMeta = (
|
||||
|
||||
const handleOnModelChange = useCallback(
|
||||
(val: string) => {
|
||||
if (!val || val === parameters.model) return;
|
||||
if (!val) return;
|
||||
const model = modelList.find((item) => item.value === val);
|
||||
const { form: initialData, meta } = extractLLMMeta(model?.meta);
|
||||
|
||||
setModelMeta(meta || {});
|
||||
setInitialValues({
|
||||
...initialData,
|
||||
@@ -135,7 +139,7 @@ export const useInitLLmMeta = (
|
||||
});
|
||||
setParamsConfig(config);
|
||||
},
|
||||
[modelList, parameters, defaultParamsConfig]
|
||||
[modelList, defaultParamsConfig]
|
||||
);
|
||||
|
||||
const handleOnValuesChange = useCallback(
|
||||
@@ -152,10 +156,10 @@ export const useInitLLmMeta = (
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
if (defaultModel) {
|
||||
if (defaultModel && modelList.length) {
|
||||
handleOnModelChange(defaultModel);
|
||||
}
|
||||
}, [defaultModel, handleOnModelChange]);
|
||||
}, [defaultModel, modelList.length]);
|
||||
|
||||
useEffect(() => {
|
||||
if (paramsRef.current) {
|
||||
@@ -185,7 +189,6 @@ export const useInitImageMeta = (props: MessageProps) => {
|
||||
const { modelList } = props;
|
||||
const form = useRef<any>(null);
|
||||
const [searchParams] = useSearchParams();
|
||||
const defaultModel = searchParams.get('model') || modelList?.[0]?.value || '';
|
||||
const [modelMeta, setModelMeta] = useState<any>({});
|
||||
const [isOpenaiCompatible, setIsOpenaiCompatible] = useState<boolean>(false);
|
||||
const [imageSizeOptions, setImageSizeOptions] = React.useState<
|
||||
@@ -198,7 +201,7 @@ export const useInitImageMeta = (props: MessageProps) => {
|
||||
const [initialValues, setInitialValues] = useState<any>({
|
||||
...imgInitialValues,
|
||||
...advancedFieldsDefaultValus,
|
||||
model: defaultModel
|
||||
model: ''
|
||||
});
|
||||
const [paramsConfig, setParamsConfig] = useState<ParamsSchema[]>([
|
||||
...ImageCountConfig,
|
||||
@@ -209,9 +212,13 @@ export const useInitImageMeta = (props: MessageProps) => {
|
||||
const [parameters, setParams] = useState<any>({
|
||||
...imgInitialValues,
|
||||
...advancedFieldsDefaultValus,
|
||||
model: defaultModel
|
||||
model: ''
|
||||
});
|
||||
|
||||
const defaultModel = useMemo(() => {
|
||||
return searchParams.get('model') || modelList?.[0]?.value || '';
|
||||
}, [modelList]);
|
||||
|
||||
const cacheFormData = React.useRef<Record<string, any>>({
|
||||
...imgInitialValues,
|
||||
...openaiCompatibleFieldsDefaultValus,
|
||||
@@ -373,7 +380,7 @@ export const useInitImageMeta = (props: MessageProps) => {
|
||||
|
||||
const handleOnModelChange = useCallback(
|
||||
(val: string) => {
|
||||
if (!val || val === parameters.model) return;
|
||||
if (!val) return;
|
||||
const model = modelList.find((item) => item.value === val);
|
||||
const { form: initialData, sizeOptions } = extractIMGMeta(model?.meta);
|
||||
const newParamsConfig = generateImageParamsConfig(model, sizeOptions);
|
||||
@@ -396,7 +403,7 @@ export const useInitImageMeta = (props: MessageProps) => {
|
||||
});
|
||||
updateCacheFormData(initialData);
|
||||
},
|
||||
[modelList, isOpenaiCompatible, parameters.model]
|
||||
[modelList, isOpenaiCompatible]
|
||||
);
|
||||
|
||||
const handleOnValuesChange = useCallback(
|
||||
@@ -448,10 +455,10 @@ export const useInitImageMeta = (props: MessageProps) => {
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
if (defaultModel) {
|
||||
if (defaultModel && modelList.length) {
|
||||
handleOnModelChange(defaultModel);
|
||||
}
|
||||
}, [defaultModel, handleOnModelChange]);
|
||||
}, [defaultModel, modelList.length]);
|
||||
|
||||
return {
|
||||
extractIMGMeta,
|
||||
|
||||
@@ -264,6 +264,30 @@ const Workers: React.FC = () => {
|
||||
return <div></div>;
|
||||
};
|
||||
|
||||
const renderProgressLabels = (data: {
|
||||
total: number;
|
||||
used: number;
|
||||
allocated: number;
|
||||
}) => {
|
||||
const { total, used, allocated } = data;
|
||||
return (
|
||||
<span className="flex-column">
|
||||
<span>
|
||||
{intl.formatMessage({ id: 'resources.table.total' })}:{' '}
|
||||
{convertFileSize(total, 0)}
|
||||
</span>
|
||||
<span>
|
||||
{intl.formatMessage({ id: 'resources.table.used' })}:{' '}
|
||||
{convertFileSize(used, 0)}
|
||||
</span>
|
||||
<span>
|
||||
{intl.formatMessage({ id: 'resources.table.allocated' })}:{' '}
|
||||
{convertFileSize(allocated, 0)}
|
||||
</span>
|
||||
</span>
|
||||
);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
fetchData();
|
||||
}, [queryParams]);
|
||||
@@ -425,22 +449,11 @@ const Workers: React.FC = () => {
|
||||
record?.status?.memory?.used,
|
||||
record?.status?.memory?.total
|
||||
)}
|
||||
label={
|
||||
<span className="flex-column">
|
||||
<span>
|
||||
{intl.formatMessage({ id: 'resources.table.total' })}:{' '}
|
||||
{convertFileSize(record?.status?.memory?.total, 0)}
|
||||
</span>
|
||||
<span>
|
||||
{intl.formatMessage({ id: 'resources.table.used' })}:{' '}
|
||||
{convertFileSize(
|
||||
record?.status?.memory?.used ||
|
||||
record?.status.memory?.allocated,
|
||||
0
|
||||
)}
|
||||
</span>
|
||||
</span>
|
||||
}
|
||||
successPercent={formateUtilazation(
|
||||
record?.status?.memory?.allocated,
|
||||
record?.status?.memory?.total
|
||||
)}
|
||||
label={renderProgressLabels(record?.status?.memory)}
|
||||
></ProgressBar>
|
||||
);
|
||||
}}
|
||||
@@ -511,27 +524,7 @@ const Workers: React.FC = () => {
|
||||
0
|
||||
)
|
||||
}
|
||||
label={
|
||||
<span className="flex-column">
|
||||
<span>
|
||||
{intl.formatMessage({
|
||||
id: 'resources.table.total'
|
||||
})}
|
||||
: {convertFileSize(item.memory?.total, 0)}
|
||||
</span>
|
||||
<span>
|
||||
{intl.formatMessage({
|
||||
id: 'resources.table.used'
|
||||
})}
|
||||
:{' '}
|
||||
{convertFileSize(
|
||||
item.memory?.used ||
|
||||
item.memory?.allocated,
|
||||
0
|
||||
)}
|
||||
</span>
|
||||
</span>
|
||||
}
|
||||
label={renderProgressLabels(item.memory)}
|
||||
></ProgressBar>
|
||||
{item.memory.is_unified_memory && (
|
||||
<Tooltip
|
||||
|
||||
Reference in New Issue
Block a user