Count the number of tokens in a message before sending it to the API. This helps estimate costs and ensure messages fit within model limits.
Count tokens for a message.
Gemini := TsgcHTTP_API_Gemini.Create(nil);
Gemini.GeminiOptions.ApiKey := 'API_KEY';
WriteLn(Gemini._CountTokens('gemini-2.0-flash', 'Hello, how are you?'));
Use the typed request/response classes for full control over token counting parameters.
Gemini := TsgcHTTP_API_Gemini.Create(nil);
Gemini.GeminiOptions.ApiKey := 'API_KEY';
oRequest := TsgcGeminiClass_Request_CountTokens.Create;
Try
oRequest.Model := 'gemini-2.0-flash';
SetLength(oContents, 1);
oContents[0] := TsgcGeminiClass_Request_Content.Create;
oContents[0].Role := 'user';
SetLength(oParts, 1);
oParts[0] := TsgcGeminiClass_Request_Part.Create;
oParts[0].Text := 'Explain quantum computing in simple terms.';
oContents[0].Parts := oParts;
oRequest.Contents := oContents;
oResponse := Gemini.CountTokens(oRequest);
Try
WriteLn('Total tokens: ' + IntToStr(oResponse.TotalTokens));
Finally
oResponse.Free;
End;
Finally
oParts[0].Free;
oContents[0].Free;
oRequest.Free;
End;