From c27483193be9a5dfa0eda2b5d83669ce91067be5 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 3 Jun 2023 06:18:45 -0700 Subject: [PATCH] refac --- aider/coder.py | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/aider/coder.py b/aider/coder.py index 69ba19a14..2252ba669 100755 --- a/aider/coder.py +++ b/aider/coder.py @@ -391,6 +391,24 @@ class Coder: return prompts.added_files.format(fnames=", ".join(mentioned_rel_fnames)) + def send_with_retries(self, model, messages): + while True: + try: + return openai.ChatCompletion.create( + model=model, + messages=messages, + temperature=0, + stream=True, + ) + except RateLimitError as err: + self.io.tool_error(f"RateLimitError: {err}") + except requests.exceptions.ConnectionError as err: + self.io.tool_error(f"ConnectionError: {err}") + + retry_after = 1 + self.io.tool_error(f"Retry in {retry_after} seconds.") + time.sleep(retry_after) + def send(self, messages, model=None, silent=False): if not model: model = self.main_model @@ -398,24 +416,7 @@ class Coder: self.resp = "" interrupted = False try: - while True: - try: - completion = openai.ChatCompletion.create( - model=model, - messages=messages, - temperature=0, - stream=True, - ) - break - except RateLimitError as err: - self.io.tool_error(f"RateLimitError: {err}") - except requests.exceptions.ConnectionError as err: - self.io.tool_error(f"ConnectionError: {err}") - - retry_after = 1 - self.io.tool_error(f"Retry in {retry_after} seconds.") - time.sleep(retry_after) - + completion = self.send_with_retries(model, messages) self.show_send_output(completion, silent) except KeyboardInterrupt: interrupted = True