Merge branch 'main' of fstage:ok/ChatMastermind

This commit is contained in:
Oleksandr Kozachuk
2023-05-08 13:59:42 +02:00
5 changed files with 101 additions and 66 deletions
+20 -16
View File
@@ -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']}")