欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線至服務(wù)器的方法

 更新時(shí)間:2023年02月16日 09:50:17   作者:大數(shù)據(jù)小禪  
ChatGPT是一款基于自然語(yǔ)言處理技術(shù)的聊天機(jī)器人,ChatGPT可以模擬真實(shí)的人類對(duì)話,并能夠更貼近用戶的需求,提供更有價(jià)值的服務(wù),這篇文章主要介紹了基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線至服務(wù)器,需要的朋友可以參考下

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

最終接口效果演示

ChatGPT介紹

ChatGPT是一款基于自然語(yǔ)言處理技術(shù)的聊天機(jī)器人。它使用受控語(yǔ)料庫(kù),并使用最先進(jìn)的深度學(xué)習(xí)技術(shù)來學(xué)習(xí)用戶的輸入,以便以最相似的方式回應(yīng)。ChatGPT可以模擬真實(shí)的人類對(duì)話,并能夠更貼近用戶的需求,提供更有價(jià)值的服務(wù)。

SpringBoot介紹

Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成為一個(gè)重要的先驅(qū)。

Spring Boot為Spring應(yīng)用提供了一種快速的起步方式,可用來創(chuàng)建獨(dú)立的,生產(chǎn)級(jí)的基于Spring的應(yīng)用程序。它提供了一種更快捷的方式來創(chuàng)建Spring應(yīng)用,并且不需要任何XML配置。Spring Boot提供了可選擇的高級(jí)特性,如持久層技術(shù)和安全性,可以讓你快速構(gòu)建令人滿意的web應(yīng)用程序和服務(wù)。

構(gòu)建SpringBoot項(xiàng)目

項(xiàng)目主要使用的maven依賴如下,通過Maven構(gòu)建項(xiàng)目即可

<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請(qǐng)求解析

RestTemplate是Spring框架的一個(gè)用于訪問RESTful服務(wù)的客戶端庫(kù),它提供了一組簡(jiǎn)單的、可擴(kuò)展的方法來訪問RESTful服務(wù)。它可以訪問HTTP服務(wù),并以字符串、Java對(duì)象或多種格式的數(shù)據(jù)(如JSON)進(jìn)行序列化和反序列化。RestTemplate支持多種HTTP方法,如GET、POST、PUT、DELETE等,可以用來訪問RESTful服務(wù),并獲取服務(wù)器返回的結(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"); // 傳遞請(qǐng)求體時(shí)必須設(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ā)布接口到服務(wù)器

通過IDEA將項(xiàng)目進(jìn)行打包后上傳到服務(wù)器,運(yùn)行以下命令即可完成線上部署
java -jar :運(yùn)行打包好的項(xiàng)目
nohup:讓項(xiàng)目在后臺(tái)一直運(yùn)行
之后把LocalHost修改成服務(wù)器的公網(wǎng)IP即可

到此這篇關(guān)于基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線至服務(wù)器的文章就介紹到這了,更多相關(guān)ChatGPT+SpringBoot打造智能聊天AI機(jī)器人接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 多jdk環(huán)境下指定springboot外部配置文件詳解

    多jdk環(huán)境下指定springboot外部配置文件詳解

    這篇文章主要為大家介紹了多jdk環(huán)境下指定springboot外部配置文件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 詳解shrio的認(rèn)證(登錄)過程

    詳解shrio的認(rèn)證(登錄)過程

    這篇文章主要介紹了shrio的認(rèn)證(登錄)過程,幫助大家更好的理解和使用shrio框架,感興趣的朋友可以了解下
    2021-02-02
  • IDEA:Git stash 暫存分支修改的實(shí)現(xiàn)代碼

    IDEA:Git stash 暫存分支修改的實(shí)現(xiàn)代碼

    這篇文章主要介紹了IDEA:Git stash 暫存分支修改的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Java多線程之JUC(java.util.concurrent)的常見類(多線程編程常用類)

    Java多線程之JUC(java.util.concurrent)的常見類(多線程編程常用類)

    這篇文章主要給大家介紹了關(guān)于Java多線程之JUC(java.util.concurrent)的常見類(多線程編程常用類)的相關(guān)資料,Java中的JUC(java.util.concurrent)包提供了一些并發(fā)編程中常用的類,這些類可以幫助我們更方便地實(shí)現(xiàn)多線程編程,需要的朋友可以參考下
    2024-02-02
  • Can''t use Subversion command line client:svn 報(bào)錯(cuò)處理

    Can''t use Subversion command line client:svn 報(bào)錯(cuò)處理

    這篇文章主要介紹了Can't use Subversion command line client:svn 報(bào)錯(cuò)處理的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • JFreeChart簡(jiǎn)單實(shí)現(xiàn)光滑曲線繪制

    JFreeChart簡(jiǎn)單實(shí)現(xiàn)光滑曲線繪制

    這篇文章主要為大家詳細(xì)介紹了JFreeChart簡(jiǎn)單實(shí)現(xiàn)光滑曲線的繪制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 淺談Java中replace與replaceAll區(qū)別

    淺談Java中replace與replaceAll區(qū)別

    這篇文章主要介紹了Java中replace與replaceAll區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • JWT全面解讀和詳細(xì)使用步驟

    JWT全面解讀和詳細(xì)使用步驟

    這篇文章全面解讀了JWT規(guī)范和詳細(xì)使用步驟,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • 5分鐘讓你快速掌握java8 stream常用開發(fā)技巧

    5分鐘讓你快速掌握java8 stream常用開發(fā)技巧

    這篇文章主要給大家介紹了關(guān)于java8 stream常用開發(fā)技巧的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java中的異常Exception與處理方式詳解

    Java中的異常Exception與處理方式詳解

    這篇文章主要介紹了Java中的異常Exception與處理方式詳解, Java語(yǔ)言中,將程序執(zhí)行中發(fā)生的不正常情況稱為"異常"(開發(fā)過程中的語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤不是異常),需要的朋友可以參考下
    2024-01-01

最新評(píng)論