@tanstack/ai
Version:
Type-safe TypeScript AI SDK for streaming chat, tool calling, agents, structured outputs, and multimodal generation.
44 lines (43 loc) • 1.29 kB
JavaScript
import { firstNumber } from "../utilities/numbers.js";
function usageAttributes(usage) {
const attrs = {
"gen_ai.usage.input_tokens": usage.promptTokens,
"gen_ai.usage.output_tokens": usage.completionTokens
};
const optional = [
["gen_ai.usage.total_tokens", usage.totalTokens],
["gen_ai.usage.cost", usage.cost],
[
"gen_ai.usage.cache_read.input_tokens",
usage.promptTokensDetails?.cachedTokens
],
[
"gen_ai.usage.cache_creation.input_tokens",
usage.promptTokensDetails?.cacheWriteTokens
],
[
"gen_ai.usage.reasoning.output_tokens",
usage.completionTokensDetails?.reasoningTokens
],
["tanstack.ai.usage.duration_seconds", usage.durationSeconds],
["tanstack.ai.usage.units_billed", usage.unitsBilled],
["tanstack.ai.usage.upstream_cost", usage.costDetails?.upstreamCost],
[
"tanstack.ai.usage.upstream_input_cost",
usage.costDetails?.upstreamInputCost
],
[
"tanstack.ai.usage.upstream_output_cost",
usage.costDetails?.upstreamOutputCost
]
];
for (const [key, value] of optional) {
const num = firstNumber(value);
if (num !== void 0) attrs[key] = num;
}
return attrs;
}
export {
usageAttributes
};
//# sourceMappingURL=usage-attributes.js.map