国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

??
Purpose
?? ?
???? ??
概念驗證
項目設(shè)置
代碼實現(xiàn)
Spring AI 集成
客戶端 - Spring Boot應(yīng)用程序通信
客戶端 - Open AI 通信
調(diào)整和觀察
結(jié)論
? ?? ???? ?? ?? Spring Boot ? Spring AI? ???? ?? ?? ?? ?????? ??

Spring Boot ? Spring AI? ???? ?? ?? ?? ?????? ??

Apr 28, 2024 am 11:46 AM
ai spring ??? ????? gen ai

?? ??? Spring+AI? ???? ??? API? ?? ??? ?? ??? ??? ???? ???? ?????. ? ????? ??? ??? Spring+AI ?? ??? ???????. ? ????? Spring+AI? ??? ?? ?? ??? ???? ??? ???? ??? ??? ? ?? ??? ???????? ????? ?????. ? ??? ???? Spring+AI? ??? ???? ? ?? ???? ???? ? ??? ? ? ??? ????.

??? ?????? ????? ?? ???? 20? ?? ?????, ??? ?? 1.0 ??? ??? ? 10?? ?????. ?? Spring? ???? ???? ???? ????? ???? ?? ??? ??? ?? ??? ???? ????? ???? ??? ??? ??? ? ????. ??? ??? ?? Spring? ??? ??? ?? ???? ???? ?? ??? ??? ?????. ???, ?? ???? ???? ????, ?? ??? ????, ????? ?????? ?? ?? ????? ??? ??? ?? ?????.

Spring + AI ????? ?? ??? ??? ?? ?? ?? ??? ???? ??????? ??? ? ?? ????? ????? ?? ??? ?? ????. ???? ?? ?? ???? ???? ??? ??? ?????? ?? ?? ??? ??(?? ?? ???? ??)? ?? ?? ??? ? ????.

Spring AI? ?? ?? ??? ?? ??? ???(GPT)? ????? ???? ?? ?????? ???(???)? ???? ?? ?? ??? ?? ??? ????. ??? ?????? ?? ??? ??? ??? ???? ?? ??? ??? ??? ? ???? ???? ?? ?? ??? ???? ? ???? ??? ???? ??? ???? ?????. ?? ? ??? ??? ??? ??? ? ??? ? ????.

Purpose

? ????? Spring AI? Spring Boot ??????? ???? ????? ???? OpenAI? ?? ???? ??? ?????. ??? ???? ????? ??? ????? ?????. ??? ?? ?? ??? ????? ????? ??? ?? ????? ????. ??? ??? ?? ?????? Spring AI API? ????.

?? ?

??, ? ?? ??? ???? ??? ???? ??? ????? ??? ? ??? GPT ???? ???? ??? ??? ?? ???.

???? AI? ??? ?? ??? ?? ??? ???? ??? ? ??? ????? ???? ? ????? ???. ???, ??? ??? ?? ?? ???? ??? ?? ??? ???? ??? ??? ?? ???? ?????.

???? ?? ??? ???? ?? ??? ???? ??? ??? ?? ???? ??? ??????. ?? AI ??? ?? ???? ??? ? ??? ??? ?? ?????. ??? ?? ??? ???? "?? ???"? ???? ???? ???? ?????.

???? - ?? AI? ?? ??? ?????.
?? - ??? ???(??)
?? - ?? ??(??)
?? ?? ??(LLM) - ??? ???? ?? ??? ???? ??? ??? ????
???? ?? - ??? ??? ???? ??? ?????
???? ?? ??? - ???? ???? ????? ??? ???? ?? ??
?? - ????? ????? ??? ???? ???? ?? ?? ? ??? ???? ??? ????? ?????
??? ?? ? - ??? ??? ?? ?? ???? ???(????? ???? ??? ???? ?? ??? ? ?? ???)
?? ??? ?????.

????? ??? ??? ? ??? ??? ???? ?? ?? ? ??? ???? ????? ?? ????.

???? ??

? ????? ??? ?????.

Write {count = three} reasons why people in {location = Romania} should consider a {job = software architect} job. These reasons need to be short, so they fit on a poster. For instance, "{job} jobs are rewarding."

上面內(nèi)容代表了提示詞模板。按照建議,應(yīng)作為提示詞的一部分提供清晰的主題,清晰的任務(wù)含義以及額外的有用信息,以提高結(jié)果的準(zhǔn)確性。

提示詞包含三個參數(shù)

count - 希望作為輸出的原因數(shù)量
job - 感興趣的領(lǐng)域或工作
location - 工作申請者所在的國家,城鎮(zhèn),地區(qū)等

概念驗證

在這篇文章中,簡單的概念驗證目標(biāo)如下:

將 Spring AI 集成到Spring Boot應(yīng)用程序并使用它
允許客戶端通過應(yīng)用程序與 Open AI 進(jìn)行通信
客戶端向應(yīng)用程序發(fā)出參數(shù)化的HTTP請求
應(yīng)用程序使用一個提示詞來創(chuàng)建輸入,發(fā)送給 Open AI 并獲取輸出
應(yīng)用程序?qū)㈨憫?yīng)發(fā)送給客戶端

利用Spring Boot以及Spring AI構(gòu)建生成式人工智能應(yīng)用圖片

項目設(shè)置

Java 21
Maven 3.9.2
Spring Boot – v. 3.2.2
Spring AI – v. 0.8.0-SNAPSHOT (仍在開發(fā),實驗性)

代碼實現(xiàn)

Spring AI 集成

通常,這是一個基本步驟,不一定值得一提。然而,因為 Spring AI 目前以快照形式發(fā)布,為了能夠集成 Open AI 自動配置依賴,你需要添加一個引用到 Spring 快照倉庫。

<repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>false</enabled></releases></repository></repositories>

下一步是添加 spring-ai-openai-spring-boot-starter Maven 依賴項。

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId><version>0.8.0-SNAPSHOT</version></dependency>

Open AI ChatClient 現(xiàn)在是應(yīng)用程序類路徑的一部分。它是用來向 Open AI 發(fā)送輸入并獲取輸出的組件。

為了能夠連接到AI模型,需要在 application.properties 文件中設(shè)置 spring.ai.openai.api-key 屬性。

spring.ai.openai.api-key = api-key-value

它的值代表了用戶的有效API密鑰,用戶將通過此密鑰進(jìn)行通信。通過訪問[資源2],可以注冊或登錄并生成一個。

客戶端 - Spring Boot應(yīng)用程序通信

概念驗證的第一部分是客戶端應(yīng)用程序(例如瀏覽器,curl等)與開發(fā)的應(yīng)用程序之間的通信。這是通過一個 REST 控制器實現(xiàn)的,可以通過HTTP GET請求訪問。

URL路徑是 /job-reasons,還有之前在定義提示時概述的三個參數(shù),這將導(dǎo)致如下格式:

/job-reasons?count={count}&job={job}&locatinotallow={location}

和相應(yīng)的控制器:

@RestControllerpublic class OpenAiController { @GetMapping("/job-reasons")public ResponseEntity<String> jobReasons(@RequestParam(value = "count", required = false, defaultValue = "3") int count, @RequestParam("job") String job, @RequestParam("location") String location) {return ResponseEntity.ok().build();}}

由于來自 Open AI 的響應(yīng)將是一個字符串,因此控制器返回一個封裝了字符串的ResponseEntity。如果我們運行應(yīng)用程序并發(fā)出請求,當(dāng)前響應(yīng)體部分沒有返回任何內(nèi)容。

客戶端 - Open AI 通信

Spring AI 目前主要關(guān)注處理語言并產(chǎn)生語言或數(shù)字的AI模型。在前一類別中, Open AI 模型的例子包括GPT4-openai或GPT3.5-openai。

為了與這些AI模型(實際上是指 Open AI 算法)進(jìn)行交互, Spring AI 提供了一個統(tǒng)一的接口。

ChatClient接口目前支持文本輸入和輸出,并具有簡單的契約。

@FunctionalInterfacepublic interface ChatClient extends ModelClient<Prompt, ChatResponse> {default String call(String message) {Prompt prompt = new Prompt(new UserMessage(message));return call(prompt).getResult().getOutput().getContent();} ChatResponse call(Prompt prompt);}

確實如此,功能接口的實際方法通常是被使用的方法。

在我們的概念驗證中,這正是我們所需要的,一種調(diào)用 Open AI 并發(fā)送目標(biāo)參數(shù)化 Prompt 作為參數(shù)的方式。我們定義了以下的OpenAiService,在其中注入了一個 ChatClient 的實例。

@Servicepublic class OpenAiService { private final ChatClient client; public OpenAiService(OpenAiChatClient aiClient) {this.client = aiClient;} public String jobReasons(int count, String domain, String location) {final String promptText = """Write {count} reasons why people in {location} should consider a {job} job.These reasons need to be short, so they fit on a poster.For instance, "{job} jobs are rewarding.""""; final PromptTemplate promptTemplate = new PromptTemplate(promptText);promptTemplate.add("count", count);promptTemplate.add("job", domain);promptTemplate.add("location", location); ChatResponse response = client.call(promptTemplate.create());return response.getResult().getOutput().getContent();}}

如果應(yīng)用程序正在運行,那么可以從瀏覽器執(zhí)行以下請求:

http://localhost:8080/gen-ai/job-reasons?count=3&job=software%20architect&locatinotallow=Romania

這下面的結(jié)果被檢索出來的結(jié)果:

利潤豐裕的職業(yè):軟件架構(gòu)師的工作提供了有競爭力的薪酬和出色的增長機(jī)會,確保在羅馬尼亞的財務(wù)穩(wěn)定和成功。
熱門職業(yè):隨著技術(shù)需求的持續(xù)增長,軟件架構(gòu)師在羅馬尼亞和全世界都備受追捧,提供了豐富的就業(yè)前景和就業(yè)保障。
創(chuàng)造性問題解決:軟件架構(gòu)師在設(shè)計和開發(fā)創(chuàng)新軟件解決方案中扮演著至關(guān)重要的角色,使他們可以釋放他們的創(chuàng)造力,并對各種行業(yè)產(chǎn)生重大影響。

這就是我們所期望的——一個簡易的接口,通過它,可以要求 Open AI GPT模型寫出一些原因,解釋為何在特定地點的特定工作具有吸引力。

調(diào)整和觀察

到目前為止,開發(fā)的簡單概念驗證主要使用了默認(rèn)的配置。

ChatClient實例可以通過各種屬性根據(jù)所需需要來配置。雖然這超出了本文的范圍,但在這里舉兩個例子。

spring.ai.openai.chat.options.model 指定要使用的AI模型。默認(rèn)為'gpt-35-turbo',但'gpt-4'和'gpt-4-32k'指定的是最新版本。雖然這些版本都是可用的,但你可能無法使用按使用量付費的計劃來訪問這些版本,但 Open AI 網(wǎng)站上有更多的信息可以幫助你了解如何適應(yīng)它。

另一個值得一提的屬性是 spring.ai.openai.chat.options.temperature。根據(jù)參考文檔,采樣溫度控制了“回應(yīng)的創(chuàng)新性”。據(jù)說,較高的值會讓輸出“更隨機(jī)”,而較低的值會“更專注和決定性”。默認(rèn)值為0.8,如果我們將其降低到0.3,重啟應(yīng)用并再次使用相同的請求參數(shù)詢問,下面的結(jié)果將被檢索出來。

有利可圖的職業(yè)機(jī)會:羅馬尼亞的軟件架構(gòu)師工作提供有競爭力的薪水和極好的成長前景,對于尋求財務(wù)穩(wěn)定和職業(yè)發(fā)展的個人來說,這是一個吸引人的職業(yè)選擇。
具有挑戰(zhàn)性和智能刺激的工作:作為一名軟件架構(gòu)師,你將負(fù)責(zé)設(shè)計和實現(xiàn)復(fù)雜的軟件系統(tǒng),解決復(fù)雜的技術(shù)問題,并與有才華的團(tuán)隊合作。這個角色提供了持續(xù)的學(xué)習(xí)機(jī)會和在尖端技術(shù)上工作的機(jī)會。
高需求和工作保障:隨著對技術(shù)和數(shù)字化轉(zhuǎn)型的依賴增加,各行各業(yè)對熟練軟件架構(gòu)師的需求在上升。選擇在羅馬尼亞的軟件架構(gòu)師工作確保了工作安全和廣泛的就業(yè)選擇,無論是在本地還是國際上。

可以看出,這種情況下的輸出更具描述性。

最后一個考慮因素是與獲取的輸出的結(jié)構(gòu)相關(guān)的。擁有將實際接收的有效載荷映射到Java對象(例如,類或記錄)的能力將非常方便。截至目前,表示形式是文本形式,實現(xiàn)也是如此。輸出解析器可能實現(xiàn)這一點,類似于Spring JDBC的映射結(jié)構(gòu)。

在這個概念驗證中,我們使用了一個BeanOutputParser,它允許直接將結(jié)果反序列化到Java記錄中,如下所示:

public record JobReasons(String job, String location, List<String> reasons) {}

通過將 {format} 作為提示文本的一部分,并將其作為指示提供給 AI 模型。

OpenAiService 方法變?yōu)椋?/span>

public JobReasons formattedJobReasons(int count, String job, String location) {final String promptText = """Write {count} reasons why people in {location} should consider a {job} job.These reasons need to be short, so they fit on a poster.For instance, "{job} jobs are rewarding."{format}"""; BeanOutputParser<JobReasons> outputParser = new BeanOutputParser<>(JobReasons.class); final PromptTemplate promptTemplate = new PromptTemplate(promptText);promptTemplate.add("count", count);promptTemplate.add("job", job);promptTemplate.add("location", location); promptTemplate.add("format", outputParser.getFormat());promptTemplate.setOutputParser(outputParser); final Prompt prompt = promptTemplate.create(); ChatResponse response = client.call(prompt);return outputParser.parse(response.getResult().getOutput().getContent());}

再次調(diào)用時,輸出如下:

{"job":"software architect","location":"Romania","reasons":["High demand","Competitive salary","Opportunities for growth"]}

格式符合預(yù)期,但解釋的原因似乎較少,這意味著需要進(jìn)行額外的調(diào)整以達(dá)到更好的可用性。然而,從概念驗證的角度來看,這是可接受的,因為焦點是形式。

結(jié)論

提示設(shè)計是任務(wù)的重要部分 - 提示越清晰,輸入越好,輸出的質(zhì)量也就越高。

使用 Spring AI 與各種聊天模型進(jìn)行集成非常簡單 - 本篇文章展示了一個 Open AI 的集成。

然而,對于 Gen AI 或者幾乎任何技術(shù)來說,首先至少要熟悉基本概念是非常重要的。然后,嘗試?yán)斫馊绾芜M(jìn)行通訊的魔法,最后再開始編寫“生產(chǎn)”代碼。

最后但同樣重要的是,建議進(jìn)一步探索 Spring AI API,以了解實現(xiàn)并隨著其不斷發(fā)展和改進(jìn)保持最新狀態(tài)。


? ??? Spring Boot ? Spring AI? ???? ?? ?? ?? ?????? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undresser.AI Undress

Undresser.AI Undress

???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover

AI Clothes Remover

???? ?? ???? ??? AI ?????.

Video Face Swap

Video Face Swap

??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

???

??? ??

???++7.3.1

???++7.3.1

???? ?? ?? ?? ???

SublimeText3 ??? ??

SublimeText3 ??? ??

??? ??, ???? ?? ????.

???? 13.0.1 ???

???? 13.0.1 ???

??? PHP ?? ?? ??

???? CS6

???? CS6

??? ? ?? ??

SublimeText3 Mac ??

SublimeText3 Mac ??

? ??? ?? ?? ?????(SublimeText3)

???

??? ??

??? ????
1601
29
PHP ????
1502
276
???
?? ???? ?????? ?? ?? ETH? ?? ??? ?????? ?? ???? ?????? ?? ?? ETH? ?? ??? ?????? Jul 31, 2025 pm 11:00 PM

?? ??? ??? ??? ?????? ?? ? ?? ???? ?????, ?? ?? ETH? ??? ???? ?? ? ????. 1. Binance ? Ouyiok? ?? ?? ??? ???, ??? KYC ?? ? Stablecoins?? ?? ETH? ?? ??? ??????. 2. ?? ? ???? ?? ??? ????? ???? Stablecoin ?? ?? ??? ?? ETH? ?????. 3. ???? ??? ???? ?? ??? ????? ??? ? ?? (32 ETH ??), ?? ?? ??? ?? 1 ?? ??? ???? ??? ?? ? ????. 4. Web3 ????? ???? ????? ??? ????? ?? ??? ????? ETH? ????. ???? ?? ?? ??? ????? ???? ?? ?? ? ???? ???? ?? ?? ? ?? ??? ?? ???? ???? ?? ????.

?? ???? ?? ?? ? ???? ???? ??? ?????? 2025 ? ?? ??? ? ?? ?? ???? ?? ?? ? ???? ???? ??? ?????? 2025 ? ?? ??? ? ?? Jul 29, 2025 pm 06:36 PM

2025 ?? Stablecoin ??? ???? ? ?? ??? ??? ??? ????. 1. Binance, ???? ??? ? ??? ?? ?, ?? ??? ??? ?? ???? ? ??; 2. OUYI, ??? ?????? ??? ?? ??? ?? OUYI? Web3 ?? ? Defi? ? ?? ??? ?????. 3. CoinmarketCap, ?? ??? ??? StableCoin ??? ?? ?? ??? ??? ? ? ????. 4. ??? ? ??? ??? ?? Coingecko? ?? ?? ? ???? ?? ??? ???? ?? ??? ??? ????. 5. ?? ?? ??? ??? ???? ?? ??? ??? ? ????? Huobi (HTX); 6. Gate.io, ??? ??? ?? ??? ?? ?? ?????, ????? ???? ?????? ? ?? ?????. 7. TRA

Ethena ?? ?? : Stablecoin? ? 3 ??? ?? Ethena ?? ?? : Stablecoin? ? 3 ??? ?? Jul 30, 2025 pm 08:12 PM

?? ?? ????? Battle Royale? ?? ??? ?? ???? ?????. ?? 2023 ? 8 ?, Makerdao ?? ?? ???? ???? ?? $ DAI8%? ??? ?????. ?? ?? Sun Chi? ? 230,000 ??? Steth? ???? Spark? ??? 15% ??? ???? Makerdao? ???? 5%? ????? ?? ?????? ??????. Makerdao? ?? ??? $ DAI? ???? "???"?? ?? ??? ?? Justin Sun? ?? ?????????. 2025 ? 7 ?, Ethe

Binance Treehouse (Tree Coin) ? ?????? ???? ?? ??? ????? ??, ?? ?? ?? ? ?? ?? Binance Treehouse (Tree Coin) ? ?????? ???? ?? ??? ????? ??, ?? ?? ?? ? ?? ?? Jul 30, 2025 pm 10:03 PM

Treehouse (Tree) ? ?????? Treehouse (Tree)? ??? ?????? ?? ??? ?? TETHDOR- ? ??? ?? ?? ?? ?? ??? ?? ???? ?? ?? ? ?? ?? ?? 2025 ??? ?? ?, ??? ? ??? ?? ??? ?? ? ?? ?? ??? ?? Defi? ?? ???? ??? ?? ?? ??? ?? ??? ???? ???, ??? ???? ?? ???? ?? ??? ?????. ??? ?? ??? ?????

?? ?? (ETH) NFT? 7 ? ?? ?? 1 ? 6 ?? ??? ???? ?? ?? ?? ?? (ETH) NFT? 7 ? ?? ?? 1 ? 6 ?? ??? ???? ?? ?? Jul 30, 2025 pm 10:06 PM

?? Crypto Market Panoramic Nugget ???? ?? Vinevine (114.79%, ?? ?? ?? 1 ? 4,400 ? ??) ?? ?? (16.46%, ?? ?? ?? 2 ? 9 ?? ??) Navxnaviprotocol (10.36%, ?? ?? ?? 35.762 ?? ??) ??? NFT ??? ?? NFT ?? ? ??? ??? ?? NFT ?? ? Cryptopunks? Decentralized Prover Network Coundinct?? 1 ?? ??????. Token Tge ? ? ????.

Solana? Base Coin? ????? ??? ?????. ??? ??? '?? ??'? ??? ????. Solana? Base Coin? ????? ??? ?????. ??? ??? '?? ??'? ??? ????. Jul 30, 2025 pm 09:24 PM

"Creator Tokens"? ??? ?? ?? ? ??? ??? ?? ??? ?? ?? ?? ????. Base and Solana? ? ?? ?? ?? ?? Helmsmans? ?? ?? ??? ???? Zora? Pump.fun? ?? ??? ??? ?? ???? ?? ?? ??? ?????. ? ???? ?? ? ??? ???? ????? ?? ???. ??? ???? : Zora? ?? Sterling Crispin? ??? Delcomplex? ??? ? Sterling Crispin? ?? ???? ?? ??? ????? ????. Zora? ?? ??? ?? ?????, ??? ???? ? ??? ?? ?? ??? ???.

? (ZRC ??)?? ?????? ???? ??? ZRC ???? ??, ?? ?? ? ?? ?? ? (ZRC ??)?? ?????? ???? ??? ZRC ???? ??, ?? ?? ? ?? ?? Jul 30, 2025 pm 09:15 PM

???? ?? ?? ????? ????? ?? ?? AI ?? EVM ??? ?? ?? ?? ?? ?? ??? ?? ???? ZRC (ZIRCUIT) ?? (ZRC) ?? ?? ?? ZRC ??? ???? ??? ?? ?? ? ? ??, ETHEREUM (ETHERIM) LAYER1 ????? ???? ???? Layer2 ?? ?? ???? ?? ??? ?? ???? ??, ?? ?? ??? ? ?? ?? ?? ?? ??????. ??? ??? ? ??? ?? ??, ?? ???? ?? ?? ?? ??? ?????.

Binance ?? ??? ???? ??? ?????? ??? ??? Binance ?? ??? ???? ??? ?????? ??? ??? Jul 31, 2025 pm 07:09 PM

Binance ??? ???? ??? ?? ?? IP ??, ???? ??, KYC ?? ??, ?? ??, ?? ??? ?? ? ??? ?? ??? ?? ?????. 1. ???? ???? ???? ?? ???? ?? ?? ??? ??????. 2. ???? ??? ??? ??? ???? ??? ??????. 3. ???? ?? ??? ??? ??????. 4. ???? ??? ????? ??? ??????. 5. ?? ?? ??? ??? ?? ?????? ??????. 6. ?? ? ?? 2FA? ?????, ?????? ? ?? ?? ??? ??? ? ? ????.? ??? 10 ? ??? ??? ???? 90%?? ??? ???? ?? ? ?? ?? ??? ?? ? ? ????.

See all articles