diff options
Diffstat (limited to 'continuedev/src')
| -rw-r--r-- | continuedev/src/continuedev/core/autopilot.py | 4 | ||||
| -rw-r--r-- | continuedev/src/continuedev/core/config.py | 64 | ||||
| -rw-r--r-- | continuedev/src/continuedev/core/sdk.py | 18 | ||||
| -rw-r--r-- | continuedev/src/continuedev/server/gui.py | 6 | 
4 files changed, 48 insertions, 44 deletions
| diff --git a/continuedev/src/continuedev/core/autopilot.py b/continuedev/src/continuedev/core/autopilot.py index ab7f4747..f14a4127 100644 --- a/continuedev/src/continuedev/core/autopilot.py +++ b/continuedev/src/continuedev/core/autopilot.py @@ -45,8 +45,8 @@ class Autopilot(ContinueBaseModel):      async def get_available_slash_commands(self) -> List[Dict]:          return list(map(lambda x: {"name": x.name, "description": x.description}, self.continue_sdk.config.slash_commands)) or [] -    async def change_default_model(self): -        self.continue_sdk.update_default_model() +    async def change_default_model(self, model: str): +        self.continue_sdk.update_default_model(model)      async def clear_history(self):          self.history = History.from_empty() diff --git a/continuedev/src/continuedev/core/config.py b/continuedev/src/continuedev/core/config.py index 21d21879..01316f1b 100644 --- a/continuedev/src/continuedev/core/config.py +++ b/continuedev/src/continuedev/core/config.py @@ -87,37 +87,45 @@ def load_config(config_file: str) -> ContinueConfig:          raise ValueError(f'Unknown config file extension: {ext}')      return ContinueConfig(**config_dict) -def update_config(config_file: str): + +def load_global_config() -> ContinueConfig:      """ -    Update the config file with the current ContinueConfig object. +    Load the global config file and return a ContinueConfig object.      """ -    if not os.path.exists(config_file): -        with open(config_file, 'w') as f: -            config_dict = { "default_model": "gpt-3.5-turbo" } -            json.dump(config_dict, f, indent=4) - -    _, ext = os.path.splitext(config_file) -    if ext == '.yaml': +    global_dir = os.path.expanduser('~/.continue') +    if not os.path.exists(global_dir): +        os.mkdir(global_dir) -        with open(config_file, 'w') as f: -            config_dict = yaml.safe_load(f) +    yaml_path = os.path.join(global_dir, 'config.yaml') +    if os.path.exists(yaml_path): +        with open(config_path, 'r') as f: +            try: +                config_dict = yaml.safe_load(f) +            except: +                return ContinueConfig() +    else: +        config_path = os.path.join(global_dir, 'config.json') +        with open(config_path, 'r') as f: +            try: +                config_dict = json.load(f) +            except: +                return ContinueConfig() +    return ContinueConfig(**config_dict) -            if config_dict["default_model"] == "gpt-4": -                config_dict["default_model"] = "gpt-3.5-turbo" -            else: -                config_dict["default_model"] = "gpt-4" -             -            with open(config_file, 'w') as f: -                json.dump(config_dict, f, indent=4) -    elif ext == '.json': -        with open(config_file, 'r') as f: -            config_dict = json.load(f) +def update_global_config(config: ContinueConfig): +    """ +    Update the config file with the given ContinueConfig object. +    """ +    global_dir = os.path.expanduser('~/.continue') +    if not os.path.exists(global_dir): +        os.mkdir(global_dir) -        if config_dict["default_model"] == "gpt-4": -            config_dict["default_model"] = "gpt-3.5-turbo" -        else: -            config_dict["default_model"] = "gpt-4" -         -        with open(config_file, 'w') as f: -            json.dump(config_dict, f, indent=4)
\ No newline at end of file +    yaml_path = os.path.join(global_dir, 'config.yaml') +    if os.path.exists(yaml_path): +        with open(config_path, 'w') as f: +            yaml.dump(config.dict(), f) +    else: +        config_path = os.path.join(global_dir, 'config.json') +        with open(config_path, 'w') as f: +            json.dump(config.dict(), f) diff --git a/continuedev/src/continuedev/core/sdk.py b/continuedev/src/continuedev/core/sdk.py index 5652ec39..192552e7 100644 --- a/continuedev/src/continuedev/core/sdk.py +++ b/continuedev/src/continuedev/core/sdk.py @@ -6,7 +6,7 @@ import os  from ..steps.core.core import DefaultModelEditCodeStep  from ..models.main import Range  from .abstract_sdk import AbstractContinueSDK -from .config import ContinueConfig, load_config, update_config +from .config import ContinueConfig, load_config, load_global_config, update_global_config  from ..models.filesystem_edit import FileEdit, FileSystemEdit, AddFile, DeleteFile, AddDirectory, DeleteDirectory  from ..models.filesystem import RangeInFile  from ..libs.llm.hf_inference_api import HuggingFaceInferenceAPI @@ -76,7 +76,7 @@ class Models:          else:              raise Exception(f"Unknown model {model_name}") -    @cached_property +    @property      def default(self):          default_model = self.sdk.config.default_model          return self.__model_from_name(default_model) if default_model is not None else self.gpt35 @@ -168,16 +168,12 @@ class ContinueSDK(AbstractContinueSDK):          elif os.path.exists(json_path):              return load_config(json_path)          else: -            return ContinueConfig() +            return load_global_config() -    def update_default_model(self): -        dir = self.ide.workspace_directory -        yaml_path = os.path.join(dir, '.continue', 'config.yaml') -        json_path = os.path.join(dir, '.continue', 'config.json') -        if os.path.exists(yaml_path): -            update_config(yaml_path) -        else: -            update_config(json_path) +    def update_default_model(self, model: str): +        config = self.config +        config.default_model = model +        update_global_config(config)      def set_loading_message(self, message: str):          # self.__autopilot.set_loading_message(message) diff --git a/continuedev/src/continuedev/server/gui.py b/continuedev/src/continuedev/server/gui.py index 9b36c704..cc6235e9 100644 --- a/continuedev/src/continuedev/server/gui.py +++ b/continuedev/src/continuedev/server/gui.py @@ -78,7 +78,7 @@ class GUIProtocolServer(AbstractGUIProtocolServer):              elif message_type == "retry_at_index":                  self.on_retry_at_index(data["index"])              elif message_type == "change_default_model": -                self.on_change_default_model() +                self.on_change_default_model(data["model"])              elif message_type == "clear_history":                  self.on_clear_history()              elif message_type == "delete_at_index": @@ -118,8 +118,8 @@ class GUIProtocolServer(AbstractGUIProtocolServer):          asyncio.create_task(              self.session.autopilot.retry_at_index(index)) -    def on_change_default_model(self): -        asyncio.create_task(self.session.autopilot.change_default_model()) +    def on_change_default_model(self, model: str): +        asyncio.create_task(self.session.autopilot.change_default_model(model))      def on_clear_history(self):          asyncio.create_task(self.session.autopilot.clear_history()) | 
