楔子
ChatGPT 相信大家都用过,你觉得它给你的工作带来了多少帮助呢?目前我们使用 ChatGPT 的方式是通过浏览器访问 chat.openai.com,然后输入问题,就像下面这样。
图片
除了网页之外,ChatGPT 还提供了 API 接口,让我们可以在程序中访问 GPT 模型。需要注意的是,如果使用网页,那么 GPT 3.5 是免费的,GPT 4 则是一个月收费 20 美元。
但如果要通过 API 来访问 GPT 模型,那么不管什么版本都是收费的,至于费用多少则取决于 token 的数量。GPT 会对文本进行分词,切分后的结果就是一个个的 token,而 token 的数量决定了费用。
那么 Python 如何访问 GPT 模型呢?首先需要安装一个包,直接 pip install openai 即可。
然后登录 platform.openai.com/api-keys,创建一个 API-KEY,如果要通过接口访问,它是不可或缺的。
下面就可以通过 Python 来访问了,我们举例说明。
生成文本
我们可以给 GPT 一段话,让它以文本的形式生成回复内容。
然后解释一下 client.chat.completions.create 里面的参数。
messages
ChatGPT 是有记忆功能的,它在回答的时候会结合上下文。那么问题来了,如果是通过接口的话,怎么把这个上下文传递过去呢?
所以 messages 是一个列表,它里面可以接收多个消息,如果希望 GPT 拥有记忆功能,那么每一次都要将完整的对话传递过去,显然这会比较耗费 token。
举个例子,我们通过接口来模拟网页版 GPT。
执行程序,效果如下:
图片
由于每次都要将历史对话一起带过去,所以这个过程比较耗费 token。
model
然后是 model 参数,它表示 GPT 所使用的模型,支持如下种类。
一般选择 gpt-3.5-turbo 或 gpt-4-turbo-preview 即可。
stream
默认情况下,GPT 会将内容全部生成完毕,然后一次性返回。显然这在耗时比较长的时候,对用户不是很友好。如果希望像网页那样,能够将内容以流的形式返回,那么可以将该参数设置为 True。
如果 GPT 生成内容时耗时比较长,那么这种实时响应的方式会更友好。
n
GPT 回复内容的时候,可以让它同一时刻回复多个版本,然后我们选择一个满意的。具体返回多少个,取决于 n 的大小,默认为 1。
这里为了阅读方便,我手动对回复的内容进行了换行。以上就是参数 n 的作用,不过说实话,为了不浪费 token,我们一般都会使用默认值 1。
生成图像
再来看看如何生成图像。
效果如下:
图片
感觉不太像啊,头发不应该是蓝色的吗?
小结
以上就是 Python 调用 ChatGPT 的相关内容,当然还有很多其它功能,比如生成图像之后,如果觉得不满意,可以在原有图像的基础上继续编辑。有兴趣可以自己了解一下。
还没有评论,来说两句吧...