亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java調(diào)用ChatGPT的實現(xiàn)代碼

 更新時間:2023年02月18日 14:13:08   作者:mikey桑  
這篇文章主要介紹了Java調(diào)用ChatGPT的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

Java調(diào)用ChatGPT的小插件

1. ChatGPT賬號準(zhǔn)備

很多博文有介紹怎么獲取賬號,具體的可自行搜索。
準(zhǔn)備好ChatGPT帳號之后打開openai的官網(wǎng)去創(chuàng)建API KEYS,鏈接:https://platform.openai.com/account/api-keys。
注意:這里的API KEYS創(chuàng)建好以后一定要妥善保存,創(chuàng)建以后,第二次就無法再查看了,想要再看,只能刪除了API KEYS然后重新創(chuàng)建。

這里的API KEYS妥善保管后面會用到。

2. 配置階段

2.1 依賴引入

pom.xml中引入依賴

        <dependency>
            <groupId>io.github.asleepyfish</groupId>
            <artifactId>chatgpt</artifactId>
            <version>1.0.3</version>
        </dependency>

2.2 配置application.yml文件

application.yml文件中配置chatgpt相關(guān)參數(shù)

chatgpt:
  model: text-davinci-003
  token: sk-xxxxxxxxxxxxxxxxxxx
  retries: 10

這里的model是選擇chatgpt哪個模型,默認填好的是最優(yōu)的模型了,token就是上面申請的API KEYS,retries指的是當(dāng)chatgpt第一次請求回答失敗時,重新請求的次數(shù)(增加該參數(shù)的原因是因為大量訪問的原因,在某一個時刻,chatgpt服務(wù)將處于無法訪問的情況)

2.3 @EnableChatGPT注解

啟動類上加入@EnableChatGPT注解則將ChatGPT服務(wù)注入到Spring中。

在這里插入圖片描述

3. 使用

提供了工具類OpenAiUtils,里面提供了相關(guān)方法進行調(diào)用。
其中最簡單的使用方法是:

OpenAiUtils.createCompletion(prompt);

入?yún)?code>prompt即輸入的問題的字符串。

還提供一個通用的靜態(tài)方法是

public static List<String> createCompletion(CompletionRequest completionRequest) {...}

入?yún)?code>CompletionRequest 里包含模型的一些可調(diào)參數(shù)。

OpenAiUtils類中還提供了多個可供選擇的靜態(tài)方法,可以自行查看。

上述方法的返回參數(shù)是一個list,是因為調(diào)整參數(shù)返回答案n可以一次性返回多條不同的解答(nCompletionRequest類中一個參數(shù))。

4. 測試

demo的Git地址:

https://github.com/asleepyfish/chatgpt-demo

測試代碼:

@SpringBootTest
public class SpringTest {
    @Test
    public void chatGPTTest() {
        OpenAiUtils.createCompletion("use c++ write QuickSort").forEach(System.out::println);
    }
}

ChatGPT輸出結(jié)果:

#include <iostream>?
using namespace std;?

// A utility function to swap two elements?
void swap(int* a, int* b)?
{?
?? ?int t = *a;?
?? ?*a = *b;?
?? ?*b = t;?
}?

/* This function takes last element as pivot, places?
the pivot element at its correct position in sorted?
array, and places all smaller (smaller than pivot)?
to left of pivot and all greater elements to right?
of pivot */
int partition (int arr[], int low, int high)?
{?
?? ?int pivot = arr[high]; // pivot?
?? ?int i = (low - 1); // Index of smaller element?

?? ?for (int j = low; j <= high - 1; j++)?
?? ?{?
?? ??? ?// If current element is smaller than the pivot?
?? ??? ?if (arr[j] < pivot)?
?? ??? ?{?
?? ??? ??? ?i++; // increment index of smaller element?
?? ??? ??? ?swap(&arr[i], &arr[j]);?
?? ??? ?}?
?? ?}?
?? ?swap(&arr[i + 1], &arr[high]);?
?? ?return (i + 1);?
}?

/* The main function that implements QuickSort?
arr[] --> Array to be sorted,?
low --> Starting index,?
high --> Ending index */
void quickSort(int arr[], int low, int high)?
{?
?? ?if (low < high)?
?? ?{?
?? ??? ?/* pi is partitioning index, arr[p] is now?
?? ??? ?at right place */
?? ??? ?int pi = partition(arr, low, high);?

?? ??? ?// Separately sort elements before?
?? ??? ?// partition and after partition?
?? ??? ?quickSort(arr, low, pi - 1);?
?? ??? ?quickSort(arr, pi + 1, high);?
?? ?}?
}?

/* Function to print an array */
void printArray(int arr[], int size)?
{?
?? ?int i;?
?? ?for (i = 0; i < size; i++)?
?? ??? ?cout << arr[i] << " ";?
?? ?cout << endl;?
}?

// Driver Code?
int main()?
{?
?? ?int arr[] = {10, 7, 8, 9, 1, 5};?
?? ?int n = sizeof(arr) / sizeof(arr[0]);?
?? ?quickSort(arr, 0, n - 1);?
?? ?cout << "Sorted array: " << endl;?
?? ?printArray(arr, n);?
?? ?return 0;?
}

到此這篇關(guān)于Java調(diào)用ChatGPT的實現(xiàn)代碼的文章就介紹到這了,更多相關(guān)Java調(diào)用ChatGPT內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java CompletableFuture的使用詳解

    Java CompletableFuture的使用詳解

    這篇文章主要介紹了Java CompletableFuture的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • 子線程任務(wù)發(fā)生異常時主線程事務(wù)回滾示例過程

    子線程任務(wù)發(fā)生異常時主線程事務(wù)回滾示例過程

    這篇文章主要為大家介紹了子線程任務(wù)發(fā)生了異常時主線程事務(wù)如何回滾的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • Java中l(wèi)ist.contains()的用法及拓展

    Java中l(wèi)ist.contains()的用法及拓展

    List集合相信大家在開發(fā)過程中幾乎都會用到,有時候難免會遇到集合里的數(shù)據(jù)是重復(fù)的,需要進行去除,下面這篇文章主要給大家介紹了關(guān)于Java中l(wèi)ist.contains()的用法及拓展的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 關(guān)于postman傳參的幾種格式 list,map 等

    關(guān)于postman傳參的幾種格式 list,map 等

    這篇文章主要介紹了postman傳參的幾種格式 list,map等,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot Nacos實現(xiàn)自動刷新

    SpringBoot Nacos實現(xiàn)自動刷新

    這篇文章主要介紹了SpringBoot Nacos實現(xiàn)自動刷新,Nacos(Dynamic Naming and Configuration Service)是阿里巴巴開源的一個動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺
    2023-01-01
  • 如何使用Jackson和JSON Pointer查詢解析任何JSON節(jié)點

    如何使用Jackson和JSON Pointer查詢解析任何JSON節(jié)點

    本文介紹了JSON Pointer是字符串表達式,可以非常方便解析復(fù)雜JSON節(jié)點值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Protostuff序列化和反序列化的使用說明

    Protostuff序列化和反序列化的使用說明

    今天小編就為大家分享一篇關(guān)于Protostuff序列化和反序列化的使用說明,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • 最常用的1000個Java類(附代碼示例)

    最常用的1000個Java類(附代碼示例)

    這篇文章主要介紹了最常用的1000個Java類(附代碼示例),需要的朋友可以參考下
    2015-04-04
  • java中List對象列表實現(xiàn)去重或取出及排序的方法

    java中List對象列表實現(xiàn)去重或取出及排序的方法

    這篇文章主要介紹了關(guān)于java中List對象列表實現(xiàn)去重或取出以及排序的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • java子類繼承父類實例-披薩的選擇實現(xiàn)代碼

    java子類繼承父類實例-披薩的選擇實現(xiàn)代碼

    這篇文章主要介紹了java子類繼承父類實例-披薩的選擇實現(xiàn)代碼,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12

最新評論