Gemini | Token Counting

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.

Simple Example

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?'));

Advanced Example

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;