diff options
| author | Nate Sesti <sestinj@gmail.com> | 2023-06-26 13:15:59 -0700 |
|---|---|---|
| committer | Nate Sesti <sestinj@gmail.com> | 2023-06-26 13:15:59 -0700 |
| commit | 64f202c376a572d9c53a3e87607a7216124c8b35 (patch) | |
| tree | 4ec6b5834856bdf14dec4ba25781a996f55af863 /continuedev/src/continuedev/steps | |
| parent | a2a6f4547b591c90a62c830b92a7b3920bb13b9f (diff) | |
| download | sncontinue-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.py | 14 |
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) |
