fix: image preview
This commit is contained in:
@@ -129,8 +129,10 @@ const LogsViewer: React.FC<LogsViewerProps> = forwardRef((props, ref) => {
|
||||
const currentPage = list.slice(start, end).join('\n');
|
||||
setPage(newPage);
|
||||
setTotalPage(totalPage);
|
||||
if (pageRef.current === totalPageRef.current && scrollPos[0] === 'bottom') {
|
||||
setScrollPos(['bottom', newPage]);
|
||||
}
|
||||
pageRef.current = newPage;
|
||||
totalPageRef.current = totalPage;
|
||||
logParseWorker.current.postMessage({
|
||||
inputStr: currentPage
|
||||
});
|
||||
@@ -232,6 +234,18 @@ const LogsViewer: React.FC<LogsViewerProps> = forwardRef((props, ref) => {
|
||||
async (data: { isTop: boolean; isBottom: boolean }) => {
|
||||
const { isTop, isBottom } = data;
|
||||
setIsAtTop(isTop);
|
||||
console.log('scroll========', { isTop, isBottom });
|
||||
// if (isBottom) {
|
||||
// setScrollPos((pre) => {
|
||||
// return ['bottom', pre[1]];
|
||||
// });
|
||||
// } else if (isTop) {
|
||||
// setScrollPos((pre) => {
|
||||
// return ['top', pre[1]];
|
||||
// });
|
||||
// } else {
|
||||
// setScrollPos([]);
|
||||
// }
|
||||
if (
|
||||
loading ||
|
||||
(logs.length > 0 && logs.length < pageSize && !loadMoreDone.current) ||
|
||||
@@ -287,8 +301,9 @@ const LogsViewer: React.FC<LogsViewerProps> = forwardRef((props, ref) => {
|
||||
|
||||
return (
|
||||
<div className="logs-viewer-wrap-w2">
|
||||
<span></span>
|
||||
<div className="wrap">
|
||||
<div className={classNames('content')}>
|
||||
<div>
|
||||
<LogsList
|
||||
ref={logListRef}
|
||||
dataList={logs}
|
||||
|
||||
@@ -112,7 +112,7 @@ const TagsWrapper: React.FC<TagsWrapperProps> = (props) => {
|
||||
>
|
||||
<Tag
|
||||
className="more"
|
||||
style={{ marginInline: `${gap}px 0` }}
|
||||
style={{ marginInline: hiddenIndices.end < 1 ? 0 : `${gap}px 0` }}
|
||||
ref={moreBtnRef}
|
||||
>
|
||||
<MoreOutlined rotate={90} />
|
||||
|
||||
@@ -43,27 +43,30 @@ const Catalog: React.FC = () => {
|
||||
|
||||
const categoryOptions = [...modelCategories.filter((item) => item.value)];
|
||||
|
||||
const filterData = (data: { search: string; categories: string[] }) => {
|
||||
const { search, categories } = data;
|
||||
const dataList = cacheData.current.filter((item) => {
|
||||
if (search && categories.length > 0) {
|
||||
return (
|
||||
_.toLower(item.name).includes(search) &&
|
||||
categories.some((category) => item.categories.includes(category))
|
||||
);
|
||||
}
|
||||
if (search) {
|
||||
return _.toLower(item.name).includes(search);
|
||||
}
|
||||
if (categories.length > 0) {
|
||||
return categories.some((category) =>
|
||||
item.categories.includes(category)
|
||||
);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
return dataList;
|
||||
};
|
||||
const filterData = useCallback(
|
||||
(data: { search: string; categories: string[] }) => {
|
||||
const { search, categories } = data;
|
||||
const dataList = cacheData.current.filter((item) => {
|
||||
if (search && categories.length > 0) {
|
||||
return (
|
||||
_.toLower(item.name).includes(search) &&
|
||||
categories.some((category) => item.categories.includes(category))
|
||||
);
|
||||
}
|
||||
if (search) {
|
||||
return _.toLower(item.name).includes(search);
|
||||
}
|
||||
if (categories.length > 0) {
|
||||
return categories.some((category) =>
|
||||
item.categories.includes(category)
|
||||
);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
return dataList;
|
||||
},
|
||||
[cacheData.current]
|
||||
);
|
||||
|
||||
const fetchData = useCallback(async () => {
|
||||
setDataSource((pre) => {
|
||||
@@ -77,8 +80,12 @@ const Catalog: React.FC = () => {
|
||||
const res: any = await queryCatalogList(params);
|
||||
|
||||
cacheData.current = res.items || [];
|
||||
const dataList = filterData({
|
||||
search: queryParams.search,
|
||||
categories: queryParams.categories
|
||||
});
|
||||
setDataSource({
|
||||
dataList: res.items,
|
||||
dataList: dataList,
|
||||
loading: false,
|
||||
total: res.pagination.total
|
||||
});
|
||||
@@ -93,7 +100,7 @@ const Catalog: React.FC = () => {
|
||||
} finally {
|
||||
setIsFirst(false);
|
||||
}
|
||||
}, [queryParams]);
|
||||
}, [queryParams, cacheData.current]);
|
||||
|
||||
const handleDeployModalCancel = () => {
|
||||
setOpenDeployModal({
|
||||
|
||||
@@ -294,18 +294,20 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
|
||||
|
||||
// preview
|
||||
let stream_options: Record<string, any> = {
|
||||
chunk_size: 16 * 1024,
|
||||
chunk_results: true
|
||||
stream_options_chunk_size: 16 * 1024,
|
||||
stream_options_chunk_result: true
|
||||
};
|
||||
if (parameters.preview === 'preview') {
|
||||
stream_options = {
|
||||
preview: true
|
||||
...stream_options,
|
||||
stream_options_preview: true
|
||||
};
|
||||
}
|
||||
|
||||
if (parameters.preview === 'preview_faster') {
|
||||
stream_options = {
|
||||
preview_faster: true
|
||||
...stream_options,
|
||||
stream_options_preview_faster: true
|
||||
};
|
||||
}
|
||||
|
||||
@@ -333,9 +335,7 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
|
||||
..._.omitBy(finalParameters, (value: string) => !value),
|
||||
seed: parameters.random_seed ? generateRandomNumber() : parameters.seed,
|
||||
stream: true,
|
||||
stream_options: {
|
||||
...stream_options
|
||||
},
|
||||
...stream_options,
|
||||
prompt: current?.content || currentPrompt || ''
|
||||
};
|
||||
setParams({
|
||||
@@ -346,7 +346,6 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
|
||||
|
||||
const result: any = await fetchChunkedData({
|
||||
data: params,
|
||||
// url: 'http://192.168.50.174:40053/v1/images/edits',
|
||||
url: EDIT_IMAGE_API,
|
||||
signal: requestToken.current.signal
|
||||
});
|
||||
@@ -374,11 +373,15 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
|
||||
}
|
||||
chunk?.data?.forEach((item: any) => {
|
||||
const imgItem = newImageList[item.index];
|
||||
if (item.b64_json && stream_options.chunk_results) {
|
||||
if (item.b64_json && params.stream_options_chunk_result) {
|
||||
imgItem.dataUrl += item.b64_json;
|
||||
} else if (item.b64_json) {
|
||||
imgItem.dataUrl = `data:image/png;base64,${item.b64_json}`;
|
||||
}
|
||||
console.log(
|
||||
'stream_options_chunk_result:',
|
||||
params.stream_options_chunk_result
|
||||
);
|
||||
const progress = _.round(item.progress, 0);
|
||||
console.log('progress:', item, progress);
|
||||
newImageList[item.index] = {
|
||||
@@ -389,7 +392,9 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
|
||||
maxWidth: `${imgSize[0]}px`,
|
||||
uid: imgItem.uid,
|
||||
span: imgItem.span,
|
||||
loading: stream_options.chunk_results ? progress < 100 : false,
|
||||
loading: params.stream_options_chunk_result
|
||||
? false
|
||||
: progress < 100,
|
||||
preview: false,
|
||||
progress: progress
|
||||
};
|
||||
|
||||
@@ -108,7 +108,6 @@ const ParamsSettings: React.FC<ParamsSettingsProps> = ({
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
console.log('handleModelChange', obj);
|
||||
form.setFieldsValue(obj);
|
||||
setMetaData(obj);
|
||||
return obj;
|
||||
@@ -121,8 +120,8 @@ const ParamsSettings: React.FC<ParamsSettingsProps> = ({
|
||||
}
|
||||
const modelMetaData = handleModelChange(model);
|
||||
const mergeData = _.merge({}, initialValues, modelMetaData);
|
||||
const defaultMaxTokens = mergeData?.max_tokens
|
||||
? _.divide(mergeData?.max_tokens, 2)
|
||||
const defaultMaxTokens = modelMetaData?.max_tokens
|
||||
? _.divide(modelMetaData?.max_tokens, 2)
|
||||
: 1024;
|
||||
|
||||
form.setFieldsValue({
|
||||
|
||||
Reference in New Issue
Block a user