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

使用Spring AI接入OpenAI,Java開發者快速上手大模型

開發 前端
在本教程中,你學會了如何開始使用Spring AI,還熟悉了特定術語,如Prompt、Role、Message和PromptTemplate。

在本教程中,將學習Spring AI的基本概念,以及如何在項目中實現它。本文將在Spring Boot應用程序中創建一個AI助手,幫助學生練習外語。

一、演示項目

1.1 構想 ??

想象一下,你是一名外語學生,想要練習新詞匯和語法。如果你是自學,可以考慮一個想要描述的情境。例如,我今天早上吃了什么早餐,我昨天做了什么,等等。

然而,反復練習相同的情境可能會感到無聊。單獨思考新的練習對話情境是具有挑戰性的。如果有人開始一個故事供你繼續,這將很有幫助。

假設你剛剛完成了一節關于衣服的課程,想用一個有趣的情境來練習新的詞匯。這就是AI助手的作用所在。它具有豐富的想象力,可以為你編造各種故事供你繼續講下去。?

1.2 技術背景 ??

1.2.1 什么是Spring AI?

Spring AI簡化了集成AI功能的應用程序開發。它為Spring應用程序中的AI模型和服務提供了一系列方便的抽象。

1.2.3 SpringAI的應用場景

Spring AI可以幫助開發聊天機器人,用于自然語言交互、內容生成和總結、數據分析及可視化、圖像識別和自然語言處理。

它擅長為你個性化推薦事物,預測機器可能發生故障的時間以避免問題,并在提高安全性的同時迅速識別欺詐行為。

1.3 項目設置 ??

  1. 在這個演示中將使用Maven,需要以下依賴項。
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
 
   <dependency>
    <groupId>org.springframework.experimental.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
    <version>0.7.1-SNAPSHOT</version>
   </dependency>
 
   <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
   </dependency>

請注意,spring-ai依賴項可以通過Milestones和Snapshots倉庫獲取,將以下內容添加到pom.xml的 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>
  1. 本項目需要一個OpenAI API密鑰。如果你尚未擁有,請按照說明進行操作。

【OpenAI API密鑰】:https://platform.openai.com/api-keys

  1. 生成密鑰后,將其添加到項目中的application.yml中。
spring:
  ai:
    openai.api-key: YOUR_KEY

這就是開始所需的一切,接下來繼續編碼部分。

  1. 創建一個RestController。
@RestController
@RequiredArgsConstructor
public class PromptController {

    private final PromptService promptService;

    @PostMapping("/starter")
    public ResponseEntity<String> generateSentenceStarter(@RequestBody Map<String, String> params) {
        String language = params.get("language");
        String topic = params.get("topic");
        return ResponseEntity.ok(promptService.generateSentences(language, topic));
    }
}

generateSentenceStarter方法通過/starter端點接收傳入的POST請求。學生將提供他們想要練習的主題和所學語言。

  1. 以下是PromptService的代碼。
@Service
@RequiredArgsConstructor
public class PromptService {

    private final AiClient aiClient;

    public String generateSentences(String language, String topic) {
        String userText = """
                 Start a sentence in {language} about this topic {topic} and ask the student to think about continuing the story to practice grammar and new words. 
                 If the sentence is in Japanese,
                 always write back in Hiragana and provide the Romaji equivalent in brackets.
                 Also, translate it into English.
                 """;
        PromptTemplate userPromptTemplate = new PromptTemplate(userText);
        Message userMessage = userPromptTemplate.createMessage(Map.of("language", language, "topic", topic));

        String systemText = """
                You are a helpful AI assistant that helps students in practicing foreign languages. Respond in the style of an encouraging teacher.
                """;
        SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemText);

        Message systemMessage = systemPromptTemplate.createMessage();
        
        Prompt prompt = new Prompt(List.of(userMessage, systemMessage));
        return aiClient.generate(prompt).getGeneration().getText();
    }
}

1.4 基本概念

AiClient是一個抽象接口,用于啟用生成性AI API的使用。目前,它有兩種實現方式:OpenAI和Azure OpenAI。

在Spring AI中,Prompt告訴AI要生成什么輸出。

PromptTemplate使用模型對象來填充模板中的占位符。我們將渲染的字符串作為提示提供給AI模型。

Roles指的是提示中的特定部分,它們在制作最終回復時發揮著不同的功能。這些角色有助于構建提供給人工智能模型的信息結構,使輸出結果更有針對性和意義。

AI提示中的角色介紹如下。

  • 系統角色:通過設置解釋和響應風格規則來引導AI的行為。
  • 用戶角色:代表用戶的輸入,形成AI響應的基礎。
  • 助手角色:AI的響應保持對話的流暢性和上下文。
  • 功能角色:專注于特定任務,例如計算或數據提取,超出對話范圍在需要時提供實際幫助。

Message接口的不同實現方式與AI模型可以處理的消息類別相一致。消息類別根據模型中的對話角色進行區分。這一區分通過MessageType實現。

以上是理論部分。接下來測試一下應用程序。

二、測試應用程序??

啟動應用程序,并使用curl發送帶有類似參數的POST請求。

curl -X POST -H "Content-Type: application/json" -d '{"language": "japanese", "topic": "clothes"}' http://localhost:8080/starter

以下是生成的響應。

あなたは明日友達とショッピングに行く予定です。何を著て行く予定ですか?
(Anata wa ashita tomodachi to shoppingu ni iku yotei desu. Nani o kite iku yotei desu ka?)
Translation: You are planning to go shopping with your friend tomorrow. What are you planning to wear?

這個回應看起來是正確的,這是一個很好的句子開頭。

接下來再嘗試另一個角色。這次,學生希望對他們的文本提供反饋。

在PromptService中添加以下這種方法。

public String provideFeedback(String userText) {
        Message userMessage = new UserMessage("Is this sentence correct: " + userText);

        String instructions = """
                You are a helpful AI assistant that helps students in practicing foreign languages.
                You should provide feedback to the students to correct the grammar and make the sentence in the foreign language sound native.
                Check and correct the user text {text}. Tell the student if the sentence is correct. If the sentence is in Japanese,
                always write back in Hiragana and provide the Romaji equivalent in brackets.
                """;
        AssistantPromptTemplate assistantPromptTemplate = new AssistantPromptTemplate(instructions);
        Message assistantPromptTemplateMessage = assistantPromptTemplate.createMessage(Map.of("text", userText));

        Prompt prompt = new Prompt(List.of(userMessage, assistantPromptTemplateMessage));
        return aiClient.generate(prompt).getGeneration().getText();
    }

如你所見,它使用了助手角色。

將新端點添加到RestController中。

@PostMapping("/feedback")
        public ResponseEntity<String> provideFeedback(@RequestBody Map<String, String> params) {
            String text = params.get("text");
            return ResponseEntity.ok(promptService.provideFeedback(text));
        }

應用程序將監聽/feedback端點,并將學生的文本發送給AI助手。它將返回更正后的答案。

接下來嘗試一下。

curl -X POST -H "Content-Type: application/json" -d '{"text": "Kirei dzubon o kaimashita. Murasakiiro no sukaato mo kaimashita. Kono sukaato wa kirei da ga takai desu."}' http://localhost:8080/feedback

以下是AI的回復。

The sentence you provided is mostly correct. Here is the corrected version:

きれいなズボンを買いました。紫色のスカートも買いました。このスカートはきれいだが高いです。
(Kirei na zubon o kaimashita. Murasakiiro no sukāto mo kaimashita. Kono sukāto wa kirei da ga takai desu.)

Translation: I bought a nice pair of pants. I also bought a purple skirt. This skirt is beautiful, but expensive.

Well done! Your sentence is grammatically correct and the vocabulary usage is appropriate. Keep up the good work!

它理解了我想要表達的意思,還糾正了我的錯誤。這令人印象深刻!

但當然,我們應該謹慎對待反饋,因為AI可能會出錯。始終仔細檢查答案是個好主意。

三、結論

在本教程中,你學會了如何開始使用Spring AI,還熟悉了特定術語,如Prompt、Role、Message和PromptTemplate。

現在,你可以根據自己的需求使用Spring AI創建自己的應用程序。本文示例項目的完整代碼可以在以下GitHub倉庫中找到。

四、參考資料

  • 【Spring AI API文檔】:https://docs.spring.io/spring-ai/reference/api/
  • 【GitHub倉庫】:https://github.com/kirshiyin89/spring-ai-demo/tree/main
責任編輯:武曉燕 來源: Java學研大本營
相關推薦

2023-03-08 12:43:44

微軟AI

2023-11-08 07:55:48

2023-06-25 15:04:09

2023-10-12 10:12:28

OpenAIAI 模型

2024-06-25 12:40:10

2025-09-05 09:05:00

2025-01-15 07:55:30

2024-02-27 07:22:45

DriftAI應用

2024-11-12 13:41:49

2024-12-20 13:01:03

2024-10-25 19:32:58

ChatGPT

2023-05-19 14:01:47

AI模型

2024-07-05 11:34:07

2024-07-08 10:51:16

2024-01-23 18:53:04

PostgreSQL關系數據庫

2025-02-03 15:43:19

2023-12-07 09:12:46

IDEA開發工具
點贊
收藏

51CTO技術棧公眾號

久久久久久国产精品视频 | 久久av秘一区二区三区| 免费在线观看av的网站| 91精品国产乱码久久久久久| 欧美一区二区网站| 成 年 人 黄 色 大 片大 全| 国产在线你懂得| 国产乱子伦视频一区二区三区 | 久久成人在线视频| 日韩www视频| 3d动漫一区二区三区在线观看| 亚洲高清免费观看| 亚洲最大免费| 天天干天天草天天射| 麻豆精品新av中文字幕| 久久久伊人日本| 精品视频第一页| 午夜欧洲一区| 日韩女同互慰一区二区| 天堂av在线网站| 91美女精品| 亚洲乱码日产精品bd| 欧美精品与人动性物交免费看| 亚洲欧美国产不卡| 任我爽在线视频| 神马久久影院| 精品日韩欧美在线| 潘金莲激情呻吟欲求不满视频| 狼人综合视频| 一区二区三区四区亚洲| 亚洲一区二区不卡视频| 欧美视频免费一区二区三区| 国产电影一区在线| 91网站在线看| 日本妇乱大交xxxxx| 亚洲影视综合| 午夜伦理精品一区| 午夜写真片福利电影网| 日韩成人综合| 在线视频亚洲欧美| 熟女少妇一区二区三区| 国产成人高清精品免费5388| 337p亚洲精品色噜噜狠狠| 国产又黄又猛视频| 久久uomeier| 精品国产户外野外| 久久精品视频16| 黄色小说在线播放| 亚洲一区二区三区中文字幕在线| 国产av不卡一区二区| 天天在线视频色| 国产精品第一页第二页第三页| 日韩av不卡在线播放| 黄色在线播放| 久久久久国产精品厨房| 欧美精品免费观看二区| 亚洲色大成网站www| 91尤物视频在线观看| 欧美日精品一区视频| 国产精品wwwwww| 国产免费av一区| 乱人伦精品视频在线观看| 91成人国产在线观看| 日韩av在线天堂| 亚洲精品欧洲| 欧美做受高潮1| 日韩在线播放中文字幕| 羞羞视频在线观看欧美| 日本国产一区二区三区| 欧美brazzers| 久久狠狠亚洲综合| 97久久人人超碰caoprom欧美| 精品国产区一区二| 丁香激情综合五月| 国产一区二区三区高清| 色中色在线视频| 久久久久久97三级| 亚洲一区二三| 怡红院av在线| 红桃av永久久久| 国产精品wwwww| 丁香激情五月少妇| 成人自拍av| 欧美人妖巨大在线| 精品人妻一区二区三区免费| 久久超级碰碰| 一区二区三区 在线观看视| 99自拍偷拍视频| 99精品视频在线观看播放| 欧美成人免费全部观看天天性色| 国产第一页第二页| 视频在线在亚洲| 国产在线观看精品一区二区三区| 国内精品久久久久久久久久久| 播五月开心婷婷综合| 日韩av大全| 青草影视电视剧免费播放在线观看| 亚洲r级在线视频| 熟女人妇 成熟妇女系列视频| 亚洲人成777| 日韩av在线免费看| 91免费在线看片| 影音先锋一区| 国产精品爽黄69| 老司机午夜福利视频| 久久久青草青青国产亚洲免观| 中文字幕欧美人与畜| 国内激情视频在线观看| 欧美日韩一级黄| 熟女人妻在线视频| 亚洲高清影视| 国产成+人+综合+亚洲欧美丁香花| 国产美女www爽爽爽视频| 99天天综合性| 欧美大片免费播放| 成人不卡视频| 国产日产一区| 亚洲网址你懂得| 美女视频黄免费| 日韩av中文在线观看| 国产精品一区二区三区免费观看 | 91麻豆国产香蕉久久精品| 一区二区三区的久久的视频| 欧美男人天堂| 日韩午夜av电影| 日本人亚洲人jjzzjjz| 亚洲精品专区| 亚洲999一在线观看www| www视频在线观看免费| 亚洲成a天堂v人片| 中国黄色片一级| 精品不卡一区| 国产91ⅴ在线精品免费观看| 国产夫妻自拍av| 日韩一区日韩二区| 激情五月婷婷久久| 自拍欧美一区| 欧美一级淫片aaaaaaa视频| 国产黄色一区二区| 亚洲欧美日韩国产综合| 一本岛在线视频| 精品亚洲成人| 国产成人久久精品| 免费国产在线视频| 欧美性xxxx在线播放| 成年女人免费视频| 亚洲视频高清| 国产成人av一区二区三区| 成人看av片| 日韩美女一区二区三区四区| 免费在线观看h片| 国产中文一区二区三区| 日韩第一页在线观看| 开心久久婷婷综合中文字幕 | av在线下载| 91精品福利在线一区二区三区 | 91久久综合亚洲鲁鲁五月天| 337p日本欧洲亚洲大胆鲁鲁| 欧美性大战久久| 国产毛片欧美毛片久久久| 日本最新不卡在线| 色综合久久久久久久久五月| 91p九色成人| 在线视频日本亚洲性| 一区二区国产欧美| 亚洲欧美二区三区| 免费看三级黄色片| 在线欧美视频| 免费毛片一区二区三区久久久| 欧美大片免费高清观看| 中文字幕亚洲第一| 91青青草免费观看| 少妇人妻一区二区| 精品免费在线观看| 欧美做受xxxxxⅹ性视频| 老司机精品久久| 亚洲精品高清视频| 国产精久久久| 韩国精品久久久999| 免费国产在线视频| 911精品国产一区二区在线| 四虎精品免费视频| 成人黄色在线视频| 欧美激情国产精品日韩| 红桃视频在线观看一区二区| 国产欧美日韩中文字幕在线| 欧洲性视频在线播放| 日韩精品亚洲视频| 伊人网综合在线| 亚洲一区二区三区四区在线 | 国产精品三级视频| 日本高清免费观看| 国产精品一卡| 超碰免费在线公开| 精品深夜福利视频| 国产欧美在线看| h片在线观看| 中文字幕亚洲无线码a| 精品久久久中文字幕人妻| 欧美日韩在线另类| 中文字幕在线观看2018| 91一区一区三区| 午夜视频在线观| 亚洲男女自偷自拍| 在线观看18视频网站| 亚洲尤物av| y111111国产精品久久婷婷| 欧美大片免费| 欧美激情视频一区| 最新97超碰在线| 日韩av在线网站| 国产ts人妖调教重口男| 在线免费观看视频一区| 久久久久久久久艹| 国产精品毛片久久久久久| 少妇一级淫片免费放播放| 久久99精品网久久| 黄色免费视频大全| 午夜久久99| 国产精品久久久久天堂| 天天爽人人爽夜夜爽| 亚洲激情精品| 亚洲小视频在线播放| 国产尤物久久久| 国产在线播放一区二区| 豆花视频一区| 国产精品视频26uuu| 中文在线8资源库| 欧美激情欧美激情| huan性巨大欧美| 最近2019好看的中文字幕免费| 天天射,天天干| 精品少妇一区二区三区日产乱码| 亚洲一区二区色| 91国偷自产一区二区开放时间| 日本少妇毛茸茸高潮| 亚洲一线二线三线久久久| 在线观看黄网址| 国产精品入口麻豆原神| 欧美成人另类视频| 国产拍揄自揄精品视频麻豆| 日本aaa视频| www久久精品| 青青草视频成人| 91网站在线观看视频| 韩国av中国字幕| 成人激情小说网站| 91丝袜在线观看| 99riav一区二区三区| 亚洲精品在线视频免费观看| 成人免费不卡视频| 国产麻豆剧传媒精品国产av| 国产福利一区二区三区视频在线| www.亚洲自拍| 国产精品一区二区在线观看不卡| 国产无遮挡猛进猛出免费软件| 久久精品二区亚洲w码| www.亚洲高清| 激情都市一区二区| av在线网站免费观看| 国产成人精品一区二区三区四区| 一区二区在线免费观看视频| 粉嫩欧美一区二区三区高清影视| 日韩大尺度视频| av男人天堂一区| 久久久精品人妻无码专区| 国产亚洲精品超碰| 国产人与禽zoz0性伦| 亚洲精品视频免费观看| 久久久久久久久艹| 婷婷亚洲久悠悠色悠在线播放| 91成人免费观看网站| 欧美激情二区| 欧美日韩成人网| 华人av在线| 国产精品91久久久久久| 亚洲精品66| 岛国一区二区三区高清视频| 丝袜美腿综合| 亚洲精品在线免费| 亚洲一区二区三区| 国产伦精品一区二区三区四区视频_| 国产日产高清欧美一区二区三区| 欧美色图另类小说| 久久91精品久久久久久秒播| 日本一区二区免费视频| 久久在线观看免费| 麻豆网址在线观看| 天天亚洲美女在线视频| 无码人妻av一区二区三区波多野| 欧美男男青年gay1069videost| 亚洲产国偷v产偷v自拍涩爱| 亚洲另类激情图| 成人区精品一区二区不卡| 97超级碰碰碰久久久| 欧美一级网址| 精品一区日韩成人| 久久精品国产99久久| 精品人妻少妇一区二区| 日本在线播放一区二区三区| 免费看91视频| 欧美国产一区在线| 91香蕉在线视频| 欧美高清视频在线高清观看mv色露露十八| 国产成人免费看一级大黄| 亚洲欧美日本精品| 污视频在线免费观看网站| 国产精品av在线播放| 日韩在线亚洲| 日韩av电影免费在线观看| 尹人成人综合网| 五月天激情播播| 久久精品夜色噜噜亚洲a∨ | 亚洲综合精品自拍| 国产在线观看第一页| 亚洲第一页在线| 国产成人在线视频免费观看| 国产va免费精品高清在线观看| 日韩三级网址| 先锋影音日韩| 久久电影一区| 任你躁av一区二区三区| 国产精品久久看| 欧美日韩一级黄色片| 亚洲国产精品va在线| 成人ww免费完整版在线观看| 日本一区二区在线播放| 国产精品超碰| 日本免费a视频| 国产老肥熟一区二区三区| 妖精视频在线观看免费| 日韩欧美亚洲成人| 香蕉视频网站在线| 久久久久久久久久久国产| 国产精品一区二区美女视频免费看 | 国产农村妇女毛片精品| 精品综合久久久久久8888| 91美女片黄在线观看游戏| 欧美午夜精彩| 欧美私人情侣网站| 2021久久国产精品不只是精品| 国产精品99re| 精品国产免费视频| 在线视频中文字幕第一页| 91九色国产视频| 中文字幕一区二区三区久久网站| jizz欧美性11| 国产精品久久毛片| 国产一区二区自拍视频| 日韩视频免费大全中文字幕| 欧美视频在线视频精品| 亚洲欧美日韩精品综合在线观看| 毛片av一区二区| 久久久99999| 欧美一区二区三区四区久久 | 久久久久久久久久久免费精品| 欧美激情精品| www插插插无码免费视频网站| 国产成人综合视频| 国产无码精品久久久| 日韩av中文字幕在线免费观看| 国产v日韩v欧美v| 久久影视中文粉嫩av| 久久精品91| 99久久久无码国产精品不卡| 在线播放一区二区三区| av网址在线免费观看| 99re视频| 国产一区二区三区的电影| 男生草女生视频| 欧美另类videos死尸| av毛片在线播放| 好吊妞www.84com只有这里才有精品| 国产亚洲激情| 国产视频不卡在线| 欧美一区二区黄色| 91白丝在线| 丝袜美腿玉足3d专区一区| 激情综合色综合久久综合| 国产一级中文字幕| 国产嫩草影院久久久久| 亚洲一区二区在线视频观看| 国产精品国产三级国产a| 亚洲va久久久噜噜噜无码久久| 51久久精品夜色国产麻豆| 青青草成人影院| 91九色蝌蚪porny| 91黄视频在线| 超碰porn在线| 久久久久久国产精品免费免费| 三级欧美在线一区| 加勒比婷婷色综合久久| 日韩精品中文字幕视频在线| 国产精品久久久久久久久久齐齐| www.国产亚洲| 久久久精品欧美丰满| 亚洲av无码国产综合专区| 国产成人综合亚洲| 激情久久五月| 日韩三级久久久|