import { getTokens } from "$lib/components/inference-playground/utils.js"; import { watch } from "runed"; import { session } from "./session.svelte"; export interface GenerationStats { latency: number; generatedTokensCount: number; } function createGenerationStats() { let stats = $state([] as Array); const init = () => { watch( () => $state.snapshot(session.project), () => { session.project.conversations.forEach(async (c, i) => { generationStats[i] = { latency: 0, ...generationStats[i], generatedTokensCount: await getTokens(c) }; }); } ); }; const set = (s: Array) => { stats = s; }; return Object.assign(stats, { set, init }); } export const generationStats = createGenerationStats();