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

openai的注册就很简单。

OpenAI

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

openai库支持的python版本 openapi ui_python

 

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

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

openai库支持的python版本 openapi ui_开发语言_02

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

openai库支持的python版本 openapi ui_开发语言_03

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

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

openai库支持的python版本 openapi ui_ci_04

 

openai库支持的python版本 openapi ui_开发语言_05

 

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

openai库支持的python版本 openapi ui_python_06

 

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

 

openai库支持的python版本 openapi ui_开发语言_07

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

openai库支持的python版本 openapi ui_验证码_08

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

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

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

pip install openai

openai库支持的python版本 openapi ui_python_09

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

这边openai api是可以调通了。

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

openai库支持的python版本 openapi ui_开发语言_10

 

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

openai库支持的python版本 openapi ui_验证码_11

openai库支持的python版本 openapi ui_ci_12

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

openai库支持的python版本 openapi ui_验证码_13

 

from tkinter import *

import openai

openai.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'] = message
    return
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先试用三个月,在之后就要收费,按请求次数收费。

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

openai库支持的python版本 openapi ui_开发语言_14

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