본문 바로가기
Programming/Python

챗 GPT (Chat GPT) 프로그램 파이썬 (Python) 으로 만들기 - 심코딩

by 심코딩 2023. 4. 11.

저번 포스팅을 통해 지금 굉장히 핫한 챗 GPT (Chat GPT)를 파이썬을 통해 우리가 굳이 웹사이트에 안들어가도 이용할 수 있다는 것을 알 수 있었습니다.

 

아직 해당 부분에 대해 정확히 알지 못하시는 분들은 아래 제 포스팅을 먼저 보고 오시는 것을 추천드립니다.

 

 

챗GPT (ChatGPT)를 파이썬(Python) 으로 실행시키기 - 심코딩

요즘 굉장히 핫한 AI 프로그램 중 하나인 챗 GPT (ChatGPT)에 대해 포스팅을 해보려 합니다. 이 챗 GPT (ChatGPT)를 통해 정말 많은 도움을 받을 수 있는데요, 이 프로그램이 우리가 자주 사용하는 파이썬

s1mcoding.tistory.com

 

오늘은 이 코드를 통해서 실질적으로 이용 가능하도록, PyQT 를 통해 간단한 GUI를 만들어서 메모장 처럼 사용을 하는 법에 대해서 알아 보겠습니다.

 

먼저 결론적으로 말씀드리면 아래와 같이 실행이 되는 프로그램을 만들 겁니다.

 


어떻게 챗 GPT (Chat GPT) 를 프로그램화 시킬것인가?

 

먼저 만든 프로그램을 실행한다면 아래와 같이 메모장 프로그램이 나타납니다.

상단 박스는 비어있으며, 하단 박스에는 타이핑을 할 수 있습니다.

 

이 하단 타이핑 가능한 박스에 내가 원하는 질문을 입력합니다.

간단하게 "1+1은 뭐야?" 라는 질문을 적습니다.

질문을 다 적은 후 키보드 엔터키를 눌러줍니다.

잠시 로딩이 끝난 후 Chat GPT가 아래와 같이 대답을 해줍니다.

(반말로 질문을 하니 반말로 대답을 하네요..)

챗 GPT (Chat GPT) 프로그램을 파이썬으로 어떻게?

 

해당 프로그램을 만드는 코드는 아래와 같습니다.

깃허브 (Github) 주소도 아래에 있으니 제가 사용한 아이콘을 다운로드 하시고 싶으신 분들은 사용 하시면 되십니다.

( 챗 GPT 의 OpenAi API를 깃허브에 올리니 공개 노출을 하였기 때문에 바로 API Key가 폐기 됩니다. 따라서 아래 코드를 따라하시는 분들은 아이콘의 주소, API Key를 넣는 곳들은 본인의 주소 및 API Key를 따로 넣어주셔야 하십니다. )

 

 

GitHub - s1mfo/ChatGPT_Notepad: Notepad with ChatGPT

Notepad with ChatGPT. Contribute to s1mfo/ChatGPT_Notepad development by creating an account on GitHub.

github.com

 

from PyQt5.QtWidgets import QApplication, QTextBrowser, QLineEdit, QVBoxLayout, QWidget
from PyQt5.QtGui import QIcon, QFont
import sys
import openai

class Window(QWidget) :
    
    def __init__ (self):
        super().__init__()

        self.title="Chat GPT Memo"
        self.top = 400
        self.left = 400
        self.width = 400
        self.height = 600
        
        self.setStyleSheet('border-top:black')
        self.setWindowTitle(self.title)
        self.setGeometry(self.top, self.left, self.width, self.height)
        self.setWindowIcon(QIcon('D:/Solo Coding/Projects/ChatGPT/robot.png'))
        self.Ui()
    
    def Ui (self):
        
        self.browser = QTextBrowser()
        self.lineEdit = QLineEdit()

        vbox = QVBoxLayout()
        vbox.addWidget(self.browser)
        vbox.addWidget(self.lineEdit)

        self.setLayout(vbox)
        self.lineEdit.returnPressed.connect(self.updateBrowser)
        
    
    def updateBrowser(self):
        openai.api_key ="YOUR API KEY HERE"
              
        text = str(self.lineEdit.text ())
        completion = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=[
            {"role": "user","content": text}
            ]
        )
        answer = completion.choices[0].message.content
        self.browser.append("<b>%s</b>"%(text))
        self.browser.append(answer)
        self.lineEdit.clear()
        
                    
app = QApplication(sys.argv)
window = Window()
window.show()
app.exec()

많은 분들이 챗 GPT 와 같은 인공지능의 발달로 일자리가 위협을 받지 않을까 고민을 하실거라 생각합니다. 하지만 저는 인공지능 AI 가 우리의 일자리를 완벽히 대체한다기 보다는 인공지능 AI를 잘 사용하는 인간이 잘 사용하지 못하는 혹은 아예 사용을 못하는 인간을 대체하지 않을까 싶습니다.

 

실제로 해당 노트를 업무에 사용을 하고 있습니다. 조금 로딩은 있지만 그래도 웹사이트에 들어가서 입력을 하는 거보다는 창을 띄워놓고 언제든지 빠르게 사용할 수 있다는 점이 장점인 것 같습니다.

 

댓글