summaryrefslogtreecommitdiff
path: root/continuedev/src
diff options
context:
space:
mode:
Diffstat (limited to 'continuedev/src')
-rw-r--r--continuedev/src/continuedev/core/sdk.py2
-rw-r--r--continuedev/src/continuedev/libs/llm/replicate.py15
-rw-r--r--continuedev/src/continuedev/plugins/policies/default.py3
-rw-r--r--continuedev/src/continuedev/plugins/steps/core/core.py4
-rw-r--r--continuedev/src/continuedev/server/gui.py4
-rw-r--r--continuedev/src/continuedev/server/ide.py4
6 files changed, 22 insertions, 10 deletions
diff --git a/continuedev/src/continuedev/core/sdk.py b/continuedev/src/continuedev/core/sdk.py
index 0fa9d3a6..024d5cea 100644
--- a/continuedev/src/continuedev/core/sdk.py
+++ b/continuedev/src/continuedev/core/sdk.py
@@ -55,7 +55,7 @@ class ContinueSDK(AbstractContinueSDK):
formatted_err = '\n'.join(traceback.format_exception(e))
msg_step = MessageStep(
name="Invalid Continue Config File", message=formatted_err)
- msg_step.description = f"Falling back to default config settings.\n```\n{formatted_err}\n```\n\nIt's possible this error was caused by an update to the Continue config format. If you'd like to see the new recommended default `config.py`, check [here](https://github.com/continuedev/continue/blob/main/continuedev/src/continuedev/libs/constants/default_config.py)."
+ msg_step.description = f"Falling back to default config settings due to the following error in `~/.continue/config.py`.\n```\n{formatted_err}\n```\n\nIt's possible this was caused by an update to the Continue config format. If you'd like to see the new recommended default `config.py`, check [here](https://github.com/continuedev/continue/blob/main/continuedev/src/continuedev/libs/constants/default_config.py)."
sdk.history.add_node(HistoryNode(
step=msg_step,
observation=None,
diff --git a/continuedev/src/continuedev/libs/llm/replicate.py b/continuedev/src/continuedev/libs/llm/replicate.py
index b13e2dec..235fd906 100644
--- a/continuedev/src/continuedev/libs/llm/replicate.py
+++ b/continuedev/src/continuedev/libs/llm/replicate.py
@@ -37,10 +37,17 @@ class ReplicateLLM(LLM):
pass
async def complete(self, prompt: str, with_history: List[ChatMessage] = None, **kwargs):
- output = self._client.run(self.model, input={"message": prompt})
- completion = ''
- for item in output:
- completion += item
+ def helper():
+ output = self._client.run(self.model, input={"message": prompt})
+ completion = ''
+ for item in output:
+ completion += item
+
+ return completion
+
+ with concurrent.futures.ThreadPoolExecutor() as executor:
+ future = executor.submit(helper)
+ completion = future.result()
return completion
diff --git a/continuedev/src/continuedev/plugins/policies/default.py b/continuedev/src/continuedev/plugins/policies/default.py
index 0d74fa3f..2382f33a 100644
--- a/continuedev/src/continuedev/plugins/policies/default.py
+++ b/continuedev/src/continuedev/plugins/policies/default.py
@@ -56,7 +56,8 @@ class DefaultPolicy(Policy):
MessageStep(name="Welcome to Continue", message=dedent("""\
- Highlight code section and ask a question or give instructions
- Use `cmd+m` (Mac) / `ctrl+m` (Windows) to open Continue
- - Use `/help` to ask questions about how to use Continue""")) >>
+ - Use `/help` to ask questions about how to use Continue
+ - [Customize Continue](https://continue.dev/docs/customization) (e.g. use your own API key) by typing '/config'.""")) >>
WelcomeStep() >>
StepsOnStartupStep())
diff --git a/continuedev/src/continuedev/plugins/steps/core/core.py b/continuedev/src/continuedev/plugins/steps/core/core.py
index 4476c7ae..ee67d84f 100644
--- a/continuedev/src/continuedev/plugins/steps/core/core.py
+++ b/continuedev/src/continuedev/plugins/steps/core/core.py
@@ -10,6 +10,7 @@ import difflib
from pydantic import validator
from ....libs.llm.ggml import GGML
+from ....libs.llm.replicate import ReplicateLLM
from ....models.main import Range
from ....libs.llm.maybe_proxy_openai import MaybeProxyOpenAI
from ....models.filesystem_edit import EditDiff, FileEdit, FileEditWithFullContents, FileSystemEdit
@@ -512,6 +513,9 @@ Please output the code to be inserted at the cursor in order to fulfill the user
if isinstance(model_to_use, GGML):
messages = [ChatMessage(
role="user", content=f"```\n{rif.contents}\n```\n\nUser request: \"{self.user_input}\"\n\nThis is the code after changing to perfectly comply with the user request. It does not include any placeholder code, only real implementations:\n\n```\n", summary=self.user_input)]
+ elif isinstance(model_to_use, ReplicateLLM):
+ messages = [ChatMessage(
+ role="user", content=f"// Previous implementation\n\n{rif.contents}\n\n// Updated implementation (after following directions: {self.user_input})\n\n", summary=self.user_input)]
generator = model_to_use.stream_chat(
messages, temperature=sdk.config.temperature, max_tokens=max_tokens)
diff --git a/continuedev/src/continuedev/server/gui.py b/continuedev/src/continuedev/server/gui.py
index 49d46be3..35c52a47 100644
--- a/continuedev/src/continuedev/server/gui.py
+++ b/continuedev/src/continuedev/server/gui.py
@@ -59,12 +59,12 @@ class GUIProtocolServer(AbstractGUIProtocolServer):
"data": data
})
- async def _receive_json(self, message_type: str, timeout: int = 20) -> Any:
+ async def _receive_json(self, message_type: str, timeout: int = 10) -> Any:
try:
return await asyncio.wait_for(self.sub_queue.get(message_type), timeout=timeout)
except asyncio.TimeoutError:
raise Exception(
- "GUI Protocol _receive_json timed out after 20 seconds")
+ "GUI Protocol _receive_json timed out after 10 seconds")
async def _send_and_receive_json(self, data: Any, resp_model: Type[T], message_type: str) -> T:
await self._send_json(message_type, data)
diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py
index e523d3aa..b0dbc552 100644
--- a/continuedev/src/continuedev/server/ide.py
+++ b/continuedev/src/continuedev/server/ide.py
@@ -165,12 +165,12 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
"data": data
})
- async def _receive_json(self, message_type: str, timeout: int = 20) -> Any:
+ async def _receive_json(self, message_type: str, timeout: int = 10) -> Any:
try:
return await asyncio.wait_for(self.sub_queue.get(message_type), timeout=timeout)
except asyncio.TimeoutError:
raise Exception(
- f"IDE Protocol _receive_json timed out after 20 seconds: {message_type}")
+ f"IDE Protocol _receive_json timed out after 10 seconds: {message_type}")
async def _send_and_receive_json(self, data: Any, resp_model: Type[T], message_type: str) -> T:
await self._send_json(message_type, data)