15日凌晨,OpenAI发布了万众期待的GPT-4!新模型支持多模态,具备强大的识图能力,并且推理能力和回答准确性显著提高。在各种专业和学术基准测试上的表现都媲美甚至超过人类。难怪OpenAI CEO Sam Altman称GPT-4“是我们迄今为止功能最强大的模型!”

关于GPT-4的能力,我在发布当天就做了测试,具体结果请阅读《OpenAI 发布GPT-4——全网抢先体验》。
对开发者来说,GPT-4最激动人心的是API接口同步发布。目前需要申请才能访问。我第一时间加入了waitlist,今天获得了访问权限,本文将跟大家分享GPT-4 API接口的使用以及大家关心的价格分析。

GPT-4 API的接口和参数跟早前开放的GPT-3.5接口一致,模型名称为:
| 模型名称 | 描述 | 最大token数 | 训练数据 |
|---|---|---|---|
| gpt-4 | 比 GPT-3.5 模型更强大,能够执行更复杂的任务,并针对聊天场景进行了优化。 会不断迭代更新。 | 8,192 | 截至2021年6月 |
| gpt-4-0314 | gpt-4的2023年3月14日快照版本。此模型在接下来3个月内不会更新,有效期截止2023年6月14日。 | 8,192 | 截至2019年10月 |
| gpt-4-32k | 与 gpt-4 功能相同,但上下文长度是gpt-4 的4 倍。会不断迭代更新。 | 32,768 | 截至2021年6月 |
| gpt-4-32k-0314 | gpt-4-32k的2023年3月14日快照版本。此模型在接下来3个月内不会更新,有效期截止2023年6月14日。 | 32,768 | 截至2019年10月 |
由于还在beta阶段,GPT-4 API的调用有频次限制:
这个频次对功能测试和概念验证来说已经足够了。
如果使用ChatGPT Plus体验GPT-4,有4小时100条消息的限制。
GPT-4 API的定价策略与之前模型不同。在GPT-4之前,接口定价按照token数统一收费,不区分是prompt的token还是生成响应的token。而GPT-4将prompt token和生成响应token分开计价,价格如下:
这个价格相比 gpt-3.5-turbo 的 $0.002 / 1K tokens来说贵了至少15倍起。
由于GPT-4接口价格太贵,且prompt和生成响应分开收费,因此在大规模使用GPT-4 API之前,我们有必要对其价格进行细致的分析。
GPT+ 系列API最难评估的一点就是token数与单词(字数)的对应关系。因为我们能直观了解到的只有字数或单词数,而token数是tokenized后的标记数,我们无法直接准确的估计。好在接口会返回每次请求promot和生成响应的token数,我们可以通过统计手段大致获得一个token数和字数之间的对应关系。
我从短到长找了8篇文章输入GPT-4 API,为了结果稳定,模型我选择了稳定不更新的gpt-4–0314,然后根据接口返回统计prompt token数,结果如下:
| # | 字数 | token数 | 百分比 |
|---|---|---|---|
| 1 | 1,600 | 2,133 | 75.01% |
| 2 | 2,000 | 2,667 | 74.99% |
| 3 | 47,094 | 62,792 | 75.00% |
| 4 | 90,000 | 120,000 | 75.00% |
| 5 | 445,134 | 593,512 | 75.00% |
| 6 | 783,134 | 1,044,183 | 75.00% |
| 7 | 884,421 | 1,179,228 | 75.00% |
| 8 | 1,084,170 | 1,445,560 | 75.00% |
通过上面的测试结果,我们可以得到一个重要结论:
大约每750字(单词)消耗1000 token
我们首先横向比较一下几个模型的单价
| $0.06 | $0.03 | $0.002 | $0.02 | $0.002 | $0.0005 | $0.0004 | |
|---|---|---|---|---|---|---|---|
| gpt-4(completion) | gpt-4(prompt) | gpt-3.5-turbo | davinci | curie | babbage | ada | |
| gpt-4(completion) | 0 | 1 | 29 | 2 | 29 | 119 | 149 |
| gpt-4(prompt) | -0.5 | 0 | 14 | 0.5 | 14 | 59 | 74 |
从上表可以看到,gpt-4 prompt 比 gpt-3.5-turbo贵了14倍,gpt-4 completion 比 gpt-3.5-turbo贵了29倍!假设prompt和completion的字数为1:4(实际中completion往往比prompt要长),那么gpt-4接口的综合成本是gpt-3.5-turbo的27倍!
下面的表格更加直观地给出了各模型处理相应字数所需的花费:

从上表可见,gpt-3.5-turbo $20美元能处理750万字,而相同金额在gpt-4中只能处理30万字左右。
那么问题来了,是否值得花20多倍的成本去使用gpt-4?换句话说,gpt-4相对gpt-3.5-turbo的能力提升有没有20倍的效用?
这个问题的答案很大程度上依赖你的场景。如果是对正确性要求较高的场景(比如法律,教育等),那么GPT-4绝对是比GPT-3.5更好的选择。其他用例和场景我都建议进行深入测试,以确定增加的成本是否会带来比 ChatGPT API 对等的好处。
值得一提的是,gpt-4 模型的最大token数是gpt-3.5-turbo的2倍,对于长文本生成的场景,如果gpt-3.5-turbo最大4,096 token不够用,那么可以选择使用gpt-4。同时GPT-4还提供了32K版本,支持32,768 token,不过价格也更贵。
总之,ChatGPT API 和 GPT-4 API 之间的选择取决于项目的具体需求和约束。当你站在尖端技术的十字路口时,请认真考虑真正重要的因素:
最终,你的决定将证明你的远见和拥抱人工智能变革带来的领先优势。
我有用于控制用户任务的Rails5API项目,我有以下错误,但并非总是针对相同的Controller和路由。ActionController::RoutingError:uninitializedconstantApi::V1::ApiController我向您描述了一些我的项目,以更详细地解释错误。应用结构路线scopemodule:'api'donamespace:v1do#=>Loginroutesscopemodule:'login'domatch'login',to:'sessions#login',as:'login',via::postend#=>Teamroutessc
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
我正在使用Mandrill的RubyAPIGem并使用以下简单的测试模板:testastic按照Heroku指南中的示例,我有以下Ruby代码:require'mandrill'm=Mandrill::API.newrendered=m.templates.render'test-template',[{:header=>'someheadertext',:main_section=>'Themaincontentblock',:footer=>'asdf'}]mail(:to=>"JaysonLane",:subject=>"TestEmail")do|format|format.h
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
我正在尝试使用Ruby2.0.0和Rails4.0.0提供的API从imgur中提取图像。我已尝试按照Ruby2.0.0文档中列出的各种方式构建http请求,但均无济于事。代码如下:require'net/http'require'net/https'defimgurheaders={"Authorization"=>"Client-ID"+my_client_id}path="/3/gallery/image/#{img_id}.json"uri=URI("https://api.imgur.com"+path)request,data=Net::HTTP::Get.new(path
Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我的公司有一个巨大的数据库,该数据库接收来自多个来源的(许多)事件,用于监控和报告目的。到目前为止,数据中的每个新仪表板或图形都是一个新的Rails应用程序,在巨大的数据库中有额外的表,并且可以完全访问数据库内容。最近,有一个想法让外部(不是我们公司,而是姊妹公司)客户访问我们的数据,并且决定我们应该公开一个只读的RESTfulAPI来查询我们的数据。我的观点是-我们是否也应该为我们的自己
我读了"BingSearchAPI-QuickStart"但我不知道如何在Ruby中发出这个http请求(Weary)如何在Ruby中翻译“Stream_context_create()”?这是什么意思?"BingSearchAPI-QuickStart"我想使用RubySDK,但我发现那些已被弃用前(Rbing)https://github.com/mikedemers/rbing您知道Bing搜索API的最新包装器(仅限Web的结果)吗? 最佳答案 好吧,经过一个小时的挫折,我想出了一个办法来做到这一点。这段代码很糟糕,因为它是
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:AmazonAPIlibraryforPython?我正在寻找一个AmazonAPI,它可以让我:按书名或作者查找书籍显示书籍封面获取有关每本书的信息(价格、评级、评论数、格式、页数等)Python或Ruby库都可以(我只想要最容易使用的库)。有什么建议么?我知道在SO上还有其他一些关于此的帖子,但这些API似乎很快就过时了。[几个月前我尝试了几个建议的Ruby库,但无法让它们中的任何一个工作。]
很高兴看到google代码:google-api-ruby-client项目,因为这对我来说意味着Ruby人员可以使用GoogleAPI-s来完善代码。虽然我现在很困惑,因为给出的唯一示例使用Buzz,并且根据我的实验,Google翻译(v2)api的行为必须与google-api-ruby-client中的Buzz完全不同。.我对“Explorer”演示示例很感兴趣——但据我所知,它并不是一个探索器。它所做的只是调用一个Buzz服务,然后浏览它已经知道的关于Buzz服务的事情。对我来说,Explorer应该让您“发现”所公开的服务和方法/功能,而不一定已经知道它们。我很想听听使用这个