diff --git a/ui/litellm-dashboard/src/components/lens/api/queries.ts b/ui/litellm-dashboard/src/components/lens/api/queries.ts index a17299b758f..7b81dc5faea 100644 --- a/ui/litellm-dashboard/src/components/lens/api/queries.ts +++ b/ui/litellm-dashboard/src/components/lens/api/queries.ts @@ -4,6 +4,8 @@ import type { KeyPage, LensApi } from "./service"; export type { Key } from "./service"; +const LIVE_REVIEW_POLL_MS = 1500; + export const lensKeys = { all: ["lens"] as const, lists: () => [...lensKeys.all, "list"] as const, @@ -14,6 +16,8 @@ export const lensKeys = { runs: () => [...lensKeys.all, "run"] as const, run: (scope: string, lensId: string | undefined, batchId: string) => [...lensKeys.runs(), { scope, lensId, batchId }] as const, + reviews: (scope: string, lensId: string, jobId: string, after: number) => + [...lensKeys.all, "reviews", { scope, lensId, jobId, after }] as const, evidence: (scope: string, lensId: string | undefined, evidenceId: string | undefined, offset: number) => [...lensKeys.all, "evidence", { scope, lensId, evidenceId, offset }] as const, models: (scope: string) => [...lensKeys.all, "models", { scope }] as const, @@ -79,6 +83,17 @@ export const lensQueries = { }; return queryOptions(options); }, + reviews( + api: LensApi, + { lensId, jobId, after, live }: { lensId: string; jobId: string; after: number; live: boolean }, + ) { + const options = { + queryKey: lensKeys.reviews(api.scope, lensId, jobId, after), + queryFn: () => api.reviews(lensId, jobId, after), + refetchInterval: live ? LIVE_REVIEW_POLL_MS : (false as const), + }; + return queryOptions(options); + }, evidence( api: LensApi, {