Merge branch 'main' of fstage:ok/ChatMastermind
This commit is contained in:
+20
-16
@@ -40,25 +40,29 @@ def message_to_chat(message: Dict[str, str],
|
||||
append_message(chat, 'assistant', message['answer'])
|
||||
|
||||
|
||||
def display_source_code(content: str) -> None:
|
||||
try:
|
||||
content_start = content.index('```')
|
||||
content_end = content.rindex('```')
|
||||
if content_start + 3 < content_end:
|
||||
print(content[content_start + 3:content_end].strip())
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
|
||||
def display_chat(chat, dump=False, source_code=False) -> None:
|
||||
if dump:
|
||||
pp(chat)
|
||||
return
|
||||
for message in chat:
|
||||
if message['role'] == 'user' and not source_code:
|
||||
print('-' * (terminal_width()))
|
||||
if len(message['content']) > terminal_width() - len(message['role']) - 2:
|
||||
if not source_code:
|
||||
print(f"{message['role'].upper()}:")
|
||||
if source_code:
|
||||
try:
|
||||
content_start = message['content'].index('```')
|
||||
content_end = message['content'].rindex('```')
|
||||
if content_start + 3 < content_end:
|
||||
print(message['content'][content_start+3:content_end].strip())
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
print(message['content'])
|
||||
elif not source_code:
|
||||
text_too_long = len(message['content']) > terminal_width() - len(message['role']) - 2
|
||||
if source_code:
|
||||
display_source_code(message['content'])
|
||||
continue
|
||||
if message['role'] == 'user':
|
||||
print('-' * terminal_width())
|
||||
if text_too_long:
|
||||
print(f"{message['role'].upper()}:")
|
||||
print(message['content'])
|
||||
else:
|
||||
print(f"{message['role'].upper()}: {message['content']}")
|
||||
|
||||
Reference in New Issue
Block a user