Get the number of tokens in the messages.
Uses the Vertex AI count_tokens API to accurately count tokens, including multi-modal content like images and videos.
get_num_tokens_from_messages(
self,
messages: Sequence[BaseMessage],
tools: Sequence[Any] | None = None
) -> intExample:
from langchain_core.messages import HumanMessage
from langchain_google_vertexai import ChatVertexAI
llm = ChatVertexAI(model="gemini-2.0-flash")
# Text-only message
messages = [HumanMessage(content="Hello, world!")]
token_count = llm.get_num_tokens_from_messages(messages)
# Multi-modal message with image
messages = [
HumanMessage(
content=[
{"type": "text", "text": "What is in this image?"},
{
"type": "image_url",
"image_url": {"url": "data:image/png;base64,..."},
},
]
)
]
token_count = llm.get_num_tokens_from_messages(messages)| Name | Type | Description |
|---|---|---|
messages* | Sequence[BaseMessage] | The list of messages to count tokens for. |
tools | Sequence[Any] | None | Default: NoneOptional list of tools to include in token count. Currently not supported and will be ignored. |