1.什么是chatGPT
ChatGPT是美國人工智能研究實驗室OpenAI新推出的一種人工智能技術(shù)驅(qū)動的自然語言處理工具,使用了Transformer神經(jīng)網(wǎng)絡(luò)架構(gòu),也是GPT-3.5架構(gòu),這是一種用于處理序列數(shù)據(jù)的模型,擁有語言理解和文本生成能力,尤其是它會通過連接大量的語料庫來訓(xùn)練模型,這些語料庫包含了真實世界中的對話,使得ChatGPT具備上知天文下知地理,還能根據(jù)聊天的上下文進行互動的能力,做到與真正人類幾乎無異的聊天場景進行交流。ChatGPT不單是聊天機器人,還能進行撰寫郵件、視頻腳本、文案、翻譯、代碼等任務(wù)。
2.為什么最近chatGPT這么火
首先,它是由OpenAI推出的一種大型語言模型,在許多領(lǐng)域都有著出色的表現(xiàn)。其次,ChatGPT具有高度的人工智能技術(shù),可以生成語言文本,回答問題,進行對話,等等。這些功能為許多公司和組織帶來了很多便利,因此受到了廣泛的應(yīng)用。此外,ChatGPT的訓(xùn)練數(shù)據(jù)龐大,訓(xùn)練得到的模型具有很高的準(zhǔn)確性和可靠性。這些優(yōu)秀的性能使得ChatGPT在許多領(lǐng)域都有著廣泛的應(yīng)用,成為人工智能領(lǐng)域中的一顆新星。
3.如何接入chatGPT
chatGPT在中國地區(qū)并沒有服務(wù)器,所以想要接入chatGPT需要用自己小伙伴軟件進行連接,筆者這里選擇了網(wǎng)上的第三方用clash進行了連接,為了更好的連接外網(wǎng),這邊選擇了美國的節(jié)點
網(wǎng)絡(luò)是通了,現(xiàn)在還需要一個openApi的賬號
openApi 登陸地址 https://openai.com/api/
注冊賬號,需要一個郵箱,qq郵箱和163郵箱都可以(注意事項,這里的郵件是外網(wǎng)發(fā)的,所以國內(nèi)的郵箱收到的比較慢,所以需要一些時間等待)這時候你會收到一封openApi發(fā)給你的郵件,你會收到一封激活賬號的郵件
你就可以點擊激活賬號,激活后你還需要一個外國的手機號碼去接收短信
我這里使用的是https://sms-activate.org/ 網(wǎng)上的虛擬手機號碼去接收驗證碼,選擇openApi 然后選擇美國的,因為我試過印度和印度尼西亞都沒有收到短信。在規(guī)定的時間內(nèi)可以免費切換
拿到短信驗證碼后就可以登錄了找到自己的apikey,一個類型token的東西,這里openAi免費給了18美元,能使用900次左右的調(diào)用次數(shù),所以給我們學(xué)習(xí)是夠用的
獲取到apikey,然后查看他的官方文檔,就可以使用調(diào)用了,官方文檔分為不同的場景,官方文檔地址https://beta.openai.com/examples
然后就通過postman調(diào)用驗證
最后接入java程序
package com.bestpay.controller;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.bestpay.entity.Demo;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* @author lyf
*/
@RestController
@RequestMapping("/demo")
public class DemoController {
@RequestMapping("/openAPi")
public Demo demo(@RequestBody Demo demo) {
Map<String,String> headers = new HashMap<String,String>();
headers.put("Content-Type","application/json;charset=UTF-8");
JSONObject json = new JSONObject();
//選擇模型
json.put("model","text-davinci-003");
//添加我們需要輸入的內(nèi)容
json.put("prompt",demo.getText());
//情緒值
json.put("temperature",0.9);
json.put("max_tokens",2048);
//相似度
json.put("top_p",1);
json.put("frequency_penalty",0.0);
json.put("presence_penalty",0.6);
HttpResponse response = HttpRequest.post("https://api.openai.com/v1/completions")
.headerMap(headers, false)
.bearerAuth("自己的key")
.body(String.valueOf(json))
.timeout(5 * 60 * 1000)
.execute();
String body = response.body();
JSONObject jsonObject = JSONObject.fromObject(body);
Object choices = jsonObject.get("choices");
JSONArray jsonArray = JSONArray.fromObject(choices);
Object text = JSONObject.fromObject(jsonArray.get(0)).get("text");
Demo demo1 = new Demo();
demo1.setText(text.toString());
return demo1;
}
}
通過postman測試,調(diào)用成功