From 2ccc15ea8865966618cf804968a5ca14ae364345 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Sun, 13 Oct 2024 00:17:55 +0000 Subject: feature: Support regenerating AI tags only for failed bookmarks --- .../components/dashboard/admin/AdminActions.tsx | 11 +++++++- packages/trpc/routers/admin.ts | 29 ++++++++++++++-------- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/apps/web/components/dashboard/admin/AdminActions.tsx b/apps/web/components/dashboard/admin/AdminActions.tsx index e5d6ed69..a97552f8 100644 --- a/apps/web/components/dashboard/admin/AdminActions.tsx +++ b/apps/web/components/dashboard/admin/AdminActions.tsx @@ -101,7 +101,16 @@ export default function AdminActions() { reRunInferenceOnAllBookmarks()} + onClick={() => + reRunInferenceOnAllBookmarks({ taggingStatus: "failure" }) + } + > + Regenerate AI Tags for Failed Bookmarks Only + + reRunInferenceOnAllBookmarks({ taggingStatus: "all" })} > Regenerate AI Tags for All Bookmarks diff --git a/packages/trpc/routers/admin.ts b/packages/trpc/routers/admin.ts index ff1249d0..d8ffe9d3 100644 --- a/packages/trpc/routers/admin.ts +++ b/packages/trpc/routers/admin.ts @@ -145,17 +145,26 @@ export const adminAppRouter = router({ await Promise.all(bookmarkIds.map((b) => triggerSearchReindex(b.id))); }), - reRunInferenceOnAllBookmarks: adminProcedure.mutation(async ({ ctx }) => { - const bookmarkIds = await ctx.db.query.bookmarks.findMany({ - columns: { - id: true, - }, - }); + reRunInferenceOnAllBookmarks: adminProcedure + .input( + z.object({ + taggingStatus: z.enum(["success", "failure", "all"]), + }), + ) + .mutation(async ({ input, ctx }) => { + const bookmarkIds = await ctx.db.query.bookmarks.findMany({ + columns: { + id: true, + }, + ...(input.taggingStatus === "all" + ? {} + : { where: eq(bookmarks.taggingStatus, input.taggingStatus) }), + }); - await Promise.all( - bookmarkIds.map((b) => OpenAIQueue.enqueue({ bookmarkId: b.id })), - ); - }), + await Promise.all( + bookmarkIds.map((b) => OpenAIQueue.enqueue({ bookmarkId: b.id })), + ); + }), tidyAssets: adminProcedure.mutation(async () => { await TidyAssetsQueue.enqueue({ cleanDanglingAssets: true, -- cgit v1.2.3-70-g09d2