fix: image preview

main
jialin 1 year ago
parent ebe8a40202
commit 45e92e7b7a

@ -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({

Loading…
Cancel
Save