Code前端首页关于Code前端联系我们

Python集成ChatGPT API实现图形图形交互

terry 2年前 (2023-09-24) 阅读数 63 #后端开发

Python连接ChatGPT API实现GUI图形交互作者:惰惰猴
来源:知乎

为了体现Python的敏捷性,我拿着Tkinter很长时间,跌跌撞撞地做出了简单的图形。主要是我想使用pyinstaller将其打包成MacOS应用程序。

这样我就可以每天用我做的图形软件调用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。代码效果展示

从图中可以看到,效果还不错,但是图形太简单了。 Python连接ChatGPT API实现GUI图形交互Python连接ChatGPT API实现GUI图形交互

3。针对 MacOS 应用程序打包

在打包之前,先介绍一下初步的准备工作:

(1)图标要求

Windows 环境下 pyinstaller 常用的图标格式是 30x30 像素 位 .ico。 Mac 环境下 pyinstaller 常用的图标格式为 30x30 像素 .icons 位图

(2) pyinstaller 包的通用参数

-i 为应用程序添加图标 -F 指定之后只创建一个 exe。 package (windows)/app (MacOS) 格式文件 -D –onedir 创建一个包含 exe 文件但依赖于许多文件的目录(默认) -c –console, –nowindowed 使用控制台,而不是 UI(默认) -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连接ChatGPT API实现GUI图形交互

如你所见,我准备了一个马里奥叔叔的图标,它将打包到我的Python程序QandAgui.py

使用以下命令打包它。

pyinstaller -F -w QandAgui.py -i m.icns 

稍等一下,包裹已打包成功。

重新进入主目录下的Downloads文件夹,找到dist文件夹,将马里奥分身APP复制到MacOS的Application文件夹即可使用。 Python连接ChatGPT API实现GUI图形交互Python连接ChatGPT API实现GUI图形交互Python连接ChatGPT API实现GUI图形交互

4。软件介绍

在MacOS中,直接点击Mario图标即可打开软件。 Python连接ChatGPT API实现GUI图形交互

3。 Postscript

ChatGPT 的 Python API 为我们提供了很大的定制自由度。无论是 Django Web 调用、GUI 图形调用还是 CLI 文本调用。他们都值得同事和朋友的积极陪伴。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门