From 4da1a7d0ac78dd5641f39bf92c70b289b1d947e6 Mon Sep 17 00:00:00 2001 From: shenchucheng Date: Thu, 17 Aug 2023 17:47:03 +0800 Subject: [PATCH] Fix the 'get_max_completion_tokens' function to prevent reaching the maximum limit. --- metagpt/utils/token_counter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metagpt/utils/token_counter.py b/metagpt/utils/token_counter.py index 591bb60f0..a5a65803a 100644 --- a/metagpt/utils/token_counter.py +++ b/metagpt/utils/token_counter.py @@ -96,7 +96,7 @@ def count_string_tokens(string: str, model_name: str) -> int: return len(encoding.encode(string)) -def get_max_completion_tokens(messages: list[dict], model: str, default: int) -> int: +def get_max_completion_tokens(messages: list[dict], model: str, default: int) -> int: """Calculate the maximum number of completion tokens for a given model and list of messages. Args: @@ -108,4 +108,4 @@ def get_max_completion_tokens(messages: list[dict], model: str, default: int) -> """ if model not in TOKEN_MAX: return default - return TOKEN_MAX[model] - count_message_tokens(messages) + return TOKEN_MAX[model] - count_message_tokens(messages) - 1