fix: set default spec to form
This commit is contained in:
@@ -132,8 +132,7 @@ const AddModal: React.FC<AddModalProps> = (props) => {
|
||||
'worker_selector',
|
||||
'gpu_selector',
|
||||
'env',
|
||||
'backend_version',
|
||||
'backend_parameters'
|
||||
'backend_version'
|
||||
]);
|
||||
};
|
||||
|
||||
|
||||
@@ -38,7 +38,8 @@ const resetFieldsByModel = [
|
||||
|
||||
const resetFieldsByFile = [
|
||||
'cpu_offloading',
|
||||
'distributed_inference_across_workers'
|
||||
'distributed_inference_across_workers',
|
||||
'backend_parameters'
|
||||
];
|
||||
|
||||
const ModalFooterStyle = {
|
||||
@@ -99,6 +100,7 @@ const AddModal: FC<AddModalProps> = (props) => {
|
||||
handleBackendChangeBefore,
|
||||
cancelEvaluate,
|
||||
handleOnValuesChange,
|
||||
handleEvaluateOnChange,
|
||||
warningStatus,
|
||||
submitAnyway
|
||||
} = useCheckCompatibility();
|
||||
@@ -140,22 +142,37 @@ const AddModal: FC<AddModalProps> = (props) => {
|
||||
return categories || null;
|
||||
};
|
||||
|
||||
const handleSelectModelFile = (item: any, evaluate?: boolean) => {
|
||||
const handleSelectModelFile = async (item: any, evaluate?: boolean) => {
|
||||
form.current?.form?.resetFields(resetFieldsByFile);
|
||||
const modelInfo = onSelectModel(selectedModel, props.source);
|
||||
form.current?.setFieldsValue?.({
|
||||
file_name: item.fakeName,
|
||||
...getDefaultSpec(item),
|
||||
...modelInfo,
|
||||
categories: getCategory(item)
|
||||
});
|
||||
|
||||
await new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
resolve(true);
|
||||
}, 0);
|
||||
});
|
||||
|
||||
if (item.fakeName) {
|
||||
handleOnValuesChange?.({
|
||||
const evaluateRes = await handleEvaluateOnChange?.({
|
||||
changedValues: {},
|
||||
allValues: form.current?.form?.getFieldsValue?.(),
|
||||
source: props.source
|
||||
});
|
||||
const defaultSpec = getDefaultSpec({
|
||||
evaluateResult: evaluateRes
|
||||
});
|
||||
console.log('defaultSpec', defaultSpec);
|
||||
form.current?.setFieldsValue?.({
|
||||
file_name: item.fakeName,
|
||||
...defaultSpec,
|
||||
...modelInfo,
|
||||
categories: getCategory(item)
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -604,6 +604,10 @@ const options = [
|
||||
{
|
||||
label: '--swa-full',
|
||||
value: '--swa-full'
|
||||
},
|
||||
{
|
||||
label: '--no-enable-reasoning',
|
||||
value: '--no-enable-reasoning'
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
import { ListItem as WorkerListItem } from '@/pages/resources/config/types';
|
||||
import { convertFileSize } from '@/utils';
|
||||
import { useIntl } from '@umijs/max';
|
||||
import { useDebounceFn } from 'ahooks';
|
||||
import _ from 'lodash';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { evaluationsModelSpec, queryGPUList } from '../apis';
|
||||
@@ -513,7 +514,7 @@ export const useCheckCompatibility = () => {
|
||||
cacheFormValuesRef.current = allValues;
|
||||
const data = getSourceRepoConfigValue(source, allValues);
|
||||
const gpuSelector = generateGPUIds(data.values);
|
||||
await handleDoEvalute({
|
||||
return await handleDoEvalute({
|
||||
...data.values,
|
||||
...gpuSelector
|
||||
});
|
||||
@@ -537,7 +538,10 @@ export const useCheckCompatibility = () => {
|
||||
return res;
|
||||
};
|
||||
|
||||
const debounceHandleValuesChange = _.debounce(handleOnValuesChange, 500);
|
||||
const { run: debounceHandleValuesChange } = useDebounceFn(
|
||||
handleOnValuesChange,
|
||||
{ wait: 500 }
|
||||
);
|
||||
|
||||
const cancelEvaluate = () => {
|
||||
checkTokenRef.current?.cancel();
|
||||
@@ -561,6 +565,7 @@ export const useCheckCompatibility = () => {
|
||||
cancelEvaluate,
|
||||
handleBackendChangeBefore,
|
||||
handleOnValuesChange: debounceHandleValuesChange,
|
||||
handleEvaluateOnChange: handleOnValuesChange,
|
||||
warningStatus,
|
||||
checkTokenRef,
|
||||
submitAnyway
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import IconFont from '@/components/icon-font';
|
||||
import HotKeys, { KeyMap } from '@/config/hotkeys';
|
||||
import { convertFileToBase64 } from '@/utils/load-audio-file';
|
||||
import { ClearOutlined, SendOutlined, SwapOutlined } from '@ant-design/icons';
|
||||
import { useIntl } from '@umijs/max';
|
||||
import { Button, Checkbox, Divider, Input, Tooltip } from 'antd';
|
||||
@@ -19,6 +20,12 @@ import '../style/message-input.less';
|
||||
import ThumbImg from './thumb-img';
|
||||
import UploadImg from './upload-img';
|
||||
|
||||
const audioTypeMap: Record<string, string> = {
|
||||
'audio/wav': 'wav',
|
||||
'audio/mp3': 'mp3',
|
||||
'audio/mpeg': 'mp3'
|
||||
};
|
||||
|
||||
type CurrentMessage = Omit<MessageItem, 'uid'>;
|
||||
|
||||
type ActionType =
|
||||
@@ -260,6 +267,26 @@ const MessageInput: React.FC<MessageInputProps> = forwardRef(
|
||||
});
|
||||
};
|
||||
|
||||
const handleUploadAudioChange = async (data: {
|
||||
file: any;
|
||||
fileList: any[];
|
||||
}) => {
|
||||
// convert audio file to base64
|
||||
try {
|
||||
console.log('audio file====', data.file);
|
||||
const base64Audio = await convertFileToBase64(data.file);
|
||||
setMessage({
|
||||
...message,
|
||||
audio: {
|
||||
format: audioTypeMap[data.file.type],
|
||||
dataUrl: base64Audio
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error converting audio to Base64:', error);
|
||||
}
|
||||
};
|
||||
|
||||
const handleDeleteImg = (uid: number | string) => {
|
||||
const list = _.filter(
|
||||
message.imgs,
|
||||
@@ -360,6 +387,22 @@ const MessageInput: React.FC<MessageInputProps> = forwardRef(
|
||||
size="middle"
|
||||
></UploadImg>
|
||||
)}
|
||||
{/* {actions.includes('upload') && message.role === Roles.User && (
|
||||
<UploadAudio
|
||||
type="text"
|
||||
accept={'.mp3,.wav'}
|
||||
size="middle"
|
||||
shape="default"
|
||||
icon={<CustomerServiceOutlined />}
|
||||
onChange={handleUploadAudioChange}
|
||||
></UploadAudio>
|
||||
)} */}
|
||||
{actions.includes('upload') && message.role === Roles.User && (
|
||||
<UploadImg
|
||||
handleUpdateImgList={handleUpdateImgList}
|
||||
size="middle"
|
||||
></UploadImg>
|
||||
)}
|
||||
{tools}
|
||||
{actions.includes('clear') && (
|
||||
<Tooltip
|
||||
|
||||
@@ -16,6 +16,7 @@ export type MessageItemAction =
|
||||
export interface MessageItem {
|
||||
content: string;
|
||||
imgs?: { uid: string | number; dataUrl: string }[];
|
||||
audio?: { uid: string | number; dataUrl: string; format: 'wav' | 'mp3' };
|
||||
role: string;
|
||||
title?: React.ReactNode;
|
||||
uid: number;
|
||||
|
||||
Reference in New Issue
Block a user