Spring AI 已經發布了好長時間了,目前已經更新到 1.0 版本了,所以身為 Java 程序員的你,如果還對 Spring AI 一點都不了解的話,那就有點太落伍了。
言歸正傳,那什么是 Spring AI?如何快速進行 Spring AI 開發呢?
Spring AI 是 Spring 官方社區項目,旨在簡化 Java AI 應用程序開發,讓 Java 開發者像使用 Spring 開發普通應用一樣開發 AI 應用。
Spring 官方對于 Spring AI 的定義是這樣的:
Spring AI is an application framework for AI engineering. Its goal is to apply to the AI domain Spring ecosystem design principles such as portability and modular design and promote using POJOs as the building blocks of an application to the AI domain.
翻譯一下,Spring AI 是 AI 工程的應用框架。其目標是將 Spring 生態系統設計原則(如可移植性和模塊化設計)應用于 AI,并推廣使用 POJO 作為 AI 領域應用程序的構建塊。
什么意思呢?簡單來說,Spring AI 就是讓 Java 開發者,像開發 Spring 普通應用一樣開發 AI 應用。
注意:Spring AI 不是幫你構建一個大模型,而是讓你方便的對接各種大模型。
Spring AI 官方文檔:https://spring.io/projects/spring-ai
Spring AI 目前可以實現以下功能(后續還會支持更多功能):
Spring AI 支持的大模型有以下這些(后續還會支持更多大模型):
Spring AI 開發步驟主要有以下幾步:
具體操作如下。
首先,先創建一個 Spring Boot 項目(最低 Java 版本為 JDK 17),并添加 AI 模型依賴(以 OpenAI 為例演示),如下圖所示:
OpenAI 至少要配置兩個參數:模型的接口訪問地址和模型的秘鑰信息,如下配置所示:
spring: ai: openai: base-url: https://api.openai.com api-key: sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
如何獲取 OpenAI 的 api-key?
答:可以去某寶,搜索“API Key”花幾毛錢就可以買一個 key,調用上千次。
以 AI 聊天為例,當我們操作 OpenAI 的時候,可以通過 OpenAiChatModel 對象的 call(String msg) 進行聊天功能的實現,具體實現代碼如下:
import jakarta.annotation.Resource;import org.springframework.ai.openai.OpenAiChatModel;import org.springframework.util.StringUtils;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/openai")public class OpenAIController { @Resource private OpenAiChatModel chatModel; // 生成一個普通方法 @RequestMapping("/test") public String test(String msg) { if (!StringUtils.hasLength(msg)) { return "請先輸入信息!"; } return chatModel.call(msg); }}
以上代碼的執行效果如下:
當然,除了聊天功能之外,我們還可以實現生成圖片、音頻和文本的互相轉換等功能,這里就不一一演示了,大家可以去官網查看更多示例代碼:https://docs.spring.io/spring-ai/reference/1.0/api/index.html。
本文鏈接:http://www.tebozhan.com/showinfo-26-93705-0.html面試官:談談對SpringAI的理解?
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 分布式事務的應用場景及解決方案
下一篇: 轉轉回收持久層的架構演進