File size: 768 Bytes
f415c95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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<GenerationStats>);

	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<GenerationStats>) => {
		stats = s;
	};

	return Object.assign(stats, { set, init });
}

export const generationStats = createGenerationStats();