fix: chat compare switch model meta
This commit is contained in:
@@ -14,6 +14,7 @@ interface ActiveModelsProps {
|
|||||||
|
|
||||||
const ActiveModels: React.FC<ActiveModelsProps> = (props) => {
|
const ActiveModels: React.FC<ActiveModelsProps> = (props) => {
|
||||||
const { spans, modelSelections, setModelRefs } = props;
|
const { spans, modelSelections, setModelRefs } = props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Row gutter={[16, 0]} style={{ height: '100%' }}>
|
<Row gutter={[16, 0]} style={{ height: '100%' }}>
|
||||||
{modelSelections.map((model, index) => (
|
{modelSelections.map((model, index) => (
|
||||||
@@ -21,7 +22,8 @@ const ActiveModels: React.FC<ActiveModelsProps> = (props) => {
|
|||||||
span={spans.span}
|
span={spans.span}
|
||||||
key={`${model.value || 'empty'}-${model.uid}`}
|
key={`${model.value || 'empty'}-${model.uid}`}
|
||||||
style={{
|
style={{
|
||||||
height: spans.count < 4 ? 'calc(100% - 16px)' : 'calc(50% - 16px)'
|
height: spans.count < 4 ? 'calc(100% - 16px)' : 'calc(50% - 16px)',
|
||||||
|
overflow: 'hidden'
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<ModelItem
|
<ModelItem
|
||||||
|
|||||||
@@ -47,7 +47,8 @@ interface ModelItemProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const ModelItem: React.FC<ModelItemProps> = forwardRef((props, ref) => {
|
const ModelItem: React.FC<ModelItemProps> = forwardRef((props, ref) => {
|
||||||
const { modelList, model, instanceId } = props;
|
const { modelList, ...restProps } = props;
|
||||||
|
const { model, instanceId } = restProps;
|
||||||
const {
|
const {
|
||||||
globalParams,
|
globalParams,
|
||||||
setGlobalParams,
|
setGlobalParams,
|
||||||
@@ -66,14 +67,20 @@ const ModelItem: React.FC<ModelItemProps> = forwardRef((props, ref) => {
|
|||||||
paramsConfig,
|
paramsConfig,
|
||||||
initialValues,
|
initialValues,
|
||||||
parameters
|
parameters
|
||||||
} = useInitLLmMeta(props, {
|
} = useInitLLmMeta(
|
||||||
defaultValues: {
|
{
|
||||||
...llmInitialValues,
|
...restProps,
|
||||||
model: model
|
modelList: modelFullList
|
||||||
},
|
},
|
||||||
defaultParamsConfig: ChatParamsConfig,
|
{
|
||||||
metaKeys: LLM_METAKEYS
|
defaultValues: {
|
||||||
});
|
...llmInitialValues,
|
||||||
|
model: model
|
||||||
|
},
|
||||||
|
defaultParamsConfig: ChatParamsConfig,
|
||||||
|
metaKeys: LLM_METAKEYS
|
||||||
|
}
|
||||||
|
);
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
const isApplyToAllModels = useRef(false);
|
const isApplyToAllModels = useRef(false);
|
||||||
const [systemMessage, setSystemMessage] = useState<string>('');
|
const [systemMessage, setSystemMessage] = useState<string>('');
|
||||||
|
|||||||
@@ -12,13 +12,7 @@ import { generateRandomNumber } from '@/utils';
|
|||||||
import { useSearchParams } from '@umijs/max';
|
import { useSearchParams } from '@umijs/max';
|
||||||
import { useMemoizedFn } from 'ahooks';
|
import { useMemoizedFn } from 'ahooks';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import React, {
|
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
||||||
useCallback,
|
|
||||||
useEffect,
|
|
||||||
useMemo,
|
|
||||||
useRef,
|
|
||||||
useState
|
|
||||||
} from 'react';
|
|
||||||
import { ParamsSchema } from '../config/types';
|
import { ParamsSchema } from '../config/types';
|
||||||
import {
|
import {
|
||||||
IMG_METAKEYS,
|
IMG_METAKEYS,
|
||||||
@@ -133,37 +127,34 @@ export const useInitLLmMeta = (
|
|||||||
return fields?.join(',');
|
return fields?.join(',');
|
||||||
}, [paramsConfig]);
|
}, [paramsConfig]);
|
||||||
|
|
||||||
const handleOnModelChange = useCallback(
|
const handleOnModelChange = useMemoizedFn((val: string) => {
|
||||||
(val: string) => {
|
if (!val) return;
|
||||||
if (!val) return;
|
const model = modelList.find((item) => item.value === val);
|
||||||
const model = modelList.find((item) => item.value === val);
|
const { form: initialData, meta } = extractLLMMeta(model?.meta);
|
||||||
const { form: initialData, meta } = extractLLMMeta(model?.meta);
|
setModelMeta(meta);
|
||||||
setModelMeta(meta);
|
setInitialValues({
|
||||||
setInitialValues({
|
...initialData,
|
||||||
...initialData,
|
model: val
|
||||||
model: val
|
});
|
||||||
});
|
setParams({
|
||||||
setParams({
|
...initialData,
|
||||||
...initialData,
|
model: val
|
||||||
model: val
|
});
|
||||||
});
|
const config = defaultParamsConfig.map((item) => {
|
||||||
const config = defaultParamsConfig.map((item) => {
|
return {
|
||||||
return {
|
...item,
|
||||||
...item,
|
attrs:
|
||||||
attrs:
|
item.name === 'max_tokens'
|
||||||
item.name === 'max_tokens'
|
? { ...item.attrs, max: meta.max_tokens }
|
||||||
? { ...item.attrs, max: meta.max_tokens }
|
: {
|
||||||
: {
|
...item.attrs
|
||||||
...item.attrs
|
}
|
||||||
}
|
};
|
||||||
};
|
});
|
||||||
});
|
setParamsConfig(config);
|
||||||
setParamsConfig(config);
|
});
|
||||||
},
|
|
||||||
[modelList, defaultParamsConfig]
|
|
||||||
);
|
|
||||||
|
|
||||||
const handleOnValuesChange = useCallback(
|
const handleOnValuesChange = useMemoizedFn(
|
||||||
(changeValues: Record<string, any>, allValues: Record<string, any>) => {
|
(changeValues: Record<string, any>, allValues: Record<string, any>) => {
|
||||||
if (changeValues.model) {
|
if (changeValues.model) {
|
||||||
handleOnModelChange(changeValues.model);
|
handleOnModelChange(changeValues.model);
|
||||||
@@ -172,8 +163,7 @@ export const useInitLLmMeta = (
|
|||||||
setParams(allValues);
|
setParams(allValues);
|
||||||
setInitialValues(allValues);
|
setInitialValues(allValues);
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
[handleOnModelChange]
|
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -405,35 +395,32 @@ export const useInitImageMeta = (
|
|||||||
return fields?.join(',');
|
return fields?.join(',');
|
||||||
}, [paramsConfig]);
|
}, [paramsConfig]);
|
||||||
|
|
||||||
const handleOnModelChange = useCallback(
|
const handleOnModelChange = useMemoizedFn((val: string) => {
|
||||||
(val: string) => {
|
if (!val) return;
|
||||||
if (!val) return;
|
const model = modelList.find((item) => item.value === val);
|
||||||
const model = modelList.find((item) => item.value === val);
|
const { form: initialData, sizeOptions } = extractIMGMeta(model?.meta);
|
||||||
const { form: initialData, sizeOptions } = extractIMGMeta(model?.meta);
|
const newParamsConfig = generateImageParamsConfig(model, sizeOptions);
|
||||||
const newParamsConfig = generateImageParamsConfig(model, sizeOptions);
|
|
||||||
|
|
||||||
if (!isOpenaiCompatible) {
|
if (!isOpenaiCompatible) {
|
||||||
setParamsConfig([...newParamsConfig, ...ImageAdvancedParamsConfig]);
|
setParamsConfig([...newParamsConfig, ...ImageAdvancedParamsConfig]);
|
||||||
} else {
|
} else {
|
||||||
setParamsConfig(newParamsConfig);
|
setParamsConfig(newParamsConfig);
|
||||||
}
|
}
|
||||||
setBasicParamsConfig(newParamsConfig);
|
setBasicParamsConfig(newParamsConfig);
|
||||||
setImageSizeOptions(sizeOptions);
|
setImageSizeOptions(sizeOptions);
|
||||||
setModelMeta(model?.meta || {});
|
setModelMeta(model?.meta || {});
|
||||||
setInitialValues({
|
setInitialValues({
|
||||||
...initialData,
|
...initialData,
|
||||||
seed: parameters.seed,
|
seed: parameters.seed,
|
||||||
model: val
|
model: val
|
||||||
});
|
});
|
||||||
setParams({
|
setParams({
|
||||||
...initialData,
|
...initialData,
|
||||||
seed: parameters.seed,
|
seed: parameters.seed,
|
||||||
model: val
|
model: val
|
||||||
});
|
});
|
||||||
updateCacheFormData(initialData);
|
updateCacheFormData(initialData);
|
||||||
},
|
});
|
||||||
[modelList, isOpenaiCompatible]
|
|
||||||
);
|
|
||||||
|
|
||||||
const handleOnValuesChange = useMemoizedFn(
|
const handleOnValuesChange = useMemoizedFn(
|
||||||
(changeValues: Record<string, any>, allValues: Record<string, any>) => {
|
(changeValues: Record<string, any>, allValues: Record<string, any>) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user