summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-06-25 15:14:56 -0700
committerNate Sesti <sestinj@gmail.com>2023-06-25 15:14:56 -0700
commit3fa2220379f07b162b9c72d1e0d6c13e0d59b8d9 (patch)
treed6fe96dcacfd95976659bcb354bf57170a07cc1c
parentff688d096f62e538f181b9b5ae84b1b0f930c3bf (diff)
downloadsncontinue-3fa2220379f07b162b9c72d1e0d6c13e0d59b8d9.tar.gz
sncontinue-3fa2220379f07b162b9c72d1e0d6c13e0d59b8d9.tar.bz2
sncontinue-3fa2220379f07b162b9c72d1e0d6c13e0d59b8d9.zip
shipped function calling
-rw-r--r--continuedev/src/continuedev/core/autopilot.py14
-rw-r--r--continuedev/src/continuedev/steps/chat.py33
-rw-r--r--extension/package-lock.json4
-rw-r--r--extension/package.json2
-rw-r--r--extension/react-app/src/components/HeaderButtonWithText.tsx6
-rw-r--r--extension/react-app/src/tabs/gui.tsx2
-rw-r--r--extension/scripts/continuedev-0.1.1-py3-none-any.whlbin86716 -> 89177 bytes
7 files changed, 39 insertions, 22 deletions
diff --git a/continuedev/src/continuedev/core/autopilot.py b/continuedev/src/continuedev/core/autopilot.py
index f14a4127..04f64ed8 100644
--- a/continuedev/src/continuedev/core/autopilot.py
+++ b/continuedev/src/continuedev/core/autopilot.py
@@ -15,6 +15,17 @@ from .sdk import ContinueSDK
import asyncio
from ..libs.util.step_name_to_steps import get_step_from_name
from ..libs.util.traceback_parsers import get_python_traceback, get_javascript_traceback
+from openai import error as openai_errors
+
+
+def get_error_title(e: Exception) -> str:
+ if isinstance(e, openai_errors.APIError):
+ return "OpenAI is overloaded with requests. Please try again."
+ elif isinstance(e, openai_errors.RateLimitError):
+ return "This OpenAI API key has been rate limited. Please try again."
+ elif isinstance(e, openai_errors.Timeout):
+ return "OpenAI timed out. Please try again."
+ return e.__repr__()
class Autopilot(ContinueBaseModel):
@@ -166,7 +177,8 @@ class Autopilot(ContinueBaseModel):
error_string = e.message if is_continue_custom_exception else '\n\n'.join(
traceback.format_tb(e.__traceback__)) + f"\n\n{e.__repr__()}"
- error_title = e.title if is_continue_custom_exception else e.__repr__()
+ error_title = e.title if is_continue_custom_exception else get_error_title(
+ e)
# Attach an InternalErrorObservation to the step and unhide it.
print(f"Error while running step: \n{error_string}\n{error_title}")
diff --git a/continuedev/src/continuedev/steps/chat.py b/continuedev/src/continuedev/steps/chat.py
index a940c3ba..2a8ae2da 100644
--- a/continuedev/src/continuedev/steps/chat.py
+++ b/continuedev/src/continuedev/steps/chat.py
@@ -182,21 +182,24 @@ class ChatWithFunctions(Step):
else:
if func_name == "python" and "python" not in step_name_step_class_map:
# GPT must be fine-tuned to believe this exists, but it doesn't always
- self.chat_context.append(ChatMessage(
- role="assistant",
- content=None,
- function_call=FunctionCall(
- name=func_name,
- arguments=func_args
- ),
- summary=f"Ran function {func_name}"
- ))
- self.chat_context.append(ChatMessage(
- role="user",
- content="The 'python' function does not exist. Don't call it.",
- summary="'python' function does not exist."
- ))
- continue
+ func_name = "EditHighlightedCodeStep"
+ func_args = json.dumps({"user_input": self.user_input})
+ # self.chat_context.append(ChatMessage(
+ # role="assistant",
+ # content=None,
+ # function_call=FunctionCall(
+ # name=func_name,
+ # arguments=func_args
+ # ),
+ # summary=f"Ran function {func_name}"
+ # ))
+ # self.chat_context.append(ChatMessage(
+ # role="user",
+ # content="The 'python' function does not exist. Don't call it. Try again to call another function.",
+ # summary="'python' function does not exist."
+ # ))
+ # msg_step.hide = True
+ # continue
# Call the function, then continue to chat
func_args = "{}" if func_args == "" else func_args
fn_call_params = json.loads(func_args)
diff --git a/extension/package-lock.json b/extension/package-lock.json
index 12b2fe13..71edfe8c 100644
--- a/extension/package-lock.json
+++ b/extension/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "continue",
- "version": "0.0.61",
+ "version": "0.0.62",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "continue",
- "version": "0.0.61",
+ "version": "0.0.62",
"license": "Apache-2.0",
"dependencies": {
"@electron/rebuild": "^3.2.10",
diff --git a/extension/package.json b/extension/package.json
index 9fd1d7a6..9679b159 100644
--- a/extension/package.json
+++ b/extension/package.json
@@ -14,7 +14,7 @@
"displayName": "Continue",
"pricing": "Free",
"description": "Accelerating software development with language models",
- "version": "0.0.61",
+ "version": "0.0.62",
"publisher": "Continue",
"engines": {
"vscode": "^1.74.0"
diff --git a/extension/react-app/src/components/HeaderButtonWithText.tsx b/extension/react-app/src/components/HeaderButtonWithText.tsx
index 5901c5d8..30931f86 100644
--- a/extension/react-app/src/components/HeaderButtonWithText.tsx
+++ b/extension/react-app/src/components/HeaderButtonWithText.tsx
@@ -15,7 +15,11 @@ const HeaderButtonWithText = (props: HeaderButtonWithTextProps) => {
<HeaderButton
disabled={props.disabled}
style={{ padding: "1px", paddingLeft: hover ? "4px" : "1px" }}
- onMouseEnter={() => setHover(true)}
+ onMouseEnter={() => {
+ if (!props.disabled) {
+ setHover(true);
+ }
+ }}
onMouseLeave={() => {
setHover(false);
}}
diff --git a/extension/react-app/src/tabs/gui.tsx b/extension/react-app/src/tabs/gui.tsx
index 5001fe4b..4886bfad 100644
--- a/extension/react-app/src/tabs/gui.tsx
+++ b/extension/react-app/src/tabs/gui.tsx
@@ -491,8 +491,6 @@ function GUI(props: GUIProps) {
<HeaderButtonWithText
onClick={() => {
client?.sendClear();
- // Reload the window to get completely fresh session
- window.location.reload();
}}
text="Clear All"
>
diff --git a/extension/scripts/continuedev-0.1.1-py3-none-any.whl b/extension/scripts/continuedev-0.1.1-py3-none-any.whl
index 29e41d3c..692bdfb7 100644
--- a/extension/scripts/continuedev-0.1.1-py3-none-any.whl
+++ b/extension/scripts/continuedev-0.1.1-py3-none-any.whl
Binary files differ