当前位置: 首页 > news >正文

python gui构造openai api可视化页面

背景:最近chatgpt很火,前几天也想注册体验一下,一顿操作之后,卡在该国家不支持。最后发现自己的代理开在香港,改在漂亮国就行了。虽然有chatgpt可以用,但是小平是自己封装了一个,我不能输。正好对python存在一点兴趣,索性直接研究python可视化openai api。

openai的注册就很简单。

OpenAI

1.用邮箱注册一下后会发一个邮箱验证(qq邮箱验证消息有点慢的,等了好一会)

 

2.验证成功之后,需要在一个网站上买一个手机号验证码,好像印度的验证码收的挺费劲的。我买了一个马来西亚的,速度很快。买了之后有20分钟的时间,要是期间没有验证,可以免费退一次。

SMS-Activate - service for receiving virtual SMS online to virtual SIM

 3首先先介绍一下openai api的模型。

 目前用的多是gpt-3和codex。翻译一下就知道一个是理解和创造语言。一个去编码(可以问怎么编码或者纠正代码啥的)

在gpt3,codex中也分为细致的小模型。第一个达芬奇用的最多,当然也是相对言贵点。

 

 

当然这边有很多例子可以去实现。

 

 4.现在开始创造一个key。python调接口需要一个ak。

 这边可以根据不同的场景去获得相对应的代码。

一般也就达芬奇2或者3用的最多吧。

model="text-davinci-003"
model="text-davinci-002"

5.配置python,将上图的代码复制到python上面就可以了。

pip install openai

 还有几个忘记了,之前看过博客说的,下次一定补上。

这边openai api是可以调通了。

但是想做一个python gui的可视化页面。看了官网支持好几个gui。最后我选择了单调的tkinter。知乎看了说pyqt生成的文件很大,我只想简单的玩一下哈哈哈。

 

python tkinter 看了别人的博客。我只会用。最初页面,就加了一个text多行文本输入,一个button按钮还有一个lable标签。

哈哈哈还做了一个简单的小逻辑。 

 

from tkinter import *import openaiopenai.api_key = 'your ak'
def button_event():content = question.get(1.0, "end")print(len(content))if len(content) == 1:answer['text'] = "怎么就没有问题呢"else:message = get_message(content)answer['text'] = messagereturn
def get_message(message):response = openai.Completion.create(model="text-davinci-003",prompt=message,temperature=0.8,top_p=1.0,frequency_penalty=0.5,presence_penalty=0.0,max_tokens=1000)return response.choices[0].text
# 创建窗口
main_window = Tk()
question = Text(main_window, height=6)
answer = Label(main_window, width=500, anchor=NW, wraplength=500)
main_window.title("又有新的问题了!!")
main_window.iconbitmap("640.jpeg")
main_window.geometry("500x500")
main_window.resizable()
question.insert('insert', '有问题吗?!')
question.pack()
B = Button(main_window, text="回答", command=button_event)
B.pack()
answer.pack()
# 消息循环
main_window.mainloop()

想起来了,这个ak先试用三个月,在之后就要收费,按请求次数收费。

算下来其实还是很便宜。现在免费使用,还是有点慢的。不知道收费之后能不能快点…… 

好了,回头好好整理一下,技术分享可以讲这个!

http://www.lryc.cn/news/9618.html

相关文章:

  • 服务网格领域的百花齐放,是否存在一个更优解?
  • Zynq 裸机 PS + PL 双网口实现之 lwip 库文件修改
  • 金三银四丨黑蛋老师带你剖析-CTF岗
  • Linux find命令
  • vue项目实现会议预约(包含某天的某个时间段和某月的某几天)
  • javacv桌面推送 通过推送和拉取udp组播视频流实现
  • 2022年直播电商成交额,更是达到了24816亿元的成交额
  • 【学习总结】2023寒假总结
  • 宝塔搭建实战php源码人才求职管理系统后台端thinkphp源码(一)
  • stk 根据六根数文件生成卫星轨迹(一)
  • 深度学习算法面试常问问题(一)
  • Spring 底层原理与解析 - 容器接口
  • Compose-Navigation简单案例上手
  • 855. 考场就座
  • k8s之ingress(二)
  • linux下监测串口数据
  • 【面试之闭包】前端面试那些事(2)三分钟深入理解闭包(附详解实例)
  • 深入浅出带你学习WebSphere中间件漏洞
  • 如何一眼分辨是C还是C++
  • CMake系列:正确使用多配置编译系统
  • PCB中的HDI板生产中的变化
  • 程序分析与神经网络后门
  • redis主从哨兵模式
  • Spring 系列之 MVC
  • 电子技术——分立CS和CE放大器的低频响应
  • 代码随想录【Day16】| 104. 二叉树的最大深度、111. 二叉树的最小深度、222. 完全二叉树的节点个数
  • 状态机图、通信图题
  • 分布式文件存储Minio学习入门
  • handler解析(4)-Message及Message回收机制
  • Linux使用定时任务监控java进程并拉起