OpenAI开发系列(五):实现Jupyter本地环境下的OpenAI API调用

全文共2000余字,预计阅读时间约10分钟 | 满满干货,建议收藏!

本文目标:提供了在Jupyter本地环境中调用OpenAI API的详细方法,并对OpenAI官网结构构成做了具体的说明

image-20230810162205783

OpenAI作为本轮大语言模型技术进步的先驱,其系列大型模型在效果上一直保持着领先。其推出的各类模型如文本模型、对话模型、嵌入模型、编码模型、图文模型及语音模型,构建了全面而丰富的模型生态圈。

另外,OpenAI的大语言模型能够在线进行推理和微调的模型,与那些需要在本地部署的开源模型相比,其在硬件需求、操作难度以及维护成本上都有明显优势。在许多实际开发情景中,OpenAI的在线大模型成为了首选方案。

本文先从如何实现本地调用OpneAI API流程开始!

一、 官网结构组成

OpenAI官网一定是最权威的帮助文档。给出了各类模型详细的参数解释、应用范例,而且还提供了在线调用和测试模型参数的页面。同时由于需要根据实际调用API情况进行计费,因此查阅调用API计费规则、查阅账户余额以及及时充值,也是很有必要的!

OpenAI API官网地址

1.1 Documentation

image-20230717164853336

要重点关注:

对于大模型来说多轮对话的累积输入文本的最大数量是有限的,超出这个限制就会导致之前的文本被逐渐遗忘。在Documentation页面,需要清楚了解每个模型的MAX TOKENS,表示输入的最大文本限制。

image-20230717165131175

绝大多数模型的MAX TOKENS都是4096tokens,这类模型被称为4k模型,部分模型的MAX TOKENS都是16384tokens,这是一类最新更新的模型(6月13号更新的模型),且尾缀带有16k标志。

一个大概估算的规则是:4K个tokens约等于8000个单词

1.2 API reference

这个页面中详细讲解了各模型API的参数解释,是开发人员必不可少的说明手册

image-20230717165528130

1.3 Playground

Playground页面相当于是网页端的大模型调用应用,可以在这里直接选择不同类型模型、选择不同的参数、输入不同的提示测试模型输出结果,并且这个页面还可以查看网页端操作对应的代码,整体操作流程非常便捷,也非常适合初学者进行零代码的大模型功能测试。

image-20230717165719091

1.4 计费规则

OpenAI的在线大模型是通过个人API-Key在线验证的方式向OpenAI线上模型提交计算申请,并实时获取返回结果。因此,在实际调用OpenAI在线大模型会根据调用的不同模型、调用次数及输入输出文本数量进行计费,因此在使用时需要时刻关注费用支出情况。具体计费规则可以在Pricing页面查看

image-20230717170509137

image-20230717170258106

其中4K Model就表示MAX TOKENS=4096 tokens的模型,而16K模型则表示MAX TOKENS=16384 tokens的模型。

16K模型的费用是4K模型费用的两倍,其实也是因为16K模型需要有相比4K模型更大的“隐藏空间”容量,模型更加复杂,调用所需费用也更高。因此建议若非进行超大规模的多轮对话,应当尽量选择4K模型。

1.5 调用限制

在实际调用API的过程中,出于对计算资源的保护,OpenAI还限制了各模型API的每分钟请求最大次数(RPM:requests-per-minute)和每分钟Token通信量最大值(TPM:tokens-per-minute),这些限制可以在个人中心的Rate limits页面中进行查看

image-20230717170646665

如果希望放宽限制,则可以填写申请表格,向官方申请提高限制上限。

申请地址

1.6 账户余额

需要时刻关注账户余额及目前使用金额。可以在个人中心的Usage页面查看当前账户余额,以及过去一段时间的账户消费情况

image-20230717170917465

对于每个注册的新账户,系统会默认赠送5刀的使用额度,并保留4个月左右的使用期限。

如果是 商用开发的话,可以在Billing–>Usage limits页面设置每个月最大消费总金额,默认为120刀,若当月API使用金额超过该金额限制,则OpenAI会停止对该API Key调用的响应。该设置可以有效防止由于API滥用导致费用超支

image-20230717171154796

1

其中soft limit指的是当API使用支出超过某个预设金额时,会发送邮件进行提醒。

1.7 账户充值

OpenAI账户充值方法和ChatGPT升级PLUS时的充值方法类似,都是先绑定银行卡然后再进行扣费。在Billing–>Payment methods页面绑定可以用于支付的银行卡即可。OpenAI会根据每个月使用消费金额进行扣费,如果不知道如何付费的,看文末内容

2

二、在Jupyter中本地调用OpenAI API

2.1 环境配置

先配置环境变量,前一篇文章已经讲过了,看这篇文章的前三节:

OpenAI 开发系列(四):掌握OpenAI API调用方法

注意,配置完环境变量后需要重启电脑,使环境变量生效后,即可启动Jupyter测试能否在Jupyter环境下调用OpenAI大模型API。

对于国内用户,是无法直接访问OpenAI的,需要让Jupyter在代理环境下启动,即需要令Jupyter可以通过代理来访问网络。具体设置方法如下:

  • Step 1:启动魔法并设置全局代理模型

以我自己用的魔法举例,代理端口如下:

image-20230717172418370

大多数代理都是借助本地回环进行代理,即127.0.0.1,因此当前魔法的代理地址和端口为:127.0.0.1:15732。

  • Step 2: 配置Jupyter代理

让Jupyter通过代理方式访问网络,最简单的方法就是利用cmd命令行启动jupyter

image-20230717172758128

然后在命令行中启动Jupyter,并且每次启动前输入代理环境设置,即按照如下命令顺序启动Jupyter:

image-20230717172902758

如果报错:

image-20230717173008620

解决办法:

新版Anaconda安装时并不会自动添加环境变量,打开环境变量配置页面,然后点击系统变量内的Path并点击编辑:

image-20230717173511590

然后添加C:\ProgramData\anaconda3\condabin和C:\ProgramData\anaconda3\Scripts两个变量(这两个变量的地址需要是自己安装Anaconda时的安装位置)

image-20230717173636341

再次测试:

image-20230717173836594

  

2.2 调用测试

顺利启动Jupyter之后,即可测试能否顺利调用OpenAI大模型,测试代码如下:

completions_reponse = openai.Completion.create(
  model="text-davinci-003",
  prompt="this message is a test",
)
print(completions_reponse)

结果如下:成功

image-20230810160159987

三、总结

本文内容不多,主要是对OpenAI的官网构成做了说明,并介绍了如何在本地Jupyter环境下调用OpenAI的在线大模型,需要注意的两点:

  • 如果配置了OpenAI API Keys的环境变量,需要重启电脑后才会生效
  • 研发过程中需要全程开启魔法

最后,感谢您阅读这篇文章!如果您觉得有所收获,别忘了点赞、收藏并关注我,这是我持续创作的动力。您有任何问题或建议,都可以在评论区留言,我会尽力回答并接受您的反馈。如果您希望了解某个特定主题,也欢迎告诉我,我会乐于创作与之相关的文章。谢谢您的支持,期待与您共同成长!

猜你喜欢

转载自blog.csdn.net/Lvbaby_/article/details/131775615