summaryrefslogtreecommitdiff
path: root/continuedev/src/continuedev/steps
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-06-26 13:15:59 -0700
committerNate Sesti <sestinj@gmail.com>2023-06-26 13:15:59 -0700
commit64f202c376a572d9c53a3e87607a7216124c8b35 (patch)
tree4ec6b5834856bdf14dec4ba25781a996f55af863 /continuedev/src/continuedev/steps
parenta2a6f4547b591c90a62c830b92a7b3920bb13b9f (diff)
downloadsncontinue-64f202c376a572d9c53a3e87607a7216124c8b35.tar.gz
sncontinue-64f202c376a572d9c53a3e87607a7216124c8b35.tar.bz2
sncontinue-64f202c376a572d9c53a3e87607a7216124c8b35.zip
token counting with functions
Diffstat (limited to 'continuedev/src/continuedev/steps')
-rw-r--r--continuedev/src/continuedev/steps/core/core.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/continuedev/src/continuedev/steps/core/core.py b/continuedev/src/continuedev/steps/core/core.py
index 24f00d36..0d82b228 100644
--- a/continuedev/src/continuedev/steps/core/core.py
+++ b/continuedev/src/continuedev/steps/core/core.py
@@ -10,7 +10,7 @@ from ...models.filesystem_edit import EditDiff, FileEdit, FileEditWithFullConten
from ...models.filesystem import FileSystem, RangeInFile, RangeInFileWithContents
from ...core.observation import Observation, TextObservation, TracebackObservation, UserInputObservation
from ...core.main import Step, SequentialStep
-from ...libs.util.count_tokens import MAX_TOKENS_FOR_MODEL
+from ...libs.util.count_tokens import MAX_TOKENS_FOR_MODEL, DEFAULT_MAX_TOKENS
import difflib
@@ -211,14 +211,18 @@ class DefaultModelEditCodeStep(Step):
return cur_start_line, cur_end_line
+ # We don't know here all of the functions being passed in.
+ # We care because if this prompt itself goes over the limit, then the entire message will have to be cut from the completion.
+ # Overflow won't happen, but prune_chat_messages in count_tokens.py will cut out this whole thing, instead of us cutting out only as many lines as we need.
+ BUFFER_FOR_FUNCTIONS = 200
+ total_tokens = model_to_use.count_tokens(
+ full_file_contents + self._prompt + self.user_input) + DEFAULT_MAX_TOKENS + BUFFER_FOR_FUNCTIONS
+
model_to_use = sdk.models.default
if model_to_use.name == "gpt-3.5-turbo":
- if sdk.models.gpt35.count_tokens(full_file_contents) > MAX_TOKENS_FOR_MODEL["gpt-3.5-turbo"]:
+ if total_tokens > MAX_TOKENS_FOR_MODEL["gpt-3.5-turbo"]:
model_to_use = sdk.models.gpt3516k
- total_tokens = model_to_use.count_tokens(
- full_file_contents + self._prompt + self.user_input)
-
cur_start_line, cur_end_line = cut_context(
model_to_use, total_tokens, cur_start_line, cur_end_line)