diff options
Diffstat (limited to 'chat.py')
-rw-r--r-- | chat.py | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/chat.py b/chat.py deleted file mode 100644 index 1221d8e..0000000 --- a/chat.py +++ /dev/null @@ -1,80 +0,0 @@ -import queue -import sys -import os -import threading -import time - -import curses -from openai import OpenAI - -from help import HelpCommands, start_chat -from style import StyleLog - -# Read in token from "token" file -# TODO: env variable in future? -with open("token", "r") as file: - token = file.readlines() -client = OpenAI(api_key=token[0].strip()) - -def text_call(api_call_queue, messages, model): - response = client.chat.completions.create( - model=model, - messages=messages - ) - api_call_queue.put(response.choices[0].message.content) - -def image_call(api_call_queue, messages, model): - response = client.chat.completions.create( - model=model, - messages=messages - ) - api_call_queue.put(response.choices[0].message.content) - -def main(): - - model = "" - if len(sys.argv) > 1: - model = sys.argv[1] - else: - model = "gpt-3.5-turbo" - - helper = HelpCommands(model) - styler = StyleLog() - messages = start_chat(model, styler) - - while True: - - user_input = styler.prompt("user", "") - - status, messages, model = helper.command(user_input, messages, model, styler) - if status == 1: - break - elif status == 2: - continue - - global api_call_done - api_call_done = threading.Event() - api_call_queue = queue.Queue() - - if model == "dall-e-2" or model == "dall-e-3": - response_thread = threading.Thread(target=image_call, args=(api_call_queue, messages, model,)) - else: - response_thread = threading.Thread(target=text_call, args=(api_call_queue, messages, model,)) - response_thread.start() - - ellipsis_thread = threading.Thread(target=styler.show_ellipsis, args=(api_call_done,)) - ellipsis_thread.start() - - response_thread.join() - api_call_done.set() - ellipsis_thread.join() - - ai_response = api_call_queue.get() - messages.append({"role": "assistant", "content": ai_response}) - styler.prompt("assistant", f"{ai_response}\n") - - # TODO: Add some form of token check, as to not overflow - - -if __name__ == "__main__": - main() |