登录    注册      
    
  

News Message

ChatGPT API 文档



ChatGPT API 文档



准备工作

ChatGPT API 接入需要如下条件。

  1. 已成功注册 OpenAI 的账号。
  2. 创建 API KEY,这个 API KEY 是用于 HTTP 请求身份验证的,可以创建多个。如下图点击“Create new secret key“,注意这个创建之后需要马上复制好保存,关闭弹框之后就看不到了。

image.png

  1. 官方 API 文档链接 api-reference
  2. 注意 API 调用是收费的,但是 OpenAI 已经为我们免费提供了18美元的用量,足够大家放心使用。

image.png

补全接口示例

该接口功能较多,支持最常用的问答功能。

  1. 请求方式,Post
  2. url,api.openai.com/v1/completi…
  3. 请求体 (json)。
{
  "model": "text-davinci-003",
  "prompt": "Say this is a test",
  "max_tokens": 7,
  "temperature": 0,
  "top_p": 1,
  "n": 1,
  "stream": false
}
复制代码
  1. 接口文档,platform.openai.com/docs/api-re…

请求参数解析

字段说明
model可选参数。语言模型,这里选择的是text-davinci-003
prompt必选参数。即用户的输入。
max_tokens可选参数,默认值为 16。最大分词数,会影响返回结果的长度。
temperature可选参数,默认值为 1,取值 0-2。该值越大每次返回的结果越随机,即相似度越小。
top_p可选参数,与temperature类似。
n可选参数,默认值为 1。表示对每条prompt生成多少条结果。
stream可选参数,默认值为false。表示是否回流部分结果。

请求示例

本文使用OkHttp作为网络请求框架,Moshi作为序列/反序列化框架。编写单元测试对该接口进行请求,代码如下。

  1. OkHttp 的初始化。
private final OkHttpClient okHttpClient = new OkHttpClient.Builder()
        .connectTimeout(10, TimeUnit.SECONDS)
        .writeTimeout(10, TimeUnit.SECONDS)
        .readTimeout(30, TimeUnit.SECONDS)
        .callTimeout(60, TimeUnit.SECONDS)
        .build();
复制代码
  1. 请求实体类。
private static class CompletionRequest {
    private String model = "text-davinci-003";
    private String prompt;
    private Integer max_tokens = 256;
    private float temperature = 0.5f;
    private Integer top_p = 1;
    private Integer n = 1;
    private Boolean stream = false;
    private Boolean logprobs;
    private String stop;
}
复制代码
  1. 请求方法。

使用OkHttp发送请求。需注意所有的 Post 请求需要添加头字段Authorization,值为Bearer YOUR_API_KEY来验证身份。

public void completion(String prompt) throws IOException {
    CompletionRequest completionRequest = new CompletionRequest();
    completionRequest.setPrompt(prompt);

    String reqJson = moshi.adapter(CompletionRequest.class).toJson(completionRequest);
    System.out.println("reqJson: " + reqJson);
    Request request = new Request.Builder()
            .url("https://api.openai.com/v1/completions")
            // 将 API_KEY 替换成你自己的 API_KEY
            .header("Authorization", "Bearer " + API_KEY)
            .post(RequestBody.create(MEDIA_TYPE_JSON, reqJson))
            .build();

    try (Response response = okHttpClient.newCall(request).execute()) {
        if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
        System.out.println(response.body().string());
    }
}
复制代码
  1. completion()测试方法中调用上面的completion(String prompt)方法
@Test
public void completion() {
    try {
        chatGPT.completion("你能背诵多少位圆周率");
    } catch (IOException e) {
        e.printStackTrace();
    }
}
复制代码
  1. 查看请求结果
{
  "id": "cmpl-6j9PhjAom9GyxBNCVacvckcVNKVZg",
  "object": "text_completion",
  "created": 1676218965,
  "model": "text-davinci-003",
  "choices": [
    {
      "text": "?\n\n我可以背诵50位圆周率:3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679。",
      "index": 0,
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 21,
    "completion_tokens": 73,
    "total_tokens": 94
  }
}
复制代码

总结

通过上面一个例子,相信大家已经学会了如何将 ChatGPT API 接入到自己的应用了。OpenAI 还提供了其他有用的接口,这里就不一个一个说明了,大家可以前往官网自行查看文档。




Share Http URL:  http://www.wittx.cn/get_news_message.do?new_id=1151

wittx




请输入评论





























Best Last Month

PLC技术简要概述

PLC技术简要概述

Information industry

by wittx


deep learning 优化函数

deep learning 优化函数

Computer software and hardware

by wittx


区块链(比特币、数字货币)概念、原理、技术和应用



顺丰7月速运业务营收同比增36.25%

顺丰7月速运业务营收同比增36.25%

Information industry

by wittx


ChatGPT GPT-4 技术原理

ChatGPT GPT-4 技术原理

Information industry

by wittx


SDG,ADAM,LookAhead,Lion优化器

SDG,ADAM,LookAhead,Lion优化器

Information industry

by wittx


氧气对细胞活性的影响

氧气对细胞活性的影响

Information industry

by wittx


抗病毒综合说明

抗病毒综合说明

Information industry

by wittx


[Evolutionary Algorithm] 进化算法简

[Evolutionary Algorithm] 进化算法简

Information industry

by show


欧洲主要股指全线收涨 法国股市涨2.41