chore: add watch for worker and gpu updating

This commit is contained in:
jialin
2025-05-26 16:17:17 +08:00
parent 9efacefba3
commit 4b4343a9fd
8 changed files with 38 additions and 15 deletions
+12 -8
View File
@@ -7,14 +7,18 @@ import _ from 'lodash';
import qs from 'query-string'; import qs from 'query-string';
import { useEffect, useRef, useState } from 'react'; import { useEffect, useRef, useState } from 'react';
export default function useTableFetch<ListItem>(options: { type WatchConfig =
API?: string; | { watch?: false | undefined; API?: string }
watch?: boolean; | { watch: true; API: string };
fetchAPI: (params: any) => Promise<Global.PageResponse<ListItem>>;
deleteAPI?: (id: number, params?: any) => Promise<any>; export default function useTableFetch<ListItem>(
contentForDelete?: string; options: {
defaultData?: any[]; fetchAPI: (params: any) => Promise<Global.PageResponse<ListItem>>;
}) { deleteAPI?: (id: number, params?: any) => Promise<any>;
contentForDelete?: string;
defaultData?: any[];
} & WatchConfig
) {
const { const {
fetchAPI, fetchAPI,
deleteAPI, deleteAPI,
@@ -478,7 +478,7 @@ const InstanceItem: React.FC<InstanceItemProps> = ({
return ( return (
<TooltipOverlayScroller <TooltipOverlayScroller
toolTipProps={{ toolTipProps={{
trigger: 'click', trigger: 'hover',
overlayInnerStyle: { overlayInnerStyle: {
width: 'max-content', width: 'max-content',
maxWidth: '520px', maxWidth: '520px',
@@ -475,6 +475,9 @@ const Models: React.FC<ModelsProps> = ({
await handleStartModel(row); await handleStartModel(row);
message.success(intl.formatMessage({ id: 'common.message.success' })); message.success(intl.formatMessage({ id: 'common.message.success' }));
updateExpandedRowKeys([row.id, ...expandedRowKeys]); updateExpandedRowKeys([row.id, ...expandedRowKeys]);
setTimeout(() => {
handleSearch?.();
}, 150);
} }
if (val === 'api') { if (val === 'api') {
@@ -490,6 +493,9 @@ const Models: React.FC<ModelsProps> = ({
name: row.name, name: row.name,
async onOk() { async onOk() {
await handleStopModel(row); await handleStopModel(row);
setTimeout(() => {
handleSearch?.();
}, 150);
} }
}); });
} }
@@ -465,7 +465,11 @@ const GroundEmbedding: React.FC<MessageProps> = forwardRef((props, ref) => {
</Checkbox> </Checkbox>
</Tooltip> </Tooltip>
<Button size="middle" onClick={handleAddText}> <Button
size="middle"
onClick={handleAddText}
disabled={loading}
>
<PlusOutlined /> <PlusOutlined />
{intl.formatMessage({ id: 'playground.embedding.addtext' })} {intl.formatMessage({ id: 'playground.embedding.addtext' })}
</Button> </Button>
+4 -2
View File
@@ -8,7 +8,7 @@ import { useIntl } from '@umijs/max';
import { ConfigProvider, Empty, Table } from 'antd'; import { ConfigProvider, Empty, Table } from 'antd';
import _ from 'lodash'; import _ from 'lodash';
import React from 'react'; import React from 'react';
import { queryGpuDevicesList } from '../apis'; import { GPU_DEVICES_API, queryGpuDevicesList } from '../apis';
import { GPUDeviceItem } from '../config/types'; import { GPUDeviceItem } from '../config/types';
const { Column } = Table; const { Column } = Table;
@@ -48,7 +48,9 @@ const GPUList: React.FC = () => {
handleSearch, handleSearch,
handleNameChange handleNameChange
} = useTableFetch<GPUDeviceItem>({ } = useTableFetch<GPUDeviceItem>({
fetchAPI: queryGpuDevicesList fetchAPI: queryGpuDevicesList,
watch: true,
API: GPU_DEVICES_API
}); });
const intl = useIntl(); const intl = useIntl();
@@ -547,7 +547,7 @@ const ModelFiles = () => {
} }
}; };
const columns = [ const columns: any[] = [
{ {
title: intl.formatMessage({ id: 'models.form.source' }), title: intl.formatMessage({ id: 'models.form.source' }),
dataIndex: 'source', dataIndex: 'source',
+9 -2
View File
@@ -18,7 +18,12 @@ import { ConfigProvider, Empty, Table, Tooltip, message } from 'antd';
import _ from 'lodash'; import _ from 'lodash';
import React, { useCallback, useState } from 'react'; import React, { useCallback, useState } from 'react';
import { useHotkeys } from 'react-hotkeys-hook'; import { useHotkeys } from 'react-hotkeys-hook';
import { deleteWorker, queryWorkersList, updateWorker } from '../apis'; import {
WORKERS_API,
deleteWorker,
queryWorkersList,
updateWorker
} from '../apis';
import { WorkerStatusMapValue, status } from '../config'; import { WorkerStatusMapValue, status } from '../config';
import { Filesystem, GPUDeviceItem, ListItem } from '../config/types'; import { Filesystem, GPUDeviceItem, ListItem } from '../config/types';
import AddWorker from './add-worker'; import AddWorker from './add-worker';
@@ -100,7 +105,9 @@ const Workers: React.FC = () => {
} = useTableFetch<ListItem>({ } = useTableFetch<ListItem>({
fetchAPI: queryWorkersList, fetchAPI: queryWorkersList,
deleteAPI: deleteWorker, deleteAPI: deleteWorker,
contentForDelete: 'worker' contentForDelete: 'worker',
watch: true,
API: WORKERS_API
}); });
const intl = useIntl(); const intl = useIntl();