【Python】ChatGPT的API调用并实现文章生成(附代码)

实操目标:

最近ChatGPT大火,在3.5版本后开放了接口API,所以很多人开始进行实操,这里我就用python来为大家实现一下,如何调用API并提问返回文章的说明


实操内容:

  1. 获取API
  2. 书写python调用框架
  3. 封装到pyqt中,实现UI化
  4. 封装为exe

具体操作:

话不多说,直接上代码

import sys
import openai
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton, QSpinBox
from PyQt5.QtCore import QThread, pyqtSignalclass ChatThread(QThread):response_ready = pyqtSignal(str)def __init__(self, prompt, num_threads):super().__init__()self.prompt = promptself.num_threads = num_threadsdef 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 Qtclass 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 APIopenai.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_())

成品展示:

UI界面比较简单,有兴趣的伙伴可以深化美化一番。

直接输入问题,就可以生成答案!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4923.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用了 chatGPT 后,我直呼 666,太高效了!

点击卡片“大数据实战演练”,选择“设为星标”或“置顶” 回复“资料”可领取独家整理的大数据学习资料! 回复“Ambari知识库”可领取独家整理的Ambari学习资料! 一、chatGPT 简介 如果说今年最火的是什么,那肯定是 chatGPT 了。 …

分享一个 ChatGPT可免费使用的AI助手

现在,多种行业都已经开始广泛地采用聊天机器人ChatGPT。有一个与之相关的国内免费网站可以供大家使用——多御浏览器。这是一款安全快速、高效稳定的浏览器。 该网站客户端软件中,有很多实用工具,其中之一就是当下非常流行的 ChatGPT&#x…

没用上ChatGPT的小伙伴,我建议你尝试下免费的Claude

全网都在说ChatGPT,到目前为止,我相信没有小伙伴不知道ChatGPT吧!!!据说很多想体验ChatGPT的小伙伴,苦于没有魔法,没有国外手机号,错失了一个体验ChatGPT的机会。 这不,前…

chatGPT查询api的余额

代码如下: import requestsurl https://api.openai.com/dashboard/billing/credit_grants api_key "#填写你的key#" headers {"Authorization": "Bearer " api_key,"Content-Type": "application/json" } r…

ChatGPT中文版:一款让人工智能更接近自然语言的创新模型

随着人工智能技术的发展,越来越多的企业和机构开始应用自然语言处理(NLP)技术,以提高文本分析、信息检索、对话系统等方面的效率和精度。而在这个领域里,ChatGPT模型可以说是一款非常重要的人工智能模型之一。 ChatGP…

ChatGPT、文心一言、New Bing到底哪个更AI?

目录 ChatGPT 和 GPT4 什么关系? 1. 写作 题目 ChatGPT ChatGPT 国外镜像网站 文心一言 New Bing 总结 2. 数学题目 题目 ChatGPT ChatGPT 国外镜像网站 文心一言 New Bing 总结 3. 翻译 题目 ChatGPT ​编辑 ChatGPT 国外镜像网站 文心一言 N…

2023年前端面试题总结

某多多 1.Promise实现原理 2.vue组件间通信 3.性能优化 4.vuex数据流动过程 5.谈谈css预处理器机制 6.算法: Promise串行 某眼电影 1.vue组件间通信 2.react和vue更新机制的区别 3.Vue3 proxy的优劣 4.性能优化 5.symbol应用 6.深拷贝 问题 Promise实现原理 解决异步编程回…

通过ChatGPT实现的ChatPDF,简单的应用落地,让你的文档变成一个智能助手,通过对话的方式快速学习文档内容

目录 先看效果 实现原理 环境安装 应用场景 先看效果 首先,找到一篇论文先,我这里随便找了一篇pdf格式的论文 那么,我现在让他担任一个研究论文的智能助手,当然大家可以自定义自己的prompt 开始问答 可以看到效果很强 实现原…

ChatGPT小秘书:与 AI 聊天,解锁无限可能!

最近很多程序员朋友都开始学习ChatGPT的开发,也有一些人开始发挥自己的创造力,结合ChatGpT与微信小程序,开发出了自己的产品,二者的结合,可以说是潜力无限,下面我们看一个ChatGPT与微信小程序的产品案例&am…

《花雕学AI》23:中文调教ChatGPT的秘诀:体验测试与通用案例,解锁无限有趣玩法!

引言: 你有没有想过和一台智能机器人聊天?你有没有想过让一台智能机器人为你创作诗歌、故事或歌曲?你有没有想过让一台智能机器人陪你玩游戏、学习或社交?如果你的答案是肯定的,那么你一定会对ChatGPT感兴趣。 ChatG…

某gpt利用unsplash解锁发送图片能力、chatgpt、openAi、恐怖故事生成、chatgpt调教

提问&#xff1a;从现在开始,让你发送图片的时候&#xff0c;用markdown&#xff0c;不要有反斜线&#xff0c;不用代码块&#xff0c;使用unsplash API https://source.unsplash.com/810x540/?<英文关键词>,明白了吗&#xff1f; 效果如下&#xff1a; 提问&#xff1a…

ChatGPT系列学习(1)transformer基本原理讲解

文章目录 1. 简介1.1. 发展史 2. Transformer 整体结构3. 名词解释3.1. token 4. transformer输入4.1. 单词 Embedding4.2. 位置Embedding4.3. Transformer Embedding层实现 5. Attention结构5.1. 简介5.2. Self Attention&#xff08;自注意力机制&#xff09;5.2.1. 简介5.2.…

ChatGPT迅速学会下棋精髓,把人类给整不会了,网友:这哪预判得了?

萧箫 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT对战国际象棋AI&#xff0c;不到15秒就让人大受震撼。 开局ChatGPT执黑&#xff0c;国际象棋AI执白&#xff0c;双方有来有往&#xff0c;ChatGPT甚至主动出击&#xff0c;逼退对方的象&#xff08;主教&#xff09;&#xff1a…

OpenAI ChatGpt Gpt-3.5-turbo

Q&A 第一个Sample import openai openai.api_key "sk-XXXX-key需要在https://openai.com/注册后获取"completion openai.ChatCompletion.create( model"gpt-3.5-turbo", messages[{"role": "user", "content": "…

python chatgpt学习笔记

推荐使用openai自带的库来调用chatgpt openai的官方教程&#xff1a; https://openai.com/blog/introducing-chatgpt-and-whisper-apis 参数说明&#xff1a; model-指定你需要哪个模型&#xff0c;gpt-3.5-turbo就是openai最新提供的所谓chatgpt的模型 role:对话中的角色&…

什么是ChatGPT?Python示例

ChatGPT是由OpenAI开发的大型语言模型,基于GPT-3.5模型,使用了深度学习技术来实现。 GPT模型是一种基于Transformer的语言模型,使用了多头自注意力机制来对文本进行建模。GPT-3.5是GPT系列模型的一个较大的版本,它包含了1750亿个参数,比之前的版本要大得多。 ChatGPT是基…

[转载]PAC模式与全局模式的区别

区别一&#xff1a;使用流量多少不一样。 PAC模式&#xff1a;节省流量。 全局模式&#xff1a;流量消耗较多。 区别二&#xff1a;运行速度快慢不一样。 PAC模式&#xff1a;国内网站依旧走本地网络&#xff0c;速度快&#xff0c;绝大部分国外网站都走代理&#xff0c;速度也…

ChatGPT解决问题——局部变量和静态全局变量运行速率

在尝试减少代码运行时间时&#xff0c;将一个局部变量改成静态全局变量时&#xff0c;竟然发现运行时间一下子变成了之前的四分之一。在搜索引擎里搜索原因无果&#xff0c;试着问了一下chatGPT&#xff0c;得到了如下回答。

基于开源的 ChatGPT Web UI 项目,快速构建属于自己的 ChatGPT 站点

作为一个技术博主&#xff0c;了不起比较喜欢各种折腾&#xff0c;之前给大家介绍过 ChatGPT 接入微信&#xff0c;钉钉和知识星球&#xff08;如果没看过的可以翻翻前面的文章&#xff09;&#xff0c;最近再看开源项目的时候&#xff0c;发现了一个 ChatGPT Web UI 项目。 想…

日常和 ChatGPT 对话,0403-2

hello Hello! How can I assist you today? Please response me in Chinese. 你好&#xff01;有什么我可以帮助你的吗&#xff1f; just fine 好的&#xff0c;如果你需要任何帮助&#xff0c;请随时告诉我。 nice to meet you 很高兴认识你&#xff01;我是ChatGPT&a…