From 324346db5cd1981c0d8ad19a2fe2f3010d7d47c3 Mon Sep 17 00:00:00 2001 From: Charles Packer Date: Fri, 22 Nov 2024 12:13:10 -0800 Subject: [PATCH] fix: extra safety checks in the token counter for functions (#2061) --- letta/local_llm/utils.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/letta/local_llm/utils.py b/letta/local_llm/utils.py index 9d625e75..8ded1f82 100644 --- a/letta/local_llm/utils.py +++ b/letta/local_llm/utils.py @@ -95,9 +95,12 @@ def num_tokens_from_functions(functions: List[dict], model: str = "gpt-4"): for function in functions: function_tokens = len(encoding.encode(function["name"])) if function["description"]: - function_tokens += len(encoding.encode(function["description"])) + if not isinstance(function["description"], str): + warnings.warn(f"Function {function['name']} has non-string description: {function['description']}") + else: + function_tokens += len(encoding.encode(function["description"])) else: - raise ValueError(f"Function {function['name']} has no description, function: {function}") + warnings.warn(f"Function {function['name']} has no description, function: {function}") if "parameters" in function: parameters = function["parameters"]