Skip to content

Commit 252e927

Browse files
committed
function intent
1 parent 5dfd15f commit 252e927

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

codeflash/code_utils/code_utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010

1111
from codeflash.cli_cmds.console import logger
1212

13-
def encode_str(s: str) -> int:
13+
def encoded_tokens_len(s: str) -> int:
14+
'''Function for returning the approximate length of the encoded tokens
15+
It's an approximation of BPE encoding (https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf)'''
1416
return len(s)//2
1517

1618
def get_qualified_name(module_name: str, full_qualified_name: str) -> str:

codeflash/context/code_context_extractor.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
from codeflash.cli_cmds.console import logger
1414
from codeflash.code_utils.code_extractor import add_needed_imports_from_module, find_preexisting_objects
15-
from codeflash.code_utils.code_utils import get_qualified_name, path_belongs_to_site_packages, encode_str
15+
from codeflash.code_utils.code_utils import get_qualified_name, path_belongs_to_site_packages, encoded_tokens_len
1616
from codeflash.context.unused_definition_remover import remove_unused_definitions_by_function_names
1717
from codeflash.discovery.functions_to_optimize import FunctionToOptimize
1818
from codeflash.models.models import (
@@ -72,7 +72,7 @@ def get_code_optimization_context(
7272
)
7373

7474
# Handle token limits
75-
final_read_writable_tokens = encode_str(final_read_writable_code)
75+
final_read_writable_tokens = encoded_tokens_len(final_read_writable_code)
7676
if final_read_writable_tokens > optim_token_limit:
7777
raise ValueError("Read-writable code has exceeded token limit, cannot proceed")
7878

@@ -85,7 +85,7 @@ def get_code_optimization_context(
8585
)
8686
read_only_context_code = read_only_code_markdown.markdown
8787

88-
read_only_code_markdown_tokens = encode_str(read_only_context_code)
88+
read_only_code_markdown_tokens = encoded_tokens_len(read_only_context_code)
8989
total_tokens = final_read_writable_tokens + read_only_code_markdown_tokens
9090
if total_tokens > optim_token_limit:
9191
logger.debug("Code context has exceeded token limit, removing docstrings from read-only code")
@@ -94,7 +94,7 @@ def get_code_optimization_context(
9494
helpers_of_fto_dict, helpers_of_helpers_dict, project_root_path, remove_docstrings=True
9595
)
9696
read_only_context_code = read_only_code_no_docstring_markdown.markdown
97-
read_only_code_no_docstring_markdown_tokens = encode_str(read_only_context_code)
97+
read_only_code_no_docstring_markdown_tokens = encoded_tokens_len(read_only_context_code)
9898
total_tokens = final_read_writable_tokens + read_only_code_no_docstring_markdown_tokens
9999
if total_tokens > optim_token_limit:
100100
logger.debug("Code context has exceeded token limit, removing read-only code")
@@ -109,7 +109,7 @@ def get_code_optimization_context(
109109
code_context_type=CodeContextType.TESTGEN,
110110
)
111111
testgen_context_code = testgen_code_markdown.code
112-
testgen_context_code_tokens = encode_str(testgen_context_code)
112+
testgen_context_code_tokens = encoded_tokens_len(testgen_context_code)
113113
if testgen_context_code_tokens > testgen_token_limit:
114114
testgen_code_markdown = extract_code_string_context_from_files(
115115
helpers_of_fto_dict,
@@ -119,7 +119,7 @@ def get_code_optimization_context(
119119
code_context_type=CodeContextType.TESTGEN,
120120
)
121121
testgen_context_code = testgen_code_markdown.code
122-
testgen_context_code_tokens = encode_str(testgen_context_code)
122+
testgen_context_code_tokens = encoded_tokens_len(testgen_context_code)
123123
if testgen_context_code_tokens > testgen_token_limit:
124124
raise ValueError("Testgen code context has exceeded token limit, cannot proceed")
125125

0 commit comments

Comments
 (0)