基于ChatGPT+SpringBoot實現(xiàn)智能聊天AI機器人接口并上線至服務器的方法
?? ChatGPT是最近很熱門的AI智能聊天機器人
?? 本文使用SpringBoot+OpenAI的官方API接口,自己實現(xiàn)一個可以返回對話數(shù)據(jù)的接口并上線服務器
?? 用途方面相比于普通的聊天AI更加的廣泛,甚至可以幫助你改BUG,寫代碼?。?!
最終接口效果演示


ChatGPT介紹
ChatGPT是一款基于自然語言處理技術(shù)的聊天機器人。它使用受控語料庫,并使用最先進的深度學習技術(shù)來學習用戶的輸入,以便以最相似的方式回應。ChatGPT可以模擬真實的人類對話,并能夠更貼近用戶的需求,提供更有價值的服務。
SpringBoot介紹
Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應用開發(fā)領(lǐng)域(rapid application development)成為一個重要的先驅(qū)。
Spring Boot為Spring應用提供了一種快速的起步方式,可用來創(chuàng)建獨立的,生產(chǎn)級的基于Spring的應用程序。它提供了一種更快捷的方式來創(chuàng)建Spring應用,并且不需要任何XML配置。Spring Boot提供了可選擇的高級特性,如持久層技術(shù)和安全性,可以讓你快速構(gòu)建令人滿意的web應用程序和服務。
構(gòu)建SpringBoot項目
項目主要使用的maven依賴如下,通過Maven構(gòu)建項目即可
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.yopai</groupId>
<artifactId>openapi</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>openapi</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.21</version>
</dependency>Post請求解析
RestTemplate是Spring框架的一個用于訪問RESTful服務的客戶端庫,它提供了一組簡單的、可擴展的方法來訪問RESTful服務。它可以訪問HTTP服務,并以字符串、Java對象或多種格式的數(shù)據(jù)(如JSON)進行序列化和反序列化。RestTemplate支持多種HTTP方法,如GET、POST、PUT、DELETE等,可以用來訪問RESTful服務,并獲取服務器返回的結(jié)果。
public static String sendPost(String data) {
RestTemplate client = new RestTemplate();
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.add("Authorization","Bearer <YourAPI>");
httpHeaders.add("Content-Type", "application/json"); // 傳遞請求體時必須設(shè)置
// String requestJson = "{\n" +
// " \"model\": \"text-davinci-003\",\n" +
// " \"prompt\": \"你好\",\n" +
// " \"temperature\": 0, \n" +
// " \"max_tokens\": 2048\n" +
// "}";
String requestJson = String.format(
"{\n" +
" \"model\": \"text-davinci-003\",\n" +
" \"prompt\": \"%s\",\n" +
" \"temperature\": 0, \n" +
" \"max_tokens\": 2048\n" +
"}",data
);
HttpEntity<String> entity = new HttpEntity<String>(requestJson,httpHeaders);
ResponseEntity<String> response = client.exchange("https://api.openai.com/v1/completions", HttpMethod.POST, entity, String.class);
System.out.println(response.getBody());
JSONObject jsonObject = JSONObject.parseObject(response.getBody());
JSONArray choices = jsonObject.getJSONArray("choices");
String text = choices.getJSONObject(0).getString("text");
// Object o = jsonObject.get("\"choices\"");
return text;
}接口控制類
@PostMapping("gpt")
public JsonData get(@RequestBody Promat promat){
String text = HttpGPT.sendPost(promat.getData());
System.out.println(promat);
JsonData jsonData = JsonData.bulidSuccess(text);
return jsonData;
}打包發(fā)布接口到服務器
通過IDEA將項目進行打包后上傳到服務器,運行以下命令即可完成線上部署
java -jar :運行打包好的項目
nohup:讓項目在后臺一直運行
之后把LocalHost修改成服務器的公網(wǎng)IP即可

到此這篇關(guān)于基于ChatGPT+SpringBoot實現(xiàn)智能聊天AI機器人接口并上線至服務器的文章就介紹到這了,更多相關(guān)ChatGPT+SpringBoot打造智能聊天AI機器人接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
GsonFormat快速生成JSon實體類的實現(xiàn)
GsonFormat主要用于使用Gson庫將JSONObject格式的String?解析成實體,本文主要介紹了GsonFormat快速生成JSon實體類的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-05-05
MyBatis-Plus實現(xiàn)字段自動填充功能的示例
本文主要介紹了MyBatis-Plus實現(xiàn)字段自動填充功能的示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11

