From aa3dc32f6b26d1e67e59eedca1b64478cc278cba Mon Sep 17 00:00:00 2001 From: Roman Makarewicz <68195466+err09r@users.noreply.github.com> Date: Mon, 13 May 2024 22:36:52 +0200 Subject: [PATCH 1/3] Add gpt-4o model Source: https://platform.openai.com/docs/models/gpt-4o --- bot/openai_helper.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/bot/openai_helper.py b/bot/openai_helper.py index 24eaa49..2d40e82 100644 --- a/bot/openai_helper.py +++ b/bot/openai_helper.py @@ -28,7 +28,8 @@ GPT_4_MODELS = ("gpt-4", "gpt-4-0314", "gpt-4-0613") GPT_4_32K_MODELS = ("gpt-4-32k", "gpt-4-32k-0314", "gpt-4-32k-0613") GPT_4_VISION_MODELS = ("gpt-4-vision-preview",) GPT_4_128K_MODELS = ("gpt-4-1106-preview","gpt-4-0125-preview","gpt-4-turbo-preview") -GPT_ALL_MODELS = GPT_3_MODELS + GPT_3_16K_MODELS + GPT_4_MODELS + GPT_4_32K_MODELS + GPT_4_VISION_MODELS + GPT_4_128K_MODELS +GPT_4O_MODELS = ("gpt-4o") +GPT_ALL_MODELS = GPT_3_MODELS + GPT_3_16K_MODELS + GPT_4_MODELS + GPT_4_32K_MODELS + GPT_4_VISION_MODELS + GPT_4_128K_MODELS + GPT_4O_MODELS def default_max_tokens(model: str) -> int: @@ -42,7 +43,7 @@ def default_max_tokens(model: str) -> int: return base elif model in GPT_4_MODELS: return base * 2 - elif model in GPT_3_16K_MODELS: + elif model in GPT_3_16K_MODELS: if model == "gpt-3.5-turbo-1106": return 4096 return base * 4 @@ -52,6 +53,8 @@ def default_max_tokens(model: str) -> int: return 4096 elif model in GPT_4_128K_MODELS: return 4096 + elif model in GPT_4O_MODELS: + return 4096 def are_functions_available(model: str) -> bool: @@ -634,6 +637,8 @@ class OpenAIHelper: return base * 31 if self.config['model'] in GPT_4_128K_MODELS: return base * 31 + if self.config['model'] in GPT_4O_MODELS: + return base * 31 raise NotImplementedError( f"Max tokens for model {self.config['model']} is not implemented yet." ) @@ -654,7 +659,7 @@ class OpenAIHelper: if model in GPT_3_MODELS + GPT_3_16K_MODELS: tokens_per_message = 4 # every message follows <|start|>{role/name}\n{content}<|end|>\n tokens_per_name = -1 # if there's a name, the role is omitted - elif model in GPT_4_MODELS + GPT_4_32K_MODELS + GPT_4_VISION_MODELS + GPT_4_128K_MODELS: + elif model in GPT_4_MODELS + GPT_4_32K_MODELS + GPT_4_VISION_MODELS + GPT_4_128K_MODELS + GPT_4O_MODELS: tokens_per_message = 3 tokens_per_name = 1 else: From 30aea9903b862033ae281d9c3f9b21d1a4812f4b Mon Sep 17 00:00:00 2001 From: Roman Makarewicz <68195466+err09r@users.noreply.github.com> Date: Tue, 14 May 2024 08:51:44 +0200 Subject: [PATCH 2/3] Fix missing comma in one-item tuple --- bot/openai_helper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/openai_helper.py b/bot/openai_helper.py index 2d40e82..f36af99 100644 --- a/bot/openai_helper.py +++ b/bot/openai_helper.py @@ -28,7 +28,7 @@ GPT_4_MODELS = ("gpt-4", "gpt-4-0314", "gpt-4-0613") GPT_4_32K_MODELS = ("gpt-4-32k", "gpt-4-32k-0314", "gpt-4-32k-0613") GPT_4_VISION_MODELS = ("gpt-4-vision-preview",) GPT_4_128K_MODELS = ("gpt-4-1106-preview","gpt-4-0125-preview","gpt-4-turbo-preview") -GPT_4O_MODELS = ("gpt-4o") +GPT_4O_MODELS = ("gpt-4o",) GPT_ALL_MODELS = GPT_3_MODELS + GPT_3_16K_MODELS + GPT_4_MODELS + GPT_4_32K_MODELS + GPT_4_VISION_MODELS + GPT_4_128K_MODELS + GPT_4O_MODELS From 54c4afc022521fb21d379efb6a7a1c342be34d0a Mon Sep 17 00:00:00 2001 From: Roman Makarewicz <68195466+err09r@users.noreply.github.com> Date: Tue, 14 May 2024 08:53:17 +0200 Subject: [PATCH 3/3] Bump tiktoken version to 0.7.0 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6d9ff92..95072d4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ python-dotenv~=1.0.0 pydub~=0.25.1 -tiktoken==0.5.1 +tiktoken==0.7.0 openai==1.3.3 python-telegram-bot==20.3 requests~=2.31.0