Skip to content

Commit

Permalink
Add file queue information to Slider component
Browse files Browse the repository at this point in the history
  • Loading branch information
mxdlzg committed May 13, 2024
1 parent 1fd935e commit efc4fb4
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 14 deletions.
24 changes: 20 additions & 4 deletions projects/app/src/pages/dataset/detail/components/Slider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ const Slider = ({ currentTab }: { currentTab: TabEnum }) => {
const { isPc, setLoading } = useSystemStore();
const vectorTrainingMap = useContextSelector(DatasetPageContext, (v) => v.vectorTrainingMap);
const agentTrainingMap = useContextSelector(DatasetPageContext, (v) => v.agentTrainingMap);
const fileQueueMap = useContextSelector(DatasetPageContext, (v) => v.fileQueueMap);
const rebuildingCount = useContextSelector(DatasetPageContext, (v) => v.rebuildingCount);

const tabList = [
Expand Down Expand Up @@ -144,23 +145,38 @@ const Slider = ({ currentTab }: { currentTab: TabEnum }) => {
)}
<Box mb={3}>
<Box fontSize={'sm'}>
{t('core.dataset.training.Agent queue')}({agentTrainingMap.tip})
{t('core.dataset.training.File queue')}({fileQueueMap.trainingCount})
</Box>
<Progress
value={100}
value={fileQueueMap.trainingPercentage}
size={'xs'}
colorScheme={fileQueueMap.colorSchema}
borderRadius={'10px'}
isAnimated
hasStripe
/>
</Box>

<Box mb={3}>
<Box fontSize={'sm'}>
{t('core.dataset.training.Agent queue')}({agentTrainingMap.trainingCount})
</Box>
<Progress
value={agentTrainingMap.trainingPercentage}
size={'xs'}
colorScheme={agentTrainingMap.colorSchema}
borderRadius={'10px'}
isAnimated
hasStripe
/>
</Box>

<Box mb={3}>
<Box fontSize={'sm'}>
{t('core.dataset.training.Vector queue')}({vectorTrainingMap.tip})
{t('core.dataset.training.Vector queue')}({vectorTrainingMap.trainingCount})
</Box>
<Progress
value={100}
value={vectorTrainingMap.trainingPercentage}
size={'xs'}
colorScheme={vectorTrainingMap.colorSchema}
borderRadius={'10px'}
Expand Down
90 changes: 80 additions & 10 deletions projects/app/src/web/core/dataset/context/datasetPageContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,20 @@ type DatasetPageContextType = {
vectorTrainingMap: {
colorSchema: string;
tip: string;
trainingCount: number;
trainingPercentage: number;
};
agentTrainingMap: {
colorSchema: string;
tip: string;
trainingCount: number;
trainingPercentage: number;
};
fileQueueMap: {
colorSchema: string;
tip: string;
trainingCount: number;
trainingPercentage: number;
};
rebuildingCount: number;
trainingCount: number;
Expand All @@ -23,14 +33,28 @@ type DatasetPageContextValueType = {
datasetId: string;
};

const MAX_VECTOR_QUEUE_SIZE = 2000;
const MAX_QA_QUEUE_SIZE = 500;
const MAX_FILE_QUEUE_SIZE = 50;

export const DatasetPageContext = createContext<DatasetPageContextType>({
vectorTrainingMap: {
colorSchema: '',
tip: ''
tip: '',
trainingCount: 0,
trainingPercentage: 0
},
agentTrainingMap: {
colorSchema: '',
tip: ''
tip: '',
trainingCount: 0,
trainingPercentage: 0
},
fileQueueMap: {
colorSchema: '',
tip: '',
trainingCount: 0,
trainingPercentage: 0
},
rebuildingCount: 0,
trainingCount: 0,
Expand All @@ -51,7 +75,7 @@ export const DatasetPageContextProvider = ({
const { datasetDetail } = useDatasetStore();

// global queue
const { data: { vectorTrainingCount = 0, agentTrainingCount = 0 } = {} } = useQuery(
const { data: { vectorTrainingCount = 0, agentTrainingCount = 0, fileQueueCount = 0 } = {} } = useQuery(
['getTrainingQueueLen'],
() =>
getTrainingQueueLen({
Expand All @@ -62,44 +86,89 @@ export const DatasetPageContextProvider = ({
refetchInterval: 10000
}
);
const { vectorTrainingMap, agentTrainingMap } = useMemo(() => {
const { vectorTrainingMap, agentTrainingMap, fileQueueMap } = useMemo(() => {
// vector training queue
const vectorTrainingMap = (() => {
if (vectorTrainingCount < 1000)
let vectorPercentage = vectorTrainingCount > MAX_VECTOR_QUEUE_SIZE ? 0 : 100 - Math.round((vectorTrainingCount / MAX_VECTOR_QUEUE_SIZE) * 100);

if (vectorPercentage > 80)
return {
trainingCount: vectorTrainingCount,
trainingPercentage: vectorPercentage,
colorSchema: 'green',
tip: t('core.dataset.training.Leisure')
};
if (vectorTrainingCount < 10000)
if (vectorPercentage > 50)
return {
trainingCount: vectorTrainingCount,
trainingPercentage: vectorPercentage,
colorSchema: 'yellow',
tip: t('core.dataset.training.Waiting')
};
return {
trainingCount: vectorTrainingCount,
trainingPercentage: vectorPercentage,
colorSchema: 'red',
tip: t('core.dataset.training.Full')
};
})();

// agent training queue
const agentTrainingMap = (() => {
if (agentTrainingCount < 100)
let qaPercentage = agentTrainingCount > MAX_QA_QUEUE_SIZE ? 0 : 100 - Math.round((agentTrainingCount / MAX_QA_QUEUE_SIZE) * 100);
if (qaPercentage > 80)
return {
trainingCount: agentTrainingCount,
trainingPercentage: qaPercentage,
colorSchema: 'green',
tip: t('core.dataset.training.Leisure')
};
if (agentTrainingCount < 1000)
if (qaPercentage > 50)
return {
trainingCount: agentTrainingCount,
trainingPercentage: qaPercentage,
colorSchema: 'yellow',
tip: t('core.dataset.training.Waiting')
};
return {
trainingCount: agentTrainingCount,
trainingPercentage: qaPercentage,
colorSchema: 'red',
tip: t('core.dataset.training.Full')
};
})();

// file queue
const fileQueueMap = (() => {
let fileQueuePercentage = fileQueueCount > MAX_FILE_QUEUE_SIZE ? 0 : 100 - Math.round((fileQueueCount / MAX_FILE_QUEUE_SIZE) * 100);
if (fileQueuePercentage > 80)
return {
trainingCount: fileQueueCount,
trainingPercentage: fileQueuePercentage,
colorSchema: 'green',
tip: t('core.dataset.training.Leisure')
};
if (fileQueuePercentage > 50)
return {
trainingCount: fileQueueCount,
trainingPercentage: fileQueuePercentage,
colorSchema: 'yellow',
tip: t('core.dataset.training.Waiting')
};
return {
trainingCount: fileQueueCount,
trainingPercentage: fileQueuePercentage,
colorSchema: 'red',
tip: t('core.dataset.training.Full')
};
})();

return {
vectorTrainingMap,
agentTrainingMap
agentTrainingMap,
fileQueueMap
};
}, [agentTrainingCount, t, vectorTrainingCount]);
}, [agentTrainingCount, t, vectorTrainingCount, fileQueueCount]);

// training and rebuild queue
const { data: { rebuildingCount = 0, trainingCount = 0 } = {}, refetch: refetchDatasetTraining } =
Expand All @@ -110,6 +179,7 @@ export const DatasetPageContextProvider = ({
const contextValue: DatasetPageContextType = {
vectorTrainingMap,
agentTrainingMap,
fileQueueMap,
rebuildingCount,
trainingCount,
refetchDatasetTraining
Expand Down

0 comments on commit efc4fb4

Please sign in to comment.