OpenInterpreter / open-interpreter

A natural language interface for computers
http://openinterpreter.com/
GNU Affero General Public License v3.0
50.58k stars 4.41k forks source link

Auto continue #1260

Closed aj47 closed 1 month ago

aj47 commented 1 month ago

Describe the changes you have made:

Added a flag auto_continue which sends back prompt "Continue" to LLM automatically after conversation has initiated. This is very useful for 7B models as they tell you what they are going to do without doing it, so usually a lot of manual 'continue' prompting is required.

Reference any relevant issues (e.g. "Fixes #000"):

Pre-Submission Checklist (optional but appreciated):

OS Tests (optional but appreciated):

KillianLucas commented 1 month ago

[pasting from discord, for more visibility if anyone has comments]

this is awesome @aj47! I think we do have a version of this flag in the form of --force_task_completion, but i've always hated that abstraction. I like --auto_continue more, but there is some extra functionality in the "force task completion" idea— we let the model break out of the loop by emitting a certain message:

# current
interpreter.force_task_completion = True
interpreter.force_task_completion_message = "If the task is done, say 'The task is done.'" # This will be sent to the LLM after every response
interpreter.force_task_completion_breakers = ["The task is done."] # The LLM can say this to break out of the loop

so you should be able to recreate the --auto_continue behavior in Python with:

# current
interpreter.force_task_completion = True
interpreter.force_task_completion_message = "continue"
interpreter.force_task_completion_breakers = [] # No phrases break it out of the loop

this will run OI in a loop, and always hit it with the "continue" message.

I think we could improve this abstraction, and add TUI flag:

# proposed
interpreter.loop = True
interpreter.loop_message = "continue"
# proposed
interpreter --loop 'continue'

do those seem like they would work? also any thoughts/vibes on this @cyanidebyte or @mike.bird? that way we could keep the functionality of force_task_completion, but make it simpler and easily become a form of auto continue

aj47 commented 1 month ago

Thanks @KillianLucas ! I actually had forgotten about force_task_completion when I started this.

What do you hate about it. I think I'll just try it out and focus on bettering that rather than have separate flags