File tree Expand file tree Collapse file tree 3 files changed +16
-8
lines changed
Expand file tree Collapse file tree 3 files changed +16
-8
lines changed Original file line number Diff line number Diff line change @@ -936,8 +936,12 @@ export class AgentBlockHandler implements BlockHandler {
936936 systemPrompt : validMessages ? undefined : inputs . systemPrompt ,
937937 context : validMessages ? undefined : stringifyJSON ( messages ) ,
938938 tools : formattedTools ,
939- temperature : inputs . temperature != null ? Number ( inputs . temperature ) : undefined ,
940- maxTokens : inputs . maxTokens != null ? Number ( inputs . maxTokens ) : undefined ,
939+ temperature :
940+ inputs . temperature != null && inputs . temperature !== ''
941+ ? Number ( inputs . temperature )
942+ : undefined ,
943+ maxTokens :
944+ inputs . maxTokens != null && inputs . maxTokens !== '' ? Number ( inputs . maxTokens ) : undefined ,
941945 apiKey : inputs . apiKey ,
942946 azureEndpoint : inputs . azureEndpoint ,
943947 azureApiVersion : inputs . azureApiVersion ,
Original file line number Diff line number Diff line change @@ -14,8 +14,8 @@ export interface AgentInputs {
1414 slidingWindowSize ?: string // For message-based sliding window
1515 slidingWindowTokens ?: string // For token-based sliding window
1616 // LLM parameters
17- temperature ?: number
18- maxTokens ?: number
17+ temperature ?: string
18+ maxTokens ?: string
1919 apiKey ?: string
2020 azureEndpoint ?: string
2121 azureApiVersion ?: string
Original file line number Diff line number Diff line change @@ -123,17 +123,21 @@ export function extractFunctionCallPart(candidate: Candidate | undefined): Part
123123}
124124
125125/**
126- * Converts usage metadata from SDK response to our format
126+ * Converts usage metadata from SDK response to our format.
127+ * Per Gemini docs, total = promptTokenCount + candidatesTokenCount + toolUsePromptTokenCount + thoughtsTokenCount
128+ * We include toolUsePromptTokenCount in input and thoughtsTokenCount in output for correct billing.
127129 */
128130export function convertUsageMetadata (
129131 usageMetadata : GenerateContentResponseUsageMetadata | undefined
130132) : GeminiUsage {
131- const promptTokenCount = usageMetadata ?. promptTokenCount ?? 0
132- const candidatesTokenCount = usageMetadata ?. candidatesTokenCount ?? 0
133+ const thoughtsTokenCount = usageMetadata ?. thoughtsTokenCount ?? 0
134+ const toolUsePromptTokenCount = usageMetadata ?. toolUsePromptTokenCount ?? 0
135+ const promptTokenCount = ( usageMetadata ?. promptTokenCount ?? 0 ) + toolUsePromptTokenCount
136+ const candidatesTokenCount = ( usageMetadata ?. candidatesTokenCount ?? 0 ) + thoughtsTokenCount
133137 return {
134138 promptTokenCount,
135139 candidatesTokenCount,
136- totalTokenCount : usageMetadata ?. totalTokenCount ?? promptTokenCount + candidatesTokenCount ,
140+ totalTokenCount : usageMetadata ?. totalTokenCount ?? 0 ,
137141 }
138142}
139143
You can’t perform that action at this time.
0 commit comments