Files
homelab/chat/lib/response-metadata.ts
T

13 lines
669 B
TypeScript

import type {ResponseMetadata} from "./conversation-types";
export function responseMetadata(providerId: string, model: string, startedAt: number, outputTokens: number | undefined | null): ResponseMetadata {
const durationMs = Math.max(1, Math.round(performance.now() - startedAt));
const normalizedTokens = typeof outputTokens === "number" && Number.isFinite(outputTokens) && outputTokens >= 0
? Math.round(outputTokens)
: null;
const tokensPerSecond = normalizedTokens === null
? null
: Math.round((normalizedTokens / (durationMs / 1000)) * 10) / 10;
return {providerId, model, durationMs, outputTokens: normalizedTokens, tokensPerSecond};
}