Spaces:
Running
Running
File size: 1,200 Bytes
fc69895 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
// Shouldn't be needed if we dove into sveltekit internals, see https://github.com/huggingface/chat-ui/pull/88#issuecomment-1523173850
import { logger } from "$lib/server/logger";
import { collections } from "$lib/server/database";
import { onExit } from "./exitHandler";
export class AbortedGenerations {
private static instance: AbortedGenerations;
private abortedGenerations: Record<string, Date> = {};
private constructor() {
const interval = setInterval(() => this.updateList(), 1000);
onExit(() => clearInterval(interval));
this.updateList();
}
public static getInstance(): AbortedGenerations {
if (!AbortedGenerations.instance) {
AbortedGenerations.instance = new AbortedGenerations();
}
return AbortedGenerations.instance;
}
public getAbortTime(conversationId: string): Date | undefined {
return this.abortedGenerations[conversationId];
}
private async updateList() {
try {
const aborts = await collections.abortedGenerations.find({}).sort({ createdAt: 1 }).toArray();
this.abortedGenerations = Object.fromEntries(
aborts.map((abort) => [abort.conversationId.toString(), abort.createdAt])
);
} catch (err) {
logger.error(err);
}
}
}
|