欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python調用ChatGPT的API實現(xiàn)文章生成

 更新時間:2023年03月22日 11:10:24   作者:徐浪老師  
最近ChatGPT大火,在3.5版本后開放了接口API,所以很多人開始進行實操,這里我就用python來為大家實現(xiàn)一下,如何調用API并提問返回文章的說明

實操目標

最近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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Pytest自動化測試的具體使用

    Pytest自動化測試的具體使用

    Pytest是一個Python的自動化測試框架,它可用于編寫單元測試、功能測試、集成測試和端到端測試,本文就來介紹一下Pytest自動化測試的具體使用,感興趣的可以了解一下
    2024-01-01
  • Django如何重置migration的幾種情景

    Django如何重置migration的幾種情景

    這篇文章主要介紹了Django如何重置migration的幾種情景,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • Python表格數據處理庫之tablib庫詳解

    Python表格數據處理庫之tablib庫詳解

    這篇文章主要介紹了Python表格數據處理庫之tablib庫詳解,Tablib是一個用于處理電子表格數據的Python庫,它可以輕松地進行數據的導入和導出,以及數據格式的轉換,需要的朋友可以參考下
    2023-08-08
  • Python連接Redis的基本配置方法

    Python連接Redis的基本配置方法

    本文分享了Linux系統(tǒng)下Python連接Redis的基本配置方法,Python連接Redis需要Redis的Python包支持
    2018-09-09
  • Python操控mysql批量插入數據的實現(xiàn)方法

    Python操控mysql批量插入數據的實現(xiàn)方法

    這篇文章主要介紹了Python操控mysql批量插入數據的實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • python opencv3實現(xiàn)人臉識別(windows)

    python opencv3實現(xiàn)人臉識別(windows)

    這篇文章主要為大家詳細介紹了python opencv3實現(xiàn)人臉識別程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • pytorch/transformers?最后一層不加激活函數的原因分析

    pytorch/transformers?最后一層不加激活函數的原因分析

    這里給大家解釋一下為什么bert模型最后都不加激活函數,是因為損失函數選擇的原因,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-01-01
  • vue學習筆記之動態(tài)組件和v-once指令簡單示例

    vue學習筆記之動態(tài)組件和v-once指令簡單示例

    這篇文章主要介紹了vue學習筆記之動態(tài)組件和v-once指令,結合簡單實例形式詳細分析了vue.js動態(tài)組建點擊切換相關操作技巧,需要的朋友可以參考下
    2020-02-02
  • Ubuntu20.04環(huán)境安裝tensorflow2的方法步驟

    Ubuntu20.04環(huán)境安裝tensorflow2的方法步驟

    這篇文章主要介紹了Ubuntu20.04環(huán)境安裝tensorflow2的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 在?Python?中創(chuàng)建DataFrame的方法

    在?Python?中創(chuàng)建DataFrame的方法

    這篇文章主要介紹了教你如何在?Python?中創(chuàng)建DataFrame,我們將學習以多種方式創(chuàng)建DataFrame,DataFrame是數據的二維集合,是一種數據結構,其中數據以表格形式存儲,更多相關資料需要的小伙伴可以參考一下
    2022-03-03

最新評論