Skip to content

Commit c8c51d4

Browse files
committed
Better --plain
1 parent b4ad8c1 commit c8c51d4

File tree

9 files changed

+50
-53
lines changed

9 files changed

+50
-53
lines changed

interpreter/core/core.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,10 @@ def reset(self):
435435

436436
def display_message(self, markdown):
437437
# This is just handy for start_script in profiles.
438-
display_markdown_message(markdown)
438+
if self.plain_text_display:
439+
print(markdown)
440+
else:
441+
display_markdown_message(markdown)
439442

440443
def get_oi_dir(self):
441444
# Again, just handy for start_script in profiles.

interpreter/core/llm/llm.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@
1717
import requests
1818
import tokentrim as tt
1919

20-
from ...terminal_interface.utils.display_markdown_message import (
21-
display_markdown_message,
22-
)
2320
from .run_text_llm import run_text_llm
2421

2522
# from .run_function_calling_llm import run_function_calling_llm
@@ -232,7 +229,7 @@ def run(self, messages):
232229
except:
233230
if len(messages) == 1:
234231
if self.interpreter.in_terminal_interface:
235-
display_markdown_message(
232+
self.interpreter.display_message(
236233
"""
237234
**We were unable to determine the context window of this model.** Defaulting to 8000.
238235
@@ -242,7 +239,7 @@ def run(self, messages):
242239
"""
243240
)
244241
else:
245-
display_markdown_message(
242+
self.interpreter.display_message(
246243
"""
247244
**We were unable to determine the context window of this model.** Defaulting to 8000.
248245

interpreter/core/respond.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
os.environ["LITELLM_LOCAL_MODEL_COST_MAP"] = "True"
88
import litellm
99

10-
from ..terminal_interface.utils.display_markdown_message import display_markdown_message
1110
from .render_message import render_message
1211

1312

@@ -88,7 +87,7 @@ def respond(interpreter):
8887
yield {"role": "assistant", **chunk}
8988

9089
except litellm.exceptions.BudgetExceededError:
91-
display_markdown_message(
90+
interpreter.display_message(
9291
f"""> Max budget exceeded
9392
9493
**Session spend:** ${litellm._current_cost}
@@ -136,8 +135,8 @@ def respond(interpreter):
136135

137136
if response.strip().lower() == "y":
138137
interpreter.llm.model = "i"
139-
display_markdown_message(f"> Model set to `i`")
140-
display_markdown_message(
138+
interpreter.display_message(f"> Model set to `i`")
139+
interpreter.display_message(
141140
"***Note:*** *Conversations with this model will be used to train our open-source model.*\n"
142141
)
143142

interpreter/terminal_interface/conversation_navigator.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import inquirer
1111

1212
from .render_past_conversation import render_past_conversation
13-
from .utils.display_markdown_message import display_markdown_message
1413
from .utils.local_storage_path import get_storage_path
1514

1615

@@ -19,7 +18,7 @@ def conversation_navigator(interpreter):
1918

2019
conversations_dir = get_storage_path("conversations")
2120

22-
display_markdown_message(
21+
interpreter.display_message(
2322
f"""> Conversations are stored in "`{conversations_dir}`".
2423
2524
Select a conversation to resume.

interpreter/terminal_interface/magic_commands.py

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
from ..core.utils.system_debug_info import system_info
99
from .utils.count_tokens import count_messages_tokens
10-
from .utils.display_markdown_message import display_markdown_message
1110
from .utils.export_to_markdown import export_to_markdown
1211

1312

@@ -36,11 +35,11 @@ def handle_undo(self, arguments):
3635
# Print out a preview of what messages were removed.
3736
for message in removed_messages:
3837
if "content" in message and message["content"] != None:
39-
display_markdown_message(
38+
self.display_message(
4039
f"**Removed message:** `\"{message['content'][:30]}...\"`"
4140
)
4241
elif "function_call" in message:
43-
display_markdown_message(
42+
self.display_message(
4443
f"**Removed codeblock**"
4544
) # TODO: Could add preview of code removed here.
4645

@@ -75,12 +74,12 @@ def handle_help(self, arguments):
7574
# Combine the base message with the additional info
7675
full_message = base_message + additional_info
7776

78-
display_markdown_message("".join(full_message))
77+
self.display_message("".join(full_message))
7978

8079

8180
def handle_verbose(self, arguments=None):
8281
if arguments == "" or arguments == "true":
83-
display_markdown_message("> Entered verbose mode")
82+
self.display_message("> Entered verbose mode")
8483
print("\n\nCurrent messages:\n")
8584
for message in self.messages:
8685
message = message.copy()
@@ -95,15 +94,15 @@ def handle_verbose(self, arguments=None):
9594
print("\n")
9695
self.verbose = True
9796
elif arguments == "false":
98-
display_markdown_message("> Exited verbose mode")
97+
self.display_message("> Exited verbose mode")
9998
self.verbose = False
10099
else:
101-
display_markdown_message("> Unknown argument to verbose command.")
100+
self.display_message("> Unknown argument to verbose command.")
102101

103102

104103
def handle_debug(self, arguments=None):
105104
if arguments == "" or arguments == "true":
106-
display_markdown_message("> Entered debug mode")
105+
self.display_message("> Entered debug mode")
107106
print("\n\nCurrent messages:\n")
108107
for message in self.messages:
109108
message = message.copy()
@@ -118,21 +117,21 @@ def handle_debug(self, arguments=None):
118117
print("\n")
119118
self.debug = True
120119
elif arguments == "false":
121-
display_markdown_message("> Exited verbose mode")
120+
self.display_message("> Exited verbose mode")
122121
self.debug = False
123122
else:
124-
display_markdown_message("> Unknown argument to debug command.")
123+
self.display_message("> Unknown argument to debug command.")
125124

126125

127126
def handle_auto_run(self, arguments=None):
128127
if arguments == "" or arguments == "true":
129-
display_markdown_message("> Entered auto_run mode")
128+
self.display_message("> Entered auto_run mode")
130129
self.auto_run = True
131130
elif arguments == "false":
132-
display_markdown_message("> Exited auto_run mode")
131+
self.display_message("> Exited auto_run mode")
133132
self.auto_run = False
134133
else:
135-
display_markdown_message("> Unknown argument to auto_run command.")
134+
self.display_message("> Unknown argument to auto_run command.")
136135

137136

138137
def handle_info(self, arguments):
@@ -141,11 +140,11 @@ def handle_info(self, arguments):
141140

142141
def handle_reset(self, arguments):
143142
self.reset()
144-
display_markdown_message("> Reset Done")
143+
self.display_message("> Reset Done")
145144

146145

147146
def default_handle(self, arguments):
148-
display_markdown_message("> Unknown command")
147+
self.display_message("> Unknown command")
149148
handle_help(self, arguments)
150149

151150

@@ -157,7 +156,7 @@ def handle_save_message(self, json_path):
157156
with open(json_path, "w") as f:
158157
json.dump(self.messages, f, indent=2)
159158

160-
display_markdown_message(f"> messages json export to {os.path.abspath(json_path)}")
159+
self.display_message(f"> messages json export to {os.path.abspath(json_path)}")
161160

162161

163162
def handle_load_message(self, json_path):
@@ -168,9 +167,7 @@ def handle_load_message(self, json_path):
168167
with open(json_path, "r") as f:
169168
self.messages = json.load(f)
170169

171-
display_markdown_message(
172-
f"> messages json loaded from {os.path.abspath(json_path)}"
173-
)
170+
self.display_message(f"> messages json loaded from {os.path.abspath(json_path)}")
174171

175172

176173
def handle_count_tokens(self, prompt):
@@ -212,7 +209,7 @@ def handle_count_tokens(self, prompt):
212209
f"**Note**: This functionality is currently experimental and may not be accurate. Please report any issues you find to the [Open Interpreter GitHub repository](https://github.com/KillianLucas/open-interpreter)."
213210
)
214211

215-
display_markdown_message("\n".join(outputs))
212+
self.display_message("\n".join(outputs))
216213

217214

218215
def get_downloads_path():
@@ -295,7 +292,7 @@ def jupyter(self, arguments):
295292
nbformat.write(nb, f)
296293

297294
print("")
298-
display_markdown_message(
295+
self.display_message(
299296
f"Jupyter notebook file exported to {os.path.abspath(notebook_path)}"
300297
)
301298

interpreter/terminal_interface/profiles/profiles.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import send2trash
1414
import yaml
1515

16-
from ..utils.display_markdown_message import display_markdown_message
1716
from ..utils.oi_dir import oi_dir
1817
from .historical_profiles import historical_profiles
1918

@@ -194,11 +193,11 @@ def apply_profile(interpreter, profile, profile_path):
194193
return interpreter
195194

196195
if "system_message" in profile:
197-
display_markdown_message(
196+
interpreter.display_message(
198197
"\n**FYI:** A `system_message` was found in your profile.\n\nBecause we frequently improve our default system message, we highly recommend removing the `system_message` parameter in your profile (which overrides the default system message) or simply resetting your profile.\n\n**To reset your profile, run `interpreter --reset_profile`.**\n"
199198
)
200199
time.sleep(2)
201-
display_markdown_message("---")
200+
interpreter.display_message("---")
202201

203202
if "computer" in profile and "languages" in profile["computer"]:
204203
# this is handled specially

interpreter/terminal_interface/start_terminal_interface.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
from .conversation_navigator import conversation_navigator
1414
from .profiles.profiles import open_storage_dir, profile, reset_profile
1515
from .utils.check_for_update import check_for_update
16-
from .utils.display_markdown_message import display_markdown_message
1716
from .validate_llm_settings import validate_llm_settings
1817

1918

@@ -45,7 +44,7 @@ def start_terminal_interface(interpreter):
4544
},
4645
{
4746
"name": "system_message",
48-
"nickname": "s",
47+
"nickname": "sm",
4948
"help_text": "(we don't recommend changing this) base prompt for the language model",
5049
"type": str,
5150
"attribute": {"object": interpreter, "attr_name": "system_message"},
@@ -174,7 +173,7 @@ def start_terminal_interface(interpreter):
174173
},
175174
{
176175
"name": "speak_messages",
177-
"nickname": "sm",
176+
"nickname": "sp",
178177
"help_text": "(Mac only, experimental) use the applescript `say` command to read messages aloud",
179178
"type": bool,
180179
"attribute": {"object": interpreter, "attr_name": "speak_messages"},
@@ -296,11 +295,15 @@ def start_terminal_interface(interpreter):
296295
},
297296
{
298297
"name": "stdin",
298+
"nickname": "s",
299299
"help_text": "Run OI in stdin mode",
300300
"type": bool,
301301
},
302302
]
303303

304+
if "--stdin" in sys.argv and "--plain" not in sys.argv:
305+
sys.argv += ["--plain"]
306+
304307
# i shortcut
305308
if len(sys.argv) > 1 and not sys.argv[1].startswith("-"):
306309
message = " ".join(sys.argv[1:])
@@ -516,7 +519,7 @@ def print_help(self, *args, **kwargs):
516519
if not interpreter.offline and not args.stdin:
517520
# This message should actually be pushed into the utility
518521
if check_for_update():
519-
display_markdown_message(
522+
interpreter.display_message(
520523
"> **A new version of Open Interpreter is available.**\n>Please run: `pip install --upgrade open-interpreter`\n\n---"
521524
)
522525
except:

interpreter/terminal_interface/terminal_interface.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
from .magic_commands import handle_magic_command
2525
from .utils.check_for_package import check_for_package
2626
from .utils.cli_input import cli_input
27-
from .utils.display_markdown_message import display_markdown_message
2827
from .utils.display_output import display_output
2928
from .utils.find_image_path import find_image_path
3029

@@ -66,9 +65,12 @@ def terminal_interface(interpreter, message):
6665
else:
6766
interpreter_intro_message.append("Use `interpreter -y` to bypass this.")
6867

69-
interpreter_intro_message.append("Press `CTRL-C` to exit.")
68+
if (
69+
not interpreter.plain_text_display
70+
): # A proxy/heuristic for standard in mode, which isn't tracked (but prob should be)
71+
interpreter_intro_message.append("Press `CTRL-C` to exit.")
7072

71-
display_markdown_message("\n\n".join(interpreter_intro_message) + "\n")
73+
interpreter.display_message("\n\n".join(interpreter_intro_message) + "\n")
7274

7375
if message:
7476
interactive = False
@@ -264,12 +266,12 @@ def terminal_interface(interpreter, message):
264266
# Plain text mode
265267
if interpreter.plain_text_display:
266268
if "start" in chunk or "end" in chunk:
267-
print("\n")
269+
print("")
268270
if chunk["type"] in ["code", "console"] and "format" in chunk:
269271
if "start" in chunk:
270-
print("\n---\n\n```" + chunk["format"], flush=True)
272+
print("```" + chunk["format"], flush=True)
271273
if "end" in chunk:
272-
print("\n```\n\n---\n\n", flush=True)
274+
print("```", flush=True)
273275
if chunk.get("format") != "active_line":
274276
print(chunk.get("content", ""), end="", flush=True)
275277
continue

interpreter/terminal_interface/validate_llm_settings.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
contribute_conversation_launch_logic,
1616
)
1717

18-
from .utils.display_markdown_message import display_markdown_message
19-
2018

2119
def validate_llm_settings(interpreter):
2220
"""
@@ -48,7 +46,7 @@ def validate_llm_settings(interpreter):
4846
):
4947
display_welcome_message_once()
5048

51-
display_markdown_message(
49+
interpreter.display_message(
5250
"""---
5351
> OpenAI API key not found
5452
@@ -68,7 +66,7 @@ def validate_llm_settings(interpreter):
6866
)
6967
exit()
7068

71-
display_markdown_message(
69+
interpreter.display_message(
7270
"""
7371
7472
**Tip:** To save this key for later, run one of the following and then restart your terminal.
@@ -96,10 +94,10 @@ def validate_llm_settings(interpreter):
9694
and not interpreter.offline
9795
and not (len(interpreter.messages) == 1)
9896
):
99-
display_markdown_message(f"> Model set to `{interpreter.llm.model}`")
97+
interpreter.display_message(f"> Model set to `{interpreter.llm.model}`")
10098
if len(interpreter.messages) == 1:
10199
# Special message for "i {command}" usage
102-
# display_markdown_message(f"\n*{interpreter.llm.model} via Open Interpreter:*")
100+
# interpreter.display_message(f"\n*{interpreter.llm.model} via Open Interpreter:*")
103101
pass
104102

105103
if interpreter.llm.model == "i":
@@ -118,7 +116,7 @@ def display_welcome_message_once():
118116
(Uses an internal attribute `_displayed` to track its state.)
119117
"""
120118
if not hasattr(display_welcome_message_once, "_displayed"):
121-
display_markdown_message(
119+
interpreter.display_message(
122120
"""
123121
124122

0 commit comments

Comments
 (0)