Python连接ChatGPT API实现GUI图形交互
来源:知乎
为了体现Python的敏捷性,我憋了半天Tkinter,磕磕绊绊地做了一个简易图形。主要是想用pyinstaller,打包成MacOS的APP。
这样,我就可以每天使用自己做的图形软件,调用ChatGPT了。虽然简陋,但成就感满满。
1、代码分享
代码比较简单。直接采用关键语句注释讲解。tkinter的语法,这里就不展开了。
from tkinter import *
import openai
# 答案保存函数,把ChatGPT的回答文本,保存到日志文件中
def saveAnswer(chatText):
filename = f'ChatGPT_Answer.log'
with open(filename, 'a+') as f:
f.write(chatText)
# 调用ChatGPT API函数,主要功能在上篇文章中讲过了
def chatGPT_Answer():
# 注意,请使用自己的openai.api_key,代码里的openai.api_key为虚构
openai.api_key = "sk-FGRGGsabcdefghijklmnopqrstuvwxyz"
# 把tkinter Text空间的文本全部读取,再调用get方法给变量prompt获取
prompt = str(GUI_Question.get('0.0', 'end'))
response = openai.Completion.create(
model="text-davinci-003",
prompt=prompt,
temperature=0,
max_tokens=2000,
top_p=1,
frequency_penalty=0.2,
presence_penalty=0
)
# 把ChatGPT返回的文本答案,放入变量chatAnswer
chatAnswer = response['choices'][0].text.strip() + '\n\n'
# 把ChatGPT返回的文本答案,放到主函数的label变量out中
out.configure(text='ChatGPT_Answer: ' + '\n' + chatAnswer)
# 把ChatGPT返回的文本答案,传递给答案保存函数
saveAnswer(chatAnswer)
if __name__ == '__main__':
root = Tk()
root.title('OpenAI ChatGPT GUI')
label = Label(root, text='请输入要ChatGPT回答的问题:',font='Calibri 25 bold', fg='white')
label.pack()
GUI_Question = Text(root, bg='grey', width=100, font='Calibri 18')
GUI_Question.pack(pady=5)
out = Label(root, justify=LEFT)
out.pack()
button = Button(root, text='ChatGPT', fg='green', command=chatGPT_Answer)
button.pack()
root.mainloop()
2、代码效果展示
如图,效果还行,就是图形太过简陋。


3、打包成MacOS的APP
在打包之前,先介绍一下前期准备工作:
(1)图标要求
Windows环境下pyinstaller常用的图标格式是30x30像素的.ico位图
Mac环境下pyinstaller常用的图标格式是30x30像素的.icons的位图
(2)pyinstaller打包常用参数
-i 给应用程序添加图标 -F 指定打包后只生成一个exe(windows)/app(MacOS)格式的文件 -D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项) -c –console, –nowindowed 使用控制台,无界面(默认) -w –windowed, –noconsole 使用窗口,无控制台 -p 添加搜索路径
(3)自己常用打包命令
# 上下两个命令都是一样的效果
pyinstaller -w -i picName.icns -F programName.py
pyinstaller -F -w programName.py -i picName.icns
(4)MacOS打包演示
进入家目录的Downloads文件夹,把准备好的图标和刚才写的程序,拷贝进来。
cd ~/Downloads

可以看到,我准备了一张马里奥大叔的图标,来打包我的Python程序QandAgui.py
使用如下命令打包即可。
pyinstaller -F -w QandAgui.py -i m.icns
稍等片刻,打包成功。
再次进入家目录Downloads文件夹,找到dist文件夹进入,把马里奥头像的APP拷贝到MacOS的Application文件夹中,即可使用。



4、软件演示
直接在MacOS下,点击马里奥图标即可打开软件。

三、后记
ChatGPT的Python API给了我们极大的定制自由。不管是Django的Web调用,还是GUI的图形调用,亦或是CLI的文本调用。都值得同行朋友们积极尝试。