[docs]def__init__(self,model_name:str,api_key:str,**kwargs:Any)->None:"""Initialize the Gemini token counter. Args: model_name (`str`): The name of the Gemini model to use, e.g. "gemini-2.5-flash". api_key (`str`): The API key for Google Gemini. **kwargs: Additional keyword arguments that will be passed to the Gemini client. """fromgoogleimportgenaiself.client=genai.Client(api_key=api_key,**kwargs,)self.model_name=model_name
[docs]asyncdefcount(self,messages:list[dict],tools:list[dict]|None=None,**config_kwargs:Any,)->int:"""Count the number of tokens of gemini models."""kwargs={"model":self.model_name,"contents":messages,"config":{"tools":tools,**config_kwargs,},}res=self.client.models.count_tokens(**kwargs)returnres.total_tokens