精品欧美一区二区三区在线观看 _久久久久国色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色综合久久天堂av色综合在| 精品一区二区免费视频| 久久av在线看| 日本在线不卡一区二区| 碰碰在线视频| 国产日韩精品视频一区| 国产免费一区二区三区在线观看 | 黄色录像一级片| 日韩精品一区二区三区中文在线 | 青青草免费av| 99ri日韩精品视频| 日韩欧美在线一区| 亚洲欧美日韩精品久久久| 99久久亚洲精品日本无码| 欧美涩涩网站| 亚洲一级黄色片| 亚洲一区二区福利视频| 97天天综合网| 国产日韩av一区| 亚洲一区二区日本| 国产精品久久久久久久久久久久久久久久久 | 亚洲精品不卡| 国产裸体美女永久免费无遮挡| 亚洲电影影音先锋| 精品无人区乱码1区2区3区在线| 日本成人黄色网| 在线观看a级片| 国产亚洲精品福利| 成人免费在线看片| 国产成人麻豆免费观看| 国产精品啊啊啊| 伊人一区二区三区久久精品| 精品人妻人人做人人爽夜夜爽| 三级在线观看视频| 亚洲欧美日韩系列| 欧洲一区二区在线| 人妻一区二区三区四区| 韩国女主播成人在线观看| 538国产精品一区二区在线| 美女三级黄色片| 九九视频免费观看视频精品| 日韩你懂的在线播放| 网站一区二区三区| 校园春色亚洲| 亚洲激情一二三区| 一区二区三区国产福利| 日韩精品系列| 国产一区二区三区不卡在线观看| 日本欧美黄网站| 欧美亚洲天堂网| 一精品久久久| 久久激情五月丁香伊人| 亚洲一区视频在线播放| 日韩精品社区| 欧美精品一区二区不卡| 男男受被啪到高潮自述| 91成人短视频在线观看| 精品视频在线免费| 青青草原av在线播放| 都市激情国产精品| 一区二区三区高清| 亚洲一区 在线播放| 黄色在线免费看| 久久综合视频网| 国产亚洲福利社区| 免费的黄色av| 成人美女视频在线观看18| 国产精品尤物福利片在线观看| 欧美日韩a v| 蜜桃视频一区二区三区| 国产精品丝袜白浆摸在线 | 精品推荐蜜桃传媒| 91啦中文在线观看| 久久99国产精品99久久| 天堂在线中文字幕| 久久久久99精品国产片| 青青草原亚洲| 免费大片在线观看www| 国产亚洲欧美在线| 亚洲日本精品| 影音先锋在线视频| 夜夜嗨av一区二区三区网页| 香蕉精品视频在线| 污视频网站免费在线观看| 一区二区三区不卡在线观看 | 国产亚洲激情| 国产成人一区二区三区| 男女视频免费看| 午夜亚洲福利在线老司机| 国产成人激情视频| 国产又黄又大又爽| 丁香婷婷深情五月亚洲| 蜜桃网站成人| 天堂аⅴ在线地址8| 1024精品合集| 成人在线观看毛片| а√天堂8资源在线| 欧美午夜宅男影院在线观看| 91网址在线播放| 精品视频在线观看免费观看| 日韩欧美一二区| 亚州av综合色区无码一区| 免费av一区| 精品国产一区二区三区久久狼黑人| 国产午夜手机精彩视频| 激情久久一区| 国产精品久久久久久久久久东京| 国产免费一区二区三区最新不卡| 国产乱码精品一品二品| 九色视频成人porny| 888av在线| 亚洲一级片在线观看| 99久久久无码国产精品6| 福利精品在线| 亚洲福利视频二区| 懂色av蜜臀av粉嫩av永久| 欧美日韩三区| 国产欧美va欧美va香蕉在| 国产激情无套内精对白视频| 久久久国际精品| 欧美日韩午夜爽爽| 亚洲一区二区三区四区| 精品国产凹凸成av人导航| 亚洲国产av一区| 国产精品99免费看| 国产精品久久久久91| 懂色av一区二区三区四区| 久久久久久久久99精品| 亚洲精品久久久久久久蜜桃臀| 亚洲四虎影院| 日韩国产激情在线| 麻豆changesxxx国产| 免费成人在线观看视频| 久久久久久久久久久久久久一区 | 国产一区二区黑人欧美xxxx| 久久综合综合久久| 久久精品国产一区二区| 久久久久久亚洲精品不卡4k岛国 | 成人免费高清视频| 日韩免费中文专区| 91九色porn在线资源| 欧美一区二区日韩| 成人一级黄色大片| 奇米四色…亚洲| 成人欧美一区二区| 中文国产字幕在线观看| 欧美女孩性生活视频| 亚洲ⅴ国产v天堂a无码二区| 在线 亚洲欧美在线综合一区| 91精品在线播放| 69久久久久| 欧美系列亚洲系列| 亚洲精品乱码久久久久久久久久久久 | 97人人澡人人爽91综合色| 中文字幕在线国产精品| 日韩人妻精品中文字幕| 99九九99九九九视频精品| 国产成人一区二区三区别| 久久99久久久精品欧美| 一二美女精品欧洲| 日本一本在线观看| 国产丝袜美腿一区二区三区| 成人毛片视频网站| 欧美日日夜夜| 欧美重口另类videos人妖| 亚洲成人777777| 亚洲线精品一区二区三区| 亚洲午夜精品在线观看| 午夜精品毛片| 91久久久在线| 在线三级中文| 欧美成人乱码一区二区三区| 久久97人妻无码一区二区三区| 国产精品18久久久久久久久| wwwwww欧美| 女仆av观看一区| 97精品久久久中文字幕免费| 无码精品黑人一区二区三区| 亚洲成a人v欧美综合天堂| 91视频啊啊啊| 日韩国产欧美在线视频| 亚洲欧美国产不卡| 精品中文字幕一区二区三区四区| 美女啪啪无遮挡免费久久网站| 国产夫妻自拍av| 亚洲va欧美va人人爽| 亚洲国产综合视频| 日韩国产在线观看| 黄瓜视频免费观看在线观看www| 国产精品777777在线播放| 久久精彩免费视频| 免费观看黄色av| 欧美在线视频不卡| 日韩欧美国产成人精品免费| jizz一区二区| 男女视频一区二区三区| 日韩欧美高清在线播放| 91传媒视频免费| 日本不卡网站| 色哟哟网站入口亚洲精品| 精品国自产拍在线观看| 黄色成人av网| 黄大色黄女片18免费| 国产精品自拍网站| 中国丰满人妻videoshd| 国产在视频线精品视频www666| 成人a在线观看| 白浆在线视频| 中文字幕九色91在线| 精品人妻伦一区二区三区久久| 欧美视频在线观看免费网址| 很污很黄的网站| xnxx国产精品| 欧美污在线观看| 亚洲小说区图片区| 亚洲国产一区二区精品视频| 国产+成+人+亚洲欧洲在线 | 曰本一区二区| 性亚洲最疯狂xxxx高清| 国产精品无码2021在线观看| 欧美成人精品二区三区99精品| 一区二区三区福利视频| 亚洲婷婷在线视频| 91中文字幕永久在线| 国产98色在线|日韩| 日本888xxxx| 国产精品婷婷| 成年人视频网站免费| 欧美激情黄色片| 欧美在线日韩精品| 国内毛片久久| av一区和二区| 日韩高清成人| 日韩免费高清在线观看| 超碰97免费在线| 久久在线免费观看视频| av片在线看| 精品一区精品二区| 欧美一级一区二区三区| 日韩欧美电影在线| 亚洲精品国产一区二| 日韩精品中午字幕| 亚洲国产日韩在线观看| 欧美成人激情免费网| 亚洲福利在线观看视频| 欧美va在线播放| 欧美 日韩 国产 成人 在线| 亚洲国产精品va在线看黑人动漫| 日本人妻丰满熟妇久久久久久| 亚洲成人av在线| 少妇高潮久久久| 精品一区电影国产| av片在线免费观看| 欧美精品在线观看91| 日本乱理伦在线| 91av在线影院| 亚洲天堂导航| 国产精品入口夜色视频大尺度| 久久69成人| 国产91精品入口17c| 欧美亚洲国产日韩| 午夜午夜精品一区二区三区文| 三区四区不卡| 国产黄色激情视频| 亚洲欧美高清| 精品亚洲视频在线| 丁香另类激情小说| 国产美女免费无遮挡| 国产精品成人网| 国产一级片免费| 日韩欧美亚洲综合| 国产三级按摩推拿按摩| 欧美精品一区二区三区蜜臀| 日本不卡视频一区二区| 色爱精品视频一区| 大香伊人久久| 国产精品久久久久久久久久免费 | 国产树林野战在线播放| 亚洲高清在线| 特级丰满少妇一级| 成人免费黄色大片| 国产1区2区在线观看| 亚洲黄一区二区三区| 日韩熟女一区二区| 日韩视频一区二区| 国产区视频在线播放| 欧美另类极品videosbest最新版本| 女海盗2成人h版中文字幕| 成人免费激情视频| 视频福利一区| 久久视频免费在线| 日韩电影在线免费| 大桥未久恸哭の女教师| 中文字幕一区二区三区不卡在线| 国产精品suv一区二区| 欧美日韩一区二区在线观看视频 | 久久久精品视频在线观看| 欧产日产国产精品视频| 91人人爽人人爽人人精88v| 亚洲国产最新| 免费网站永久免费观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 污污免费在线观看| 中文字幕一区视频| 无码久久精品国产亚洲av影片| 欧美xingq一区二区| 日本网站在线免费观看视频| 2019中文在线观看| 97久久综合区小说区图片区| 色呦呦网站入口| 日韩中文欧美在线| 添女人荫蒂视频| 亚洲在线视频一区| 国产免费av电影| 中文字幕亚洲激情| 忘忧草在线www成人影院| 精品久久一区二区三区蜜桃| 亚洲精品小说| 玖玖爱视频在线| 欧美国产激情一区二区三区蜜月| 男人的天堂一区二区| 欧美成人一级视频| 在线视频观看国产| 91免费的视频在线播放| 久久视频在线| xx欧美撒尿嘘撒尿xx| 国产亲近乱来精品视频 | 成人影院在线视频| 国产精华一区二区三区| 欧美国产三级| 亚洲熟女乱综合一区二区| 亚洲欧美日韩系列| 精品国产无码一区二区三区| 日韩亚洲欧美中文在线| 久久人体av| 中文字幕日韩精品一区二区| 久久国产精品无码网站| 黄色录像免费观看| 欧美一卡二卡在线观看| 99福利在线| 鬼打鬼之黄金道士1992林正英| 一区二区视频欧美| 亚洲自拍偷拍精品| 亚洲成人av电影| 手机看片1024日韩| 清纯唯美亚洲激情| 精品国产a一区二区三区v免费| 欧美 国产 小说 另类| 国产亚洲污的网站| 中文字幕在线日亚洲9| 精品国产一区二区在线| 国产一区二区三区| 免费网站永久免费观看| 91在线看国产| 无码人妻精品一区二区蜜桃色欲| 国产一区二区三区毛片| 91精品麻豆| 人妻无码一区二区三区四区| 不卡一区二区三区四区| 免费看毛片网站| 中文国产亚洲喷潮| 9999精品| 国产毛片视频网站| 国产亚洲一二三区| 国产精品国产三级国产aⅴ| 乱亲女秽乱长久久久| 北条麻妃一区二区三区在线观看| 男人日女人逼逼| 欧美国产精品中文字幕| 国产成人av免费看| 亚州成人av在线| 国产伦一区二区三区| 午夜一级免费视频| 午夜一区二区三区在线观看| 国产日韩精品在线看| 亚洲精品日韩激情在线电影| 夜夜嗨一区二区三区| 亚洲天堂最新地址| 欧美va亚洲va香蕉在线| 亚洲一区二区三区四区| 亚洲国产精品女人| 91女神在线视频| 国产一区二区三区四区视频| 海角国产乱辈乱精品视频| 欧美伦理在线视频| 免费啪视频在线观看| 欧洲亚洲国产日韩| 污污网站在线观看| 久久综合一区| 国产精品一区三区| 无码人妻av免费一区二区三区 | 国产精品亚洲综合在线观看| 成年人深夜视频| 久久久国产午夜精品| 亚洲精品97久久中文字幕无码| 国产成人免费av|