chatgpt api 代码解析 40行代码:使用PHP开发ChatGPT问答网页

默认分类3个月前发布 admin
4,005 0
ChatGPT国内版

的背景

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有什么关系呢?

chatgpt api 代码解析 40行代码:使用PHP开发ChatGPT问答网页

从名字就可以看出来,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代码:

chatgpt api 代码解析 40行代码:使用PHP开发ChatGPT问答网页

以下是转换生成的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导航网发布

© 版权声明
广告也精彩

相关文章

暂无评论

暂无评论...