微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python怎么调用ChatGPT的API实现文章生成

这篇“Python怎么调用chatgpt的API实现文章生成文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python怎么调用chatgpt的API实现文章生成文章吧。

实操内容

获取API

书写python调用框架

封装到pyqt中,实现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)

        # 创建一个垂直布局,并将所有控件添加到布局中
        layout = QVBoxLayout()

        # 创建一个标签,并添加到布局中
        label = QLabel('Please enter your question:')
        layout.addWidget(label)

        # 创建一个文本框,并添加到布局中
        self.text_edit = QLineEdit()
        layout.addWidget(self.text_edit)

        # 创建一个水平布局,并添加一个按钮和一个标签
        hBox = QHBoxLayout()
        self.button = QPushButton('Ask')
        self.button.clicked.connect(self.on_button_clicked)
        hBox.addWidget(self.button)

        # 创建一个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()

        # 创建并启动线程
        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__':
    # 创建一个Qt应用对象
    app = QApplication(sys.argv)

    # 创建一个窗口对象
    window = Chatwindow()

    # 显示窗口
    window.show()

    # 运行Qt应用的主循环
    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)

        # 创建一个垂直布局,并将所有控件添加到布局中
        layout = QVBoxLayout()

        # 创建一个标签,并添加到布局中
        label = QLabel('请在下方输入您的问题:')
        label.setStyleSheet('font-size: 18pt; color: #006699; font-family: Simsun')
        label.setAlignment(Qt.AlignCenter)
        layout.addWidget(label)

        # 创建一个文本框,并添加到布局中
        self.text_edit = QLineEdit()
        self.text_edit.setStyleSheet('font-size: 14pt; font-family: Simsun')
        layout.addWidget(self.text_edit)

        # 创建一个水平布局,并添加一个按钮和一个标签
        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__':
    # 创建一个Qt应用对象
    app = QApplication(sys.argv)

    # 创建一个窗口对象
    window = Chatwindow()

    # 显示窗口
    window.show()

    # 运行Qt应用的主循环
    sys.exit(app.exec_())

成品展示

Python怎么调用ChatGPT的API实现文章生成

以上就是关于“Python怎么调用chatgpt的API实现文章生成”这篇文章内容,相信大家都有了一定的了解,希望小编分享内容对大家有帮助,若想了解更多相关的知识内容,请关注编程之家行业资讯频道。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐