Python調用ChatGPT的API實現(xiàn)文章生成
實操目標
最近ChatGPT大火,在3.5版本后開放了接口API,所以很多人開始進行實操,這里我就用python來為大家實現(xiàn)一下,如何調用API并提問返回文章的說明
實操內容
獲取API
書寫python調用框架
封裝到pyqt中,實現(xiàn)UI化
封裝為exe
具體操作
話不多說,直接上代碼
import sys import openai from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton, QSpinBox from PyQt5.QtCore import QThread, pyqtSignal class ChatThread(QThread): response_ready = pyqtSignal(str) def __init__(self, prompt, num_threads): super().__init__() self.prompt = prompt self.num_threads = num_threads def run(self): openai.api_key = "這里輸入你的API" response = openai.Completion.create( engine="text-davinci-003", prompt=self.prompt, max_tokens=1024, temperature=0.5, top_p=1.0, frequency_penalty=0.0, presence_penalty=0.0, n=self.num_threads ) self.response_ready.emit(response.choices[0].text.strip()) class ChatWindow(QWidget): def __init__(self): super().__init__() # 設置窗口標題和大小 self.setWindowTitle('Chat with GPT-3') self.resize(500, 400) # 創(chuàng)建一個垂直布局,并將所有控件添加到布局中 layout = QVBoxLayout() # 創(chuàng)建一個標簽,并添加到布局中 label = QLabel('Please enter your question:') layout.addWidget(label) # 創(chuàng)建一個文本框,并添加到布局中 self.text_edit = QLineEdit() layout.addWidget(self.text_edit) # 創(chuàng)建一個水平布局,并添加一個按鈕和一個標簽 hbox = QHBoxLayout() self.button = QPushButton('Ask') self.button.clicked.connect(self.on_button_clicked) hbox.addWidget(self.button) # 創(chuàng)建一個SpinBox控件,用于選擇線程數量 self.thread_spinbox = QSpinBox() self.thread_spinbox.setMinimum(1) self.thread_spinbox.setMaximum(10) self.thread_spinbox.setValue(1) hbox.addWidget(self.thread_spinbox) self.answer_label = QLabel() hbox.addWidget(self.answer_label) layout.addLayout(hbox) # 設置窗口的主布局 self.setLayout(layout) def on_button_clicked(self): # 從文本框中獲取問題 prompt = self.text_edit.text() # 獲取選中的線程數量 num_threads = self.thread_spinbox.value() # 創(chuàng)建并啟動線程 thread = ChatThread(prompt, num_threads) thread.response_ready.connect(self.on_response_ready) thread.start() def on_response_ready(self, response): # 將答案顯示在標簽中 self.answer_label.setText(response) if __name__ == '__main__': # 創(chuàng)建一個Qt應用對象 app = QApplication(sys.argv) # 創(chuàng)建一個窗口對象 window = ChatWindow() # 顯示窗口 window.show() # 運行Qt應用的主循環(huán) sys.exit(app.exec_()) ''' import sys import openai from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton from PyQt5.QtCore import Qt class ChatWindow(QWidget): def __init__(self): super().__init__() # 設置窗口標題和大小 self.setWindowTitle('小杰巨無霸gpt自動生成器') self.resize(500, 400) # 創(chuàng)建一個垂直布局,并將所有控件添加到布局中 layout = QVBoxLayout() # 創(chuàng)建一個標簽,并添加到布局中 label = QLabel('請在下方輸入您的問題:') label.setStyleSheet('font-size: 18pt; color: #006699; font-family: SimSun') label.setAlignment(Qt.AlignCenter) layout.addWidget(label) # 創(chuàng)建一個文本框,并添加到布局中 self.text_edit = QLineEdit() self.text_edit.setStyleSheet('font-size: 14pt; font-family: SimSun') layout.addWidget(self.text_edit) # 創(chuàng)建一個水平布局,并添加一個按鈕和一個標簽 hbox = QHBoxLayout() self.button = QPushButton('開始生成') self.button.setStyleSheet('font-size: 16pt; font-family: SimSun; color: white; background-color: #006699') self.button.clicked.connect(self.on_button_clicked) hbox.addWidget(self.button) self.answer_label = QLabel() self.answer_label.setStyleSheet('font-size: 14pt; color: #006699; font-family: SimSun') self.answer_label.setAlignment(Qt.AlignCenter) hbox.addWidget(self.answer_label) layout.addLayout(hbox) hbox.setAlignment(Qt.AlignCenter) # 設置窗口的主布局 self.setLayout(layout) # 初始化OpenAI API openai.api_key = "這里輸入你獲取的KEY" def on_button_clicked(self): # 從文本框中獲取問題 prompt = self.text_edit.text() # 使用OpenAI API獲取答案 response = openai.Completion.create( engine="text-davinci-003", prompt=prompt, max_tokens=1024, temperature=0.5, top_p=1.0, frequency_penalty=0.0, presence_penalty=0.0 ) # 將答案顯示在標簽中 self.answer_label.setText(response.choices[0].text.strip()) if __name__ == '__main__': # 創(chuàng)建一個Qt應用對象 app = QApplication(sys.argv) # 創(chuàng)建一個窗口對象 window = ChatWindow() # 顯示窗口 window.show() # 運行Qt應用的主循環(huán) sys.exit(app.exec_())
成品展示
UI界面比較簡單,有興趣的伙伴可以深化美化一番。
直接輸入問題,就可以生成答案!
到此這篇關于Python調用ChatGPT的API實現(xiàn)文章生成的文章就介紹到這了,更多相關Python ChatGPT生成文章內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python操控mysql批量插入數據的實現(xiàn)方法
這篇文章主要介紹了Python操控mysql批量插入數據的實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10python opencv3實現(xiàn)人臉識別(windows)
這篇文章主要為大家詳細介紹了python opencv3實現(xiàn)人臉識別程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05pytorch/transformers?最后一層不加激活函數的原因分析
這里給大家解釋一下為什么bert模型最后都不加激活函數,是因為損失函數選擇的原因,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-01-01vue學習筆記之動態(tài)組件和v-once指令簡單示例
這篇文章主要介紹了vue學習筆記之動態(tài)組件和v-once指令,結合簡單實例形式詳細分析了vue.js動態(tài)組建點擊切換相關操作技巧,需要的朋友可以參考下2020-02-02Ubuntu20.04環(huán)境安裝tensorflow2的方法步驟
這篇文章主要介紹了Ubuntu20.04環(huán)境安裝tensorflow2的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01在?Python?中創(chuàng)建DataFrame的方法
這篇文章主要介紹了教你如何在?Python?中創(chuàng)建DataFrame,我們將學習以多種方式創(chuàng)建DataFrame,DataFrame是數據的二維集合,是一種數據結構,其中數據以表格形式存儲,更多相關資料需要的小伙伴可以參考一下2022-03-03