DocDoeAI / src /components /dashboard /studioGenerationQueue.ts
asnannp's picture
deploy: sync backend to Space root (learn-lesson HF cache fix)
65d68f5
Raw History Blame Contribute Delete
1.27 kB
import type { StudioToolId } from "@/components/dashboard/studioTools";
export type StudioGenerationRequestSummary = {
key: string;
toolId: StudioToolId;
toolLabel: string;
sourceIds: string[];
sourceTitle: string;
prompt: string;
isExpensive: boolean;
autoRetryCount: number;
};
const STUDIO_GENERATION_TOOL_ID_LIST: StudioToolId[] = [
"smart-notes",
"ai-quiz",
"flashcards",
"exam-answer",
"answer-correction",
"study-plan",
"last-night-prep",
"study-videos",
"what-to-study",
"exam-war-mode",
"pyq-intelligence",
];
export const STUDIO_GENERATION_TOOL_IDS = new Set<StudioToolId>(STUDIO_GENERATION_TOOL_ID_LIST);
export function isStudioGenerationTool(toolId: StudioToolId) {
return STUDIO_GENERATION_TOOL_IDS.has(toolId);
}
export function isExpensiveStudioTool(toolId: StudioToolId) {
return toolId === "study-videos";
}
export function normalizeStudioPrompt(prompt: string) {
return prompt.trim().replace(/\s+/g, " ");
}
export function buildStudioRequestKey({
toolId,
sourceIds,
prompt,
}: {
toolId: StudioToolId;
sourceIds: string[];
prompt: string;
}) {
return JSON.stringify({
toolId,
sourceIds: [...sourceIds].sort(),
prompt: normalizeStudioPrompt(prompt).toLowerCase(),
});
}