的背景
2023年3月2日,开放了的API,无论是个人开发者,还是企业,都可以通过这个API来正式使用了。
很多人看不太懂这个新闻,感觉从2022年12月到2023年的3月大家都不已经在各种调戏了吗?怎么才开放API?
GPT-3是什么?
其实,在开放的API之前,大家使用的是一个叫GPT-3的模型,GPT-3的全称是: Pre- 3,即“生成式预训练模型第三代”。它的第一代是公司在2018年发布的,是基于谷歌2017年发布的模型打造的。所以GPT也可以称为: Pre- 。
公司从2018年开始,每年发布一代GPT,参数量分别是1.17亿、15亿和1750亿,训练的原始数据量也从第一代的5GB、第二代的40GB,提升到第三代的45TB。
对于这么大的模型,训练一次的成本据估计达到140万美元,甚至更多。
GPT-3和什么关系?
第三代GPT模型(GPT-3)包含了ada、、curie、等模型,这几个模型的名字也很有趣。
Ada是英国浪漫主义诗人拜伦的女儿,全名是: Ada King, of ,她是世界上第一位程序员,所以有许多与计算机技术相关的项目都以Ada命名。
是英国数学家 ,被誉为现代计算机之父。Ada与的关系非常好,曾经参与过的计算机设计,翻译了许多相关的资料。
Curie就是大家熟知的居里夫人,全名是:Marie Curie。
就是达芬奇。
这四个GPT-3模型所使用的训练数据的时间都是截至2019年10月,其中:ada模型速度最快、成本最低的,能够回答一些非常基本的问题;模型、curie模型也都很快,成本很低,问题回答质量比ada更高,模型则是其中最好的模型。
这几个GPT-3模型都支持用户拿自己的数据去训练。
那跟GPT-3有什么关系呢?
从名字就可以看出来,GPT-3是第三代生成式预训练模型,而则是用于会话任务(Chat)的生成式预训练模型。GPT-3是通用的模型,是专门为会话任务设计的,所以使用的数据量也少于GPT-3。前面介绍了GPT-3有1750亿参数,只有15亿参数。
因为一推出后非常火,所以大家都习惯使用“”这个名字来涵盖所有的模型。
GPT-3.5又是什么?
是专门设计用来完成会话任务的GPT模型,从技术升级的角度来看,还没有到第四代GPT模型,所以公司将其划到了GPT-3.5系列模型中。
在GPT-3.5的各个模型中,分别包含了Ada模型、模型、Curie模型、模型和Turbo模型。
根据的官方文档,Ada模型擅长解析文本、分类等任务;模型擅长分类任务、语义匹配任务;Curie模型擅长翻译、复杂分类、生成概要等任务;模型是最强大的模型,可以完成前面所有的任务,而且还能够更好的理解文本,解决逻辑问题,进行推理等等,所以模型也是这几个模型中最贵的一个。
除了上面这四个模型外,GPT-3.5模型中还有一个Turbo模型,Turbo这个词的词根是龙卷风、旋风,在汽车里面有涡轮增压器,通过废气加压来提升汽车的动力,所以Turbo就是一个增强型模型。
GPT-3.5的Turbo模型是和模型基本上一样的模型,针对会话任务进行了增强,而且在其他方面上的能力也与模型相当。
2023年3月2日,公司发布的就是GPT-3.5的Turbo模型,模型名称为:gpt-3.5-turbo。
而且,不仅模型能力更强,价格也更便宜了:每1000个token的价格为0.002美元。根据官方计算方法,1000个token相当于750个英文单词,0.002美元相当于0.0138元人民币,所以相当于每个英文单词的价格为:0.元人民币。1000个英文单词的价格为:0.0184元人民币,不到2分钱。
本文要介绍的,就是如何调用gpt-3.5-turbo模型,为了方便理解,就写成了如何调用模型,为了吸引眼球就加了一个“40行代码”作为文章前缀,因为调用这个模型确实太简单了。
为什么要用PHP来调用呢?主要原因还是PHP更适合拿来做成网页,比用要简单一些。
准备工作
公司在官网上提供了调用 API的curl命令:
curl https://api.openai.com/v1/chat/completions
-H "Authorization: Bearer $OPENAI_API_KEY"
-H "Content-Type: application/json"
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "What is the OpenAI mission?"}]
}'
网上有非常多的工具可以将这段代码直接转换成PHP代码:
以下是转换生成的PHP代码:
// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.openai.com/v1/chat/completions');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{n "model": "gpt-3.5-turbo",n "messages": [{"role": "user", "content": "What is the OpenAI mission?"}]n}");
$headers = array();
$headers[] = 'Authorization: _ENV["Bearer OPENAI_API_KEY"];
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
这段代码怎么用呢?
我们首先得有一个可以运行PHP代码的环境,这个可以观看以下视频,如何安装小皮面板:
运行代码
当PHP代码运行环境安装完成后,就可以在根目录下创建一个文件夹,然后把代码放进去。
我创建一个名为的文件夹,在里面创建一个index.php的文件,然后把代码放进去:
这里我隐去了我的 Key,大家需要自己想办法去注册。
如果直接运行这段代码,会报错:
需要稍微修改一下:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.openai.com/v1/chat/completions');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "What is the OpenAI mission?"}]
}");
$headers = array();
$headers[] = "Authorization: Bearer "."*******f";
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
$result = json_decode($result);
var_dump($result);
?>
我主要调整的是两点:
一个是加了这两行代码:
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
323AI导航网发布