From 42eb356a44761a61dc38e91d5e64d71ce0da2023 Mon Sep 17 00:00:00 2001 From: Mohammad Mohtashim <45242107+keenborder786@users.noreply.github.com> Date: Wed, 11 Jun 2025 01:00:00 +0500 Subject: [PATCH] [OpenAI]: Encoding Model (#31402) - **Description:** Small Fix for when getting the encoder in case of KeyError and using the correct encoder for newer models - **Issue:** #31390 --- libs/partners/openai/langchain_openai/chat_models/base.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/partners/openai/langchain_openai/chat_models/base.py b/libs/partners/openai/langchain_openai/chat_models/base.py index a1711cd6d7a..a9935e68dd1 100644 --- a/libs/partners/openai/langchain_openai/chat_models/base.py +++ b/libs/partners/openai/langchain_openai/chat_models/base.py @@ -1259,8 +1259,12 @@ class BaseChatOpenAI(BaseChatModel): try: encoding = tiktoken.encoding_for_model(model) except KeyError: - model = "cl100k_base" - encoding = tiktoken.get_encoding(model) + encoder = "cl100k_base" + if self.model_name.startswith("gpt-4o") or self.model_name.startswith( + "gpt-4.1" + ): + encoder = "o200k_base" + encoding = tiktoken.get_encoding(encoder) return model, encoding def get_token_ids(self, text: str) -> list[int]: