Skip to content

Commit cfa7974

Browse files
committed
fix to include tool call tokens
1 parent d9438a1 commit cfa7974

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

apps/sim/providers/google/utils.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,19 +124,20 @@ export function extractFunctionCallPart(candidate: Candidate | undefined): Part
124124

125125
/**
126126
* Converts usage metadata from SDK response to our format.
127-
* Includes thinking tokens in candidatesTokenCount for correct billing.
127+
* Per Gemini docs, total = promptTokenCount + candidatesTokenCount + toolUsePromptTokenCount + thoughtsTokenCount
128+
* We include toolUsePromptTokenCount in input and thoughtsTokenCount in output for correct billing.
128129
*/
129130
export function convertUsageMetadata(
130131
usageMetadata: GenerateContentResponseUsageMetadata | undefined
131132
): GeminiUsage {
132-
const promptTokenCount = usageMetadata?.promptTokenCount ?? 0
133133
const thoughtsTokenCount = usageMetadata?.thoughtsTokenCount ?? 0
134-
// Include thinking tokens in output count for correct billing
134+
const toolUsePromptTokenCount = usageMetadata?.toolUsePromptTokenCount ?? 0
135+
const promptTokenCount = (usageMetadata?.promptTokenCount ?? 0) + toolUsePromptTokenCount
135136
const candidatesTokenCount = (usageMetadata?.candidatesTokenCount ?? 0) + thoughtsTokenCount
136137
return {
137138
promptTokenCount,
138139
candidatesTokenCount,
139-
totalTokenCount: usageMetadata?.totalTokenCount ?? promptTokenCount + candidatesTokenCount,
140+
totalTokenCount: usageMetadata?.totalTokenCount ?? 0,
140141
}
141142
}
142143

0 commit comments

Comments
 (0)