1、獲取調用ChatGPT的key

登錄官網https://platform.openai/account/api-keysAPI生成一個key(請求token)

2、官方API請求示例查看

請求:

curl https://api.openai/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"model": "text-davinci-003", "prompt": "Say this is a test", "temperature": 0, "max_tokens": 7}'

響應:

{
    "id": "cmpl-GERzeJQ4lvqPk8SkZu4XMIuR",
    "object": "text_completion",
    "created": 1586839808,
    "model": "text-davinci:003",
    "choices": [
        {
            "text": "\n\nThis is indeed a test",
            "index": 0,
            "logprobs": null,
            "finish_reason": "length"
        }
    ],
    "usage": {
        "prompt_tokens": 5,        // 提問使用token數
        "completion_tokens": 7,    // 回答使用token數
        "total_tokens": 12         // 總計token數
    }
}

3、Java調用

    public static void main(String[] args) throws JsonProcessingException {
        ObjectMapper om=new ObjectMapper();
        List<String> str=new ArrayList<String>();
        str.add(" Human:");
        str.add(" AI:");
  
        SendChatGPTVO s=new SendChatGPTVO("text-davinci-003",
        "使用python写一个识别猫猫的程序的步骤",
        2048,0,1,0f,0.6f,str);
        
        RestTemplate restTemplate=new RestTemplate();
        HttpHeaders xheaders = new HttpHeaders();
        xheaders.setBearerAuth("sk-**********************");
        xheaders.setContentType(MediaType.APPLICATION_JSON);  
        String params = om.writeValueAsString(s);
        
        HttpEntity<String> requestEntity = new HttpEntity<String>(params,xheaders);
        
        JSONObject result = restTemplate.postForObject("https://api.openai/v1/completions", requestEntity, JSONObject.class);
        
        
        System.out.println("result:"+result);
    }

4、參數說明  

GPT3模型接口,模型名称为“text-davinci-003”,调用费用为0.02美元/1000tokens,折合下来差不多0.1元400~500字。这个字数包括问题和返回结果字数。

GPT3模型调用方式如下,输入主要有7个参数:

model:模型名称,text-davinci-003

prompt:问题或待补全内容,例如“how are you”。

temperature:控制结果随机性,0.0表示结果固定,随机性大可以设置为0.9。

max_tokens:最大返回字数(包括问题和答案),通常汉字占两个token。假设设置成100,如果prompt问题中有40个汉字,那么返回结果中最多包括10个汉字。

top_p:设置为1即可。

frequency_penalty:设置为0即可。

presence_penalty:设置为0即可。

更多推荐

Java 調用ChatGPT API實例(text-davinci-003)