前言:ChatGPT因为国内的各种原因,官网目前已经提高了原生IP的访问门槛。
现状
应该有很多人和我一样,之前能在官网直接使用ChatGPT,现在因为节点IP不够纯正而被限制访问,不过好在官网提供的API接口是正常使用的,所以曲线救国思路就是:
- 申请官网API keys
-
查看官网实例调用ChatGPT
-
API调用额度查看
申请API keys
前文:ChatGPT注册使用系列一文中,注册好账号后,在个人页创建自己的API keys
官网支持语言一览
官网中可以看到ChatGPT已经支持很多语言接入了。
调用费用
程序接入到 ChatGPT,调用接口要收费的。
不过新注册的账号,前3个月免费使用,总消费额度不超过18美元。
我的账号是到2023年4月1日,这期间只要调用费用不超过18美元相当于是免费使用
官网实例接入
以上准备工作及注意事项做好之后,我们就可以开始接入ChatGPT了。
下面是官网给出的调用例子(只是其中一个使用场景)
curl https://api.openai.com/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"model": "text-davinci-003", "prompt": "中国的首都是什么地方?", "temperature": 0, "max_tokens": 7}'
重要参数解释:
- model:接入模型
OpenAI API提供了一系列具有不同功能和价格点的模型,其中,GPT-3是最为智能的模型,也是收费最高的,后面代码中我们将使用其中的text-davinci-003。
使用场景
官网给我们列出来很多使用场景
代码实现
官网有大约49种场景。代码中,我们以Answers(问答场景) 为例,只要点场景图标,就可以跳到该场景查看对应参数调用实例了。具体如下:
postman调用测试
可以在github中下载对应汉化版本的 postman,参考相应教程
- 选择请求方式,填入接口地址,添加自己账号创建的Token
- 请求头中添加Content-Type类型为json
- 拼接json格式的入参
- 调用成功
Java代码调用
- IDEA新建一个Maven项目:ChatGPT
- POM添加Hutool依赖,使用Hutool工具发送http post请求,json对象封装等等。
import cn.hutool.http.*;
import cn.hutool.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class ChatGptDemo {
public static void main(String[] args) {
Map<String,String> headers = new HashMap<String,String>();
headers.put("Content-Type","application/json;charset=UTF-8");
JSONObject json = new JSONObject();
//选择模型
json.set("model","text-davinci-003");
//添加我们需要输入的内容
json.set("prompt","中国的首都在哪里?");
json.set("temperature",0.9);
json.set("max_tokens",2048);
json.set("top_p",1);
json.set("frequency_penalty",0.0);
json.set("presence_penalty",0.6);
HttpResponse response = HttpRequest.post("https://api.openai.com/v1/completions")
.headerMap(headers, false)
.bearerAuth("API keys")
.body(String.valueOf(json))
.timeout(5 * 60 * 1000)
.execute();
System.out.println(response.body());
}
}
调用返回结果:
使用场景有很多,具体需求可以在官网实例中找到自己感兴趣的场景学习研究。目前Github上有很多优秀的基于ChatGPT二次开发的封装的项目,可以多多试验。
– 盘点近期非常火热的ChatGPT开源项目
我也根据一个开源小项目搭建了一个网页版ChatGPT
https://github.com/slippersheepig/chatgpt-web
PS:18美元的免费额度,大概能回答54000000字。每天限制调用200次