基于ChatGPT+SpringBoot實現智能聊天AI機器人接口并上線至服務器的方法
?? ChatGPT是最近很熱門的AI智能聊天機器人
?? 本文使用SpringBoot+OpenAI的官方API接口,自己實現一個可以返回對話數據的接口并上線服務器
?? 用途方面相比于普通的聊天AI更加的廣泛,甚至可以幫助你改BUG,寫代碼!??!
最終接口效果演示
ChatGPT介紹
ChatGPT是一款基于自然語言處理技術的聊天機器人。它使用受控語料庫,并使用最先進的深度學習技術來學習用戶的輸入,以便以最相似的方式回應。ChatGPT可以模擬真實的人類對話,并能夠更貼近用戶的需求,提供更有價值的服務。
SpringBoot介紹
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應用開發(fā)領域(rapid application development)成為一個重要的先驅。
Spring Boot為Spring應用提供了一種快速的起步方式,可用來創(chuàng)建獨立的,生產級的基于Spring的應用程序。它提供了一種更快捷的方式來創(chuàng)建Spring應用,并且不需要任何XML配置。Spring Boot提供了可選擇的高級特性,如持久層技術和安全性,可以讓你快速構建令人滿意的web應用程序和服務。
構建SpringBoot項目
項目主要使用的maven依賴如下,通過Maven構建項目即可
<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對象或多種格式的數據(如JSON)進行序列化和反序列化。RestTemplate支持多種HTTP方法,如GET、POST、PUT、DELETE等,可以用來訪問RESTful服務,并獲取服務器返回的結果。
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"); // 傳遞請求體時必須設置 // 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修改成服務器的公網IP即可
到此這篇關于基于ChatGPT+SpringBoot實現智能聊天AI機器人接口并上線至服務器的文章就介紹到這了,更多相關ChatGPT+SpringBoot打造智能聊天AI機器人接口內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
多jdk環(huán)境下指定springboot外部配置文件詳解
這篇文章主要為大家介紹了多jdk環(huán)境下指定springboot外部配置文件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03Java多線程之JUC(java.util.concurrent)的常見類(多線程編程常用類)
這篇文章主要給大家介紹了關于Java多線程之JUC(java.util.concurrent)的常見類(多線程編程常用類)的相關資料,Java中的JUC(java.util.concurrent)包提供了一些并發(fā)編程中常用的類,這些類可以幫助我們更方便地實現多線程編程,需要的朋友可以參考下2024-02-02Can''t use Subversion command line client:svn 報錯處理
這篇文章主要介紹了Can't use Subversion command line client:svn 報錯處理的相關資料,需要的朋友可以參考下2016-09-09淺談Java中replace與replaceAll區(qū)別
這篇文章主要介紹了Java中replace與replaceAll區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-035分鐘讓你快速掌握java8 stream常用開發(fā)技巧
這篇文章主要給大家介紹了關于java8 stream常用開發(fā)技巧的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12