Untitled
unknown
plain_text
2 years ago
11 kB
3
Indexable
from PyQt6 import QtCore, QtGui, QtWidgets from PyQt6.QtCore import QEvent, pyqtSignal from PyQt6.QtGui import QKeySequence, QShortcut import resources import gpt4_chat import datetime from threading import Thread class MyTextEdit(QtWidgets.QTextEdit): enterPressed = pyqtSignal() def __init__(self, parent=None): super().__init__(parent) def keyPressEvent(self, event): if event.key() in (QtCore.Qt.Key.Key_Enter, QtCore.Qt.Key.Key_Return): self.enterPressed.emit() else: super().keyPressEvent(event) class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.setEnabled(True) MainWindow.resize(1405, 819) MainWindow.setStyleSheet("") MainWindow.setAnimated(True) MainWindow.setDocumentMode(False) MainWindow.setUnifiedTitleAndToolBarOnMac(True) self.centralwidget = QtWidgets.QWidget(parent=MainWindow) self.centralwidget.setStyleSheet("") self.centralwidget.setObjectName("centralwidget") self.frame = QtWidgets.QFrame(parent=self.centralwidget) self.frame.setGeometry(QtCore.QRect(0, 0, 1405, 777)) self.frame.setStyleSheet("background: transparent; border: 0px ;\n" "background-image: url(:/NewPref/background_merged.png);") self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) self.frame.setObjectName("frame") self.widget = QtWidgets.QWidget(parent=self.frame) self.widget.setGeometry(QtCore.QRect(342, 181, 738, 554)) self.widget.setStyleSheet("background: transparent; border: 0px ;\n" "background-image: url(:/NewPref/chatbox.png);") self.widget.setObjectName("widget") self.ChatBox = QtWidgets.QTextEdit(parent=self.widget) self.ChatBox.setGeometry(QtCore.QRect(70, 108, 610, 347)) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.ChatBox.sizePolicy().hasHeightForWidth()) self.ChatBox.setSizePolicy(sizePolicy) palette = QtGui.QPalette() brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.WindowText, brush) brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 0)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Button, brush) brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Text, brush) brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.ButtonText, brush) brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) brush.setStyle(QtCore.Qt.BrushStyle.NoBrush) palette.setBrush(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Base, brush) brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 0)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Window, brush) brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 128)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.PlaceholderText, brush) brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.WindowText, brush) brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 0)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Button, brush) brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Text, brush) brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.ButtonText, brush) brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) brush.setStyle(QtCore.Qt.BrushStyle.NoBrush) palette.setBrush(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Base, brush) brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 0)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Window, brush) brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 128)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.PlaceholderText, brush) brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.WindowText, brush) brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 0)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Button, brush) brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Text, brush) brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.ButtonText, brush) brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) brush.setStyle(QtCore.Qt.BrushStyle.NoBrush) palette.setBrush(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Base, brush) brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 0)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Window, brush) brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 128)) brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern) palette.setBrush(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.PlaceholderText, brush) self.ChatBox.setPalette(palette) font = QtGui.QFont() font.setPointSize(10) self.ChatBox.setFont(font) self.ChatBox.setStyleSheet("color: white; background: transparent; border: 0px ;\n" "background-image: url(:/NewPref/ChatTextBox.png);") self.ChatBox.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustIgnored) self.ChatBox.setTabChangesFocus(False) self.ChatBox.setReadOnly(True) self.ChatBox.setObjectName("ChatBox") self.send_button = QtWidgets.QPushButton(parent=self.widget) self.send_button.setGeometry(QtCore.QRect(690, 490, 16, 16)) self.send_button.setStyleSheet("background: transparent; border: 0px ;\n" "background-image: url(:/NewPref/Layer 1.png);") self.send_button.setObjectName("send_button") self.user_input = MyTextEdit(self.widget) self.user_input.setGeometry(QtCore.QRect(72, 467, 611, 61)) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.user_input.sizePolicy().hasHeightForWidth()) self.user_input.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setPointSize(10) self.user_input.setFont(font) self.user_input.setStyleSheet("color: white; background: transparent; border: 0px ;\n" "background-image: url(:/NewPref/ChatLine.png);") self.user_input.setObjectName("user_input") self.widget_2 = QtWidgets.QWidget(parent=self.frame) self.widget_2.setGeometry(QtCore.QRect(700, 20, 654, 712)) self.widget_2.setStyleSheet("background: transparent; border: 0px ;\n" "background-image: url(:/NewPref/Right buttons.png);") self.widget_2.setObjectName("widget_2") self.widget_2.raise_() self.widget.raise_() MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(parent=MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1405, 22)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(parent=MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.send_button.setText(_translate("MainWindow", "PushButton")) class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): def __init__(self): super(MainWindow, self).__init__() self.setupUi(self) self.send_button.clicked.connect(self.send_message) self.user_input.enterPressed.connect(self.send_message) self.conversation_list = [{'role': 'system', 'content': 'You are a helpful SuperAI assistant!'}] def send_message(self): user_input = self.user_input.toPlainText() if user_input.lower() == 'quit': self.close() return if user_input: timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") formatted_message = f"{timestamp}\nUser: {user_input}\n\n" self.ChatBox.append(formatted_message) self.user_input.clear() self.conversation_list.append({'role': 'user', 'content': user_input}) Thread(target=self.get_response, args=(self.conversation_list,)).start() def get_response(self, conversation_list): try: response = gpt4_chat.chat_gpt4(conversation_list) conversation_list.append({'role': 'assistant', 'content': response}) timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") formatted_response = f"{timestamp}\nGPT-4: {response}\n\n" self.ChatBox.append(formatted_response) except Exception as e: print(f'Error: {e}') if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) MainWindow = MainWindow() MainWindow.show() sys.exit(app.exec())
Editor is loading...