Skip to content

Commit

Permalink
i love you 🇺🇸
Browse files Browse the repository at this point in the history
  • Loading branch information
KillianLucas committed Jul 5, 2024
1 parent 32083b1 commit 91ad4e1
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 9 deletions.
9 changes: 8 additions & 1 deletion interpreter/terminal_interface/start_terminal_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,13 @@ def start_terminal_interface(interpreter):
},
]

if len(sys.argv) > 1 and not sys.argv[1].startswith("-"):
message = " ".join(sys.argv[1:])
interpreter.messages.append(
{"role": "user", "type": "message", "content": "I " + message}
)
sys.argv = sys.argv[:1]

# Check for deprecated flags before parsing arguments
deprecated_flags = {
"--debug_mode": "--verbose",
Expand Down Expand Up @@ -566,7 +573,7 @@ def main():
if contribute == "y":
interpreter.contribute_conversation = True
interpreter.display_message(
"\n*Thank you for contributing!*"
"\n*Thank you for contributing!*\n"
)

if (
Expand Down
28 changes: 21 additions & 7 deletions interpreter/terminal_interface/terminal_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,12 @@
def terminal_interface(interpreter, message):
# Auto run and offline (this.. this isn't right) don't display messages.
# Probably worth abstracting this to something like "debug_cli" at some point.
if not interpreter.auto_run and not interpreter.offline:
# If (len(interpreter.messages) == 1), they probably used the advanced "i {command}" entry, so no message should be displayed.
if (
not interpreter.auto_run
and not interpreter.offline
and not (len(interpreter.messages) == 1)
):
interpreter_intro_message = [
"**Open Interpreter** will require approval before running code."
]
Expand All @@ -74,12 +79,21 @@ def terminal_interface(interpreter, message):

while True:
if interactive:
### This is the primary input for Open Interpreter.
message = (
cli_input("> ").strip()
if interpreter.multi_line
else input("> ").strip()
)
if (
len(interpreter.messages) == 1
and interpreter.messages[-1]["role"] == "user"
and interpreter.messages[-1]["type"] == "message"
):
# They passed in a message already, probably via "i {command}"!
message = interpreter.messages[-1]["content"]
interpreter.messages = interpreter.messages[:-1]
else:
### This is the primary input for Open Interpreter.
message = (
cli_input("> ").strip()
if interpreter.multi_line
else input("> ").strip()
)

try:
# This lets users hit the up arrow key for past messages
Expand Down
11 changes: 10 additions & 1 deletion interpreter/terminal_interface/validate_llm_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,17 @@ def validate_llm_settings(interpreter):

# Auto-run is for fast, light usage -- no messages.
# If offline, it's usually a bogus model name for LiteLLM since LM Studio doesn't require one.
if not interpreter.auto_run and not interpreter.offline:
# If (len(interpreter.messages) == 1), they probably used the advanced "i {command}" entry, so no message should be displayed.
if (
not interpreter.auto_run
and not interpreter.offline
and not (len(interpreter.messages) == 1)
):
display_markdown_message(f"> Model set to `{interpreter.llm.model}`")
if len(interpreter.messages) == 1:
# Special message for "i {command}" usage
# display_markdown_message(f"\n*{interpreter.llm.model} via Open Interpreter:*")
pass

if interpreter.llm.model == "i":
interpreter.display_message(
Expand Down

0 comments on commit 91ad4e1

Please sign in to comment.