mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-29 01:42:19 +00:00
fix(usage): regenerate lazy openapi snapshot and stay under lint budgets
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
parent
79e579246e
commit
dd0358ea03
3 changed files with 27 additions and 9 deletions
|
|
@ -3095,6 +3095,18 @@
|
|||
"title": "Has More",
|
||||
"type": "boolean"
|
||||
},
|
||||
"next_cursor": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "Opaque cursor for the next page of api_keys; None when every key is loaded",
|
||||
"title": "Next Cursor"
|
||||
},
|
||||
"page": {
|
||||
"default": 1,
|
||||
"title": "Page",
|
||||
|
|
|
|||
|
|
@ -168,13 +168,15 @@ const EntityUsage: React.FC<EntityUsageProps> = ({
|
|||
const spendData = loadedPages?.base === spendDataBase ? loadedPages.merged : spendDataBase;
|
||||
const apiKeyTruncation = getApiKeyTruncation(spendData.metadata?.api_key_limit, spendData.metadata?.total_api_keys);
|
||||
|
||||
const keyPageWindow =
|
||||
accessToken && startTime && endTime ? { accessToken, startTime, endTime } : null;
|
||||
const loadMoreKeys =
|
||||
aggregatedFetchFn && accessToken && startTime && endTime && spendData.metadata?.next_cursor
|
||||
aggregatedFetchFn && keyPageWindow && spendData.metadata?.next_cursor
|
||||
? () =>
|
||||
teamDailyActivityAggregatedCall(
|
||||
accessToken,
|
||||
startTime,
|
||||
endTime,
|
||||
keyPageWindow.accessToken,
|
||||
keyPageWindow.startTime,
|
||||
keyPageWindow.endTime,
|
||||
Array.isArray(entityFilterArg) ? entityFilterArg : null,
|
||||
spendData.metadata?.next_cursor ?? null,
|
||||
).then((page: EntitySpendData) => {
|
||||
|
|
|
|||
|
|
@ -440,13 +440,17 @@ const UsagePage: React.FC<UsagePageProps> = ({ teams, organizations }) => {
|
|||
);
|
||||
const keyMetrics = useMemo(() => processActivityData(userSpendData, "api_keys", teams), [userSpendData, teams]);
|
||||
const aggregatedCursor = activeAggregated?.metadata?.next_cursor;
|
||||
const keyPageWindow = useMemo(
|
||||
() => (accessToken && startTime && endTime ? { accessToken, startTime, endTime } : null),
|
||||
[accessToken, startTime, endTime],
|
||||
);
|
||||
const loadMoreKeys = useCallback(() => {
|
||||
if (!accessToken || !startTime || !endTime || !aggregatedCursor) return Promise.resolve();
|
||||
if (!keyPageWindow || !aggregatedCursor) return Promise.resolve();
|
||||
const rangeKey = currentAggregatedRangeKey;
|
||||
return userDailyActivityAggregatedCall(
|
||||
accessToken,
|
||||
startTime,
|
||||
endTime,
|
||||
keyPageWindow.accessToken,
|
||||
keyPageWindow.startTime,
|
||||
keyPageWindow.endTime,
|
||||
effectiveUserId,
|
||||
false,
|
||||
null,
|
||||
|
|
@ -456,7 +460,7 @@ const UsagePage: React.FC<UsagePageProps> = ({ teams, organizations }) => {
|
|||
prev && prev.rangeKey === rangeKey ? { rangeKey, value: mergeKeyPage(prev.value, page) } : prev,
|
||||
);
|
||||
});
|
||||
}, [accessToken, startTime, endTime, effectiveUserId, aggregatedCursor, currentAggregatedRangeKey]);
|
||||
}, [keyPageWindow, effectiveUserId, aggregatedCursor, currentAggregatedRangeKey]);
|
||||
const searchKeys = useCallback(
|
||||
(q: string) => {
|
||||
if (!accessToken || !startTime || !endTime) return Promise.resolve({});
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue