精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用 Spring Boot 創建自己的 ChatGPT 應用程序

開發 架構
在這篇短文中,我們了解了 OpenAI 的 GPT 3.5 Turbo 模型。如何生成供個人使用的密鑰。然后,我們還研究了將常用的 Spring Boot 應用程序與 OpenAI 聊天完成 API 集成、對端點進行實際調用,并驗證了響應。

在本篇文中,將解釋如何與OpenAI聊天完成 API 集成以使用它們并創建自己的 ChatGPT 版本。將使用Spring Boot程序與ChatGPT的 開放API集成。

我們將Spring Boot程序公開一個 REST 端點,它將以requestParam的形式發起請求,然后對其進行處理,并以可讀的文本格式返回響應。

讓我們按照以下步驟操作:

前提條件

我們將使用OpenAI的ChatGPT完成API在我們程序里的調用。

該API的各個重要參數描述如下:

模型: 我們將向“gpt-3.5-turbo”發送請求

GPT-3.5 Turbo是一種極其強大的人工智能驅動的語言模型。它擁有 8192 個處理器核心和多達 3000 億個參數,是迄今為止最大的語言模型之一。在廣泛的自然語言處理任務中表現優秀,可以用于生成文章、回答問題、對話、翻譯和編程等多種應用場景。它的能力使得人們可以通過自然語言與計算機進行更加自然、靈活和高效的交互。

Messages 這表示發送到模型的實際請求類,以便模型可以解析消息并以人們可讀的格式生成相應的響應。

包含兩個子屬性:

role 指定消息的發送者(請求時為“user”,響應時為“assistant”)。

content: 這才是真正的消息。

Message DTO 如下所示:

public class Message {
    private String role;
    private String content;
    // getters & setters
}

話不多說,讓我們開始與我們的 Spring Boot 應用程序集成。

創建一個基本的 Spring Boot 應用程序。為此,請前往start.spring.io并使用以下選擇:
我們只需要 Spring Web 依賴項:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>

創建一個Controller 代碼:

package com.akash.mychatGPT.controller;

import com.akash.mychatGPT.dtos.ChatRequest;
import com.akash.mychatGPT.dtos.ChatResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class ChatController {

    @Qualifier("openaiRestTemplate")
    @Autowired
    private RestTemplate restTemplate;

    @Value("${openai.model}")
    private String model;

    @Value("${openai.api.url}")
    private String apiUrl;

    @GetMapping("/chat")
    public String chat(@RequestParam String prompt) {
        // 創建請求
        ChatRequest request = new ChatRequest(model, prompt, 1, 1.1);

        // 調用API
        ChatResponse response = restTemplate.postForObject(apiUrl, request, ChatResponse.class);

        if (response == null || response.getChoices() == null || response.getChoices().isEmpty()) {
            return "No response";
        }

        // 返回響應
        return response.getChoices().get(0).getMessage().getContent();
    }
}

創建一個ChatRequest類:

package com.akash.mychatGPT.dtos;

import java.util.ArrayList;
import java.util.List;

public class ChatRequest {

    private String model;
    private List<Message> messages;
    private int n;// 如果我們想增加要生成的響應的數量,可以指定。默認值為1。
    private double temperature;// 控制響應的隨機性。默認值為1 (大多數隨機)。
     
    // 構造方法, Getters & setters
}

在這里,我們使用以下屬性,將其放入 application.properties 中:

openai.model=gpt-3.5-turbo
openai.api.url=https://api.openai.com/v1/chat/completions
openai.api.key=<generated_key_goes_here>

重要提示:關于 OpenAI API 密鑰的說明:

OpenAI 允許生成唯一的 API 密鑰來使用 OpenAI API。為此,請點擊(
https://platform.openai.com/account/api-keys)。在這里,需要注冊并創建 API 密鑰(如下面的快照所示)。確保保證其安全,一定保存好!

單擊“創建新密鑰”并按照屏幕上的步驟操作。就可以擁有了自己的 OpenAI API 密鑰。如果沒有注冊過,想體驗一下的話,私信我發你體key。

接下來,我們用于RestTemplate調用 OpenAI API URL。因此,讓我們添加一個攔截器,如下所示:

package com.akash.mychatGPT.config;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class OpenAIRestTemplateConfig {

    @Value("${openai.api.key}")
    private String openaiApiKey;

    @Bean
    @Qualifier("openaiRestTemplate")
    public RestTemplate openaiRestTemplate() {
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.getInterceptors().add((request, body, execution) -> {
            request.getHeaders().add("Authorization", "Bearer " + openaiApiKey);
            return execution.execute(request, body);
        });
        return restTemplate;
    }
}

攔截器攔截請求并將 OpenAI API 密鑰添加到請求標頭中。

就是這樣,現在我們可以簡單地使用主類運行應用程序并開始調用 API。

package com.akash.mychatGPT;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyChatGptApplication {

	public static void main(String[] args) {
		SpringApplication.run(MyChatGptApplication.class, args);
	}

}

測試

本次使用Postman 進行演示。將想要問的問題傳遞給該模型。

例子#1

http://localhost:8080/chat?prompt=what are some good Spring Boot libraries。

例子#2

GPT 3.5 Turbo 模型足夠先進,可以表現出高度真實的響應。(由于有數十億行文本,該模型已經過訓練)。

注意:對 OpenAI API curl 的實際調用如下所示:

curl --location 'https://api.openai.com/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $OPENAI_API_KEY' \
--data '{
    "model": "gpt-3.5-turbo",
    "messages": [
        {
            "role": "user",
            "content": "Hello!"
        }
    ]
}'

注意事項

在開發應用程序時,以下是可能遇到的常見問題。

問題1:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.akash.mychatGPT.Message` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
 at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 10, column: 9] (through reference chain: com.akash.mychatGPT.ChatResponse["choices"]->java.util.ArrayList[0]->com.akash.mychatGPT.ChatResponse$Choice["message"])

確保創建一個無參數構造函數,并為以下對象提供 getter 和 setter:

問題2:

org.springframework.web.client.HttpClientErrorException$TooManyRequests: 429 Too Many Requests: 
"{<EOL>    "error": {<EOL>        "message": "You exceeded your current quota, please check your plan and billing details.",<EOL>        "type": "insufficient_quota",<EOL>        "param": null,<EOL>        "code": null<EOL>    }<EOL>}<EOL>"

OpenAI 提供了基本配額。當前電子郵件 ID 的配額已用完,需要使用了新的電子郵件 ID。

問題3:

org.springframework.web.client.HttpClientErrorException$TooManyRequests: 429 Too Many Requests: "{<EOL>    "error": {<EOL>        "message": "Rate limit reached for default-gpt-3.5-turbo in organization org-V9XKg3mYkRRTJhHWq1lYjVtS on requests per min. Limit: 3 / min. Please try again in 20s. Contact us through our help center at help.openai.com if you continue to have issues. Please add a payment method to your account to increase your rate limit. Visit https://platform.openai.com/account/billing to add a payment method.",<EOL>        "type": "requests",<EOL>        "param": null,<EOL>        "code": null<EOL>    }<EOL>}<EOL>"

一段時間后嘗試調用 API。(為了安全起見,良好的工作時間是 30 分鐘)。

總結

在這篇短文中,我們了解了 OpenAI 的 GPT 3.5 Turbo 模型。如何生成供個人使用的密鑰。

然后,我們還研究了將常用的 Spring Boot 應用程序與 OpenAI 聊天完成 API 集成、對端點進行實際調用,并驗證了響應。

注意事項

OpenAI 的 API 是受監管的資源。我們對 API 的調用量是有限的,可以在此處進行跟蹤。

責任編輯:姜華 來源: 今日頭條
相關推薦

2023-04-18 10:47:32

2012-04-26 13:48:56

iPhone應用發布Ad Hoc

2023-09-21 08:00:00

ChatGPT編程工具

2023-12-10 14:43:30

PythonGUIeel

2023-04-11 16:04:19

Spring Boo端點運維

2024-09-06 10:46:04

2013-06-24 10:21:47

面向對象Web應用JavaScript

2011-07-21 15:37:40

jQuery MobiJQMJSON

2024-01-05 07:38:55

2023-03-01 13:54:53

Springpostion?繼承

2013-06-26 08:52:12

2022-02-18 08:43:19

Spring Boo應用程序RabbitMQ

2025-07-11 10:00:00

云計算應用程序數據基礎設施

2023-05-11 12:40:00

Spring控制器HTTP

2020-10-18 08:51:18

Spring Boot

2024-01-15 08:03:10

JVM內存工作效率

2009-01-19 11:07:42

C#Web.NET

2009-07-23 14:25:03

ASP.NET 2.0

2011-05-11 10:58:39

iOS

2009-06-22 09:06:31

Android用戶應用程序
點贊
收藏

51CTO技術棧公眾號

小泽玛利亚av在线| 国产免费观看久久黄| 国产毛片毛片毛片毛片毛片毛片| av岛国在线| 国产精品网曝门| 97se亚洲综合在线| av手机天堂网| 狠狠色丁香久久综合频道| 亚洲欧美制服第一页| 在线视频日韩欧美| 色资源二区在线视频| 国产精品久久久久影院老司| 国产精品国产精品| 亚洲 国产 日韩 欧美| 国自产拍偷拍福利精品免费一 | 手机在线国产视频| 国产伦子伦对白在线播放观看| 国产精品麻豆欧美日韩ww| 国产乱码精品一区二区三区卡| 国产精品国产精品国产| 在线国产欧美| 久久久91精品国产一区不卡| 波多野结衣 在线| 91麻豆精品国产91久久久久推荐资源| 色综合av在线| 国产v片免费观看| 精品自拍一区| 国产精品无圣光一区二区| 国内一区在线| 成人激情四射网| 麻豆国产一区二区| 日韩av手机在线| 国产成人无码一区二区三区在线| 91成人网在线观看| 日韩在线欧美在线国产在线| 久久亚洲无码视频| 香蕉久久夜色精品国产更新时间 | 免费啪视频在线观看| 久久久加勒比| 欧美在线免费视屏| 成人午夜视频免费在线观看| 999av小视频在线| 亚洲综合免费观看高清完整版| 波多野结衣激情| 日本在线人成| 中文字幕一区二区三区在线播放| 手机看片福利永久国产日韩| 欧美日韩免费做爰大片| 91免费在线视频观看| 国产精品一区二区三区不卡| 免费观看a视频| 国v精品久久久网| 草莓视频一区| 日本激情视频网站| 成人av在线网站| 国产精品免费看一区二区三区| 精品久久久无码中文字幕| 国产成人在线免费| 国产传媒欧美日韩| 四虎在线视频免费观看| av在线不卡免费看| 精品国产福利| 男男电影完整版在线观看| 久久夜色精品国产噜噜av| 开心色怡人综合网站| 日av在线播放| 国产午夜亚洲精品羞羞网站| 色播亚洲婷婷| 久热国产在线| 亚洲综合成人在线视频| 9久久9毛片又大又硬又粗| 成av人片在线观看www| 日韩欧美极品在线观看| 少妇一级淫免费播放| 欧美特黄色片| 精品国产百合女同互慰| 艳妇乳肉亭妇荡乳av| 美女久久久久| 久久躁日日躁aaaaxxxx| 国产极品美女高潮无套嗷嗷叫酒店| 99国产一区| 国产精品成人在线| 国产精品免费无遮挡| 成人av在线电影| 欧美一区二区影视| gogo在线高清视频| 福利微拍一区二区| 在线观看岛国av| 北条麻妃在线一区二区免费播放| 亚洲欧美国产一本综合首页| 免费精品在线视频| 亚洲精品乱码| 国产久一一精品| 欧美一级特黄aaaaaa大片在线观看| 久久久蜜桃精品| 中文字幕乱码免费| 不卡av播放| 欧美一二三区精品| 久久精品国产亚洲av麻豆| 亚洲视频电影在线| 欧美在线国产精品| a级片免费观看| 久久久久久日产精品| 国产一区 在线播放| 欧美123区| 日韩激情视频在线播放| 男人av资源站| 久久精品系列| 国产一区二区三区免费不卡| 在线观看黄av| 欧美视频在线免费看| 亚洲精品免费一区亚洲精品免费精品一区| 99a精品视频在线观看| 在线观看日韩视频| 中文字幕亚洲精品在线| 国产精品99久久久久久有的能看 | 精品人妻一区二区三区日产| 日韩大片在线观看| 青青草原一区二区| 国产成人自拍一区| 亚洲欧美怡红院| 日本新janpanese乱熟| 国产91精品入| 欧美激情国产高清| 国产特级aaaaaa大片| 国产精品私人自拍| 日本www.色| 伊人久久大香线蕉综合网蜜芽| 欧美激情一区二区三区在线视频观看 | 欧洲乱码伦视频免费| 97国产真实伦对白精彩视频8| 国内精品久久久久久久久久| 中文字幕制服丝袜一区二区三区| 男人亚洲天堂网| 日日狠狠久久偷偷综合色| 久久久久久久久久久91| 亚洲国产成人在线观看| 亚洲精品中文在线影院| 999久久久精品视频| 日韩欧美伦理| 成人国产精品日本在线| 天堂中文8资源在线8| 欧美三级日韩三级国产三级| 国产精品免费无码| 丝瓜av网站精品一区二区 | 中文字幕av一区二区三区人妻少妇 | 男女免费视频网站| 国产精品一级在线| 精品视频在线观看一区二区| 欧美国产中文高清| 精品中文字幕在线观看| 亚洲产国偷v产偷v自拍涩爱| 一区二区三区四区国产精品| 91精品国产高清91久久久久久| 女人色偷偷aa久久天堂| 5566av亚洲| 日本片在线观看| 精品久久久久久久久久久久久久久 | 18在线观看的| 精品伦理精品一区| 日本最新中文字幕| 91色综合久久久久婷婷| 成年人视频在线免费| 精品国产不卡| 成人国内精品久久久久一区| 午夜成年人在线免费视频| 精品国产免费视频| 日韩精品一区二区亚洲av| 国产色产综合色产在线视频| 天天干天天av| 在线观看日韩av电影| 久久伦理网站| 国产91欧美| 欧美激情网站在线观看| 巨骚激情综合| 欧美一级片免费看| 亚洲免费在线观看av| 国产欧美1区2区3区| www.久久com| 国产亚洲综合精品| 亚洲人一区二区| 9l亚洲国产成人精品一区二三| 欧美中文在线视频| 欧美三级电影一区二区三区| 精品久久久久久久人人人人传媒| 黄色免费av网站| 国产精品久线观看视频| 中文字幕天堂av| 秋霞电影一区二区| 久无码久无码av无码| 成人系列视频| 国产精品日韩二区| 懂色aⅴ精品一区二区三区| 欧美二区乱c黑人| 都市激情在线视频| 亚洲精品在线观| 一级特黄色大片| 欧美日韩国产区| 91在线播放观看| 欧美激情一区二区在线| 午夜性福利视频| 免费观看成人av| 国产精品网站免费| 66久久国产| 日本不卡高清视频一区| 成人在线视频中文字幕| 国产免费一区二区三区在线观看| av在线资源| 久久精品国产99国产精品澳门| 日av在线播放| 亚洲国产高清福利视频| 国产女无套免费视频| 色屁屁一区二区| 香蕉视频一区二区| 亚洲欧美激情在线| 亚洲色图 激情小说| 91丨porny丨国产入口| 97超碰免费在线观看| 蜜桃精品视频在线观看| 国产一区二区视频免费在线观看| 国内自拍视频一区二区三区| 免费成人深夜夜行网站视频| 日韩欧美字幕| 天堂一区二区三区| 美日韩中文字幕| 久热国产精品视频一区二区三区| 国产精品白丝av嫩草影院| 91超碰在线免费观看| 亚洲精品伊人| 国产欧美日韩精品专区| 精品123区| 国产激情久久久久| 偷拍精品精品一区二区三区| 8090成年在线看片午夜| 俺来俺也去www色在线观看| 欧美精品在线看| 午夜影院免费在线| 成年人精品视频| 亚洲综合影视| 欧美日韩ab片| 91高清视频在线观看| 久久噜噜噜精品国产亚洲综合| 欧美bbbxxxxx| 久久久久久亚洲精品不卡| 51漫画成人app入口| 性欧美办公室18xxxxhd| 国产夫妻在线播放| 4438全国亚洲精品在线观看视频| 国产福利电影在线播放| 欧美在线欧美在线| 亚洲www.| 国产欧美精品一区二区三区-老狼| 黄色成人小视频| 3d动漫精品啪啪一区二区三区免费| 欧美日韩午夜电影网| 97免费资源站| 日韩一级电影| 亚洲精品久久区二区三区蜜桃臀| 成人影视亚洲图片在线| 国产系列第一页| 欧美日韩国内| 国产黄色一级网站| 日本午夜一区二区| 香蕉视频xxx| 波波电影院一区二区三区| 国产艳俗歌舞表演hd| 久久久久久免费| 永久免费看mv网站入口| 一区二区三区国产豹纹内裤在线| 国产精品1000| 欧美亚洲高清一区| 精品人妻伦一二三区久久| 亚洲成人激情视频| 国产一级网站视频在线| yw.139尤物在线精品视频| 欧美人与动牲性行为| 日韩av片永久免费网站| 国色天香久久精品国产一区| 国产精品视频一区二区三区经| 国产成人影院| 警花观音坐莲激情销魂小说| 亚洲日产国产精品| 狠狠躁狠狠躁视频专区| 国产成人啪免费观看软件| 久久无码人妻精品一区二区三区| 国产精品久久毛片av大全日韩| 久久亚洲av午夜福利精品一区| 日本韩国精品一区二区在线观看| 国产麻豆免费观看| 日韩福利视频在线观看| 黄色网页在线观看| 欧美性受xxxx白人性爽| 99热这里有精品| 久久精品人人做人人爽电影| 小处雏高清一区二区三区| 成人免费aaa| 国产原创一区二区三区| 受虐m奴xxx在线观看| 亚洲一区二区偷拍精品| 中文字幕在线播出| 日韩成人av一区| 毛片在线导航| 成人国产精品日本在线| 国产麻豆精品久久| 99er在线视频| 久草精品在线观看| 精品人妻无码一区二区三区 | 天堂久久av| 亚洲激情一区二区| 国产日韩欧美在线播放不卡| 一级淫片在线观看| 国产偷国产偷亚洲高清人白洁| 18精品爽视频在线观看| 欧美日本高清视频在线观看| 男人的天堂在线视频| 国语自产在线不卡| 久久丁香四色| 亚洲一卡二卡三卡四卡无卡网站在线看| 一区二区毛片| 一级特黄a大片免费| 洋洋av久久久久久久一区| 在线观看国产小视频| 国产午夜精品全部视频在线播放| 国产理论在线| 国产嫩草一区二区三区在线观看| 综合激情婷婷| 在线播放黄色av| 亚洲三级免费观看| 国产精品伊人久久 | 欧美hdxxxxx| 91精品国产99久久久久久红楼 | 国产精品对白| 美女扒开大腿让男人桶| 国产精品18久久久久久久网站| 国产第一页浮力| 91精品国产91热久久久做人人| 日本成a人片在线观看| 国产美女搞久久| 国产精品久久观看| 国产精品久久a| 中文字幕制服丝袜成人av| 一级片一区二区三区| 色偷偷9999www| www.久久热| 日韩人妻精品一区二区三区| 国产乱对白刺激视频不卡| 黄色片在线观看网站| 精品国精品自拍自在线| av影片在线| 欧美xxxx黑人又粗又长密月 | 国产精品国语对白| 欧美日韩水蜜桃| 国产传媒免费观看| 亚洲摸摸操操av| 黄色aaa大片| 性欧美xxxx交| 国产精品片aa在线观看| 鲁一鲁一鲁一鲁一av| 国产精品高潮呻吟久久| 99视频国产精品免费观看a| 欧美日韩成人在线视频| 麻豆精品99| 日日摸天天爽天天爽视频| 欧美激情综合网| 国产乱码精品一区二区三区精东 | 久久精品视频国产| 亚洲黄页网在线观看| 欧美天堂视频| 欧美日韩在线免费观看视频| 国产·精品毛片| 成人午夜视频在线播放| 中文字幕一精品亚洲无线一区| 国内精品视频| 免费看日本毛片| 国产精品久久久久久久蜜臀| 国产夫妻性生活视频| 欧洲中文字幕国产精品| 久久美女视频| 色悠悠在线视频| 91电影在线观看| 中文国产字幕在线观看| 快播亚洲色图| 国产呦精品一区二区三区网站| 日韩精品无码一区二区| 最近的2019中文字幕免费一页| 亚洲精品午夜| 欧美三级理论片| 亚洲综合一二三区| www.在线视频.com| 电影午夜精品一区二区三区| 日韩av中文字幕一区二区| 欧美成人精品一区二区免费看片| 亚洲欧洲成视频免费观看| 麻豆久久一区| 午夜激情福利在线| 亚洲成人你懂的| 国产日产一区二区| 欧日韩一区二区三区| 丁香网亚洲国际| 国产又粗又大又爽|