Make functions optional

This commit is contained in:
Paul Gauthier 2023-06-21 21:22:24 -07:00
parent dd71b903a0
commit e26acbae65

View file

@ -37,6 +37,7 @@ class Coder:
last_aider_commit_hash = None last_aider_commit_hash = None
last_asked_for_commit_time = 0 last_asked_for_commit_time = 0
repo_map = None repo_map = None
functions = None
@classmethod @classmethod
def create( def create(
@ -358,7 +359,7 @@ class Coder:
utils.show_messages(messages) utils.show_messages(messages)
try: try:
interrupted = self.send(messages) interrupted = self.send(messages, functions=self.functions)
except ExhaustedContextWindow: except ExhaustedContextWindow:
self.io.tool_error("Exhausted context window!") self.io.tool_error("Exhausted context window!")
self.io.tool_error(" - Use /tokens to see token usage.") self.io.tool_error(" - Use /tokens to see token usage.")
@ -459,20 +460,20 @@ class Coder:
max_tries=5, max_tries=5,
on_backoff=lambda details: print(f"Retry in {details['wait']} seconds."), on_backoff=lambda details: print(f"Retry in {details['wait']} seconds."),
) )
def send_with_retries(self, model, messages): def send_with_retries(self, model, messages, functions):
kwargs = dict( kwargs = dict(
model=model, model=model,
messages=messages, messages=messages,
temperature=0, temperature=0,
stream=True, stream=True,
) )
if hasattr(self, "functions"): if functions is not None:
kwargs["functions"] = self.functions kwargs["functions"] = self.functions
res = openai.ChatCompletion.create(**kwargs) res = openai.ChatCompletion.create(**kwargs)
return res return res
def send(self, messages, model=None, silent=False): def send(self, messages, model=None, silent=False, functions=None):
if not model: if not model:
model = self.main_model.name model = self.main_model.name
@ -481,7 +482,7 @@ class Coder:
interrupted = False interrupted = False
try: try:
completion = self.send_with_retries(model, messages) completion = self.send_with_retries(model, messages, functions)
self.show_send_output(completion, silent) self.show_send_output(completion, silent)
except KeyboardInterrupt: except KeyboardInterrupt:
interrupted = True interrupted = True