这篇“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实现文章生成”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程之家行业资讯频道。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。