騰訊面試:談談對SpringAI的理解?

磊哥課程 2024-06-14 12:57:25

Spring AI 已經發布了好長時間了,目前已經更新到 1.0 版本了,所以身爲 Java 程序員的你,如果還對 Spring AI 一點都不了解的話,那就有點太落伍了。

言歸正傳,那什麽是 Spring AI?如何快速進行 Spring AI 開發呢?

1.什麽是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

2.Spring AI有什麽功能?

Spring AI 目前可以實現以下功能(後續還會支持更多功能):

智能聊天文本轉圖片音頻和文本互轉

Spring AI 支持的大模型有以下這些(後續還會支持更多大模型):

3.Spring AI快速上手

Spring AI 開發步驟主要有以下幾步:

創建 Spring Boot 項目,並添加模型依賴;配置模型的連接地址和秘鑰;使用模型提供的對象和方法,實現功能調用。

具體操作如下。

3.1 添加模型依賴

首先,先創建一個 Spring Boot 項目(最低 Java 版本爲 JDK 17),並添加 AI 模型依賴(以 OpenAI 爲例演示),如下圖所示:

3.2 配置模型參數

OpenAI 至少要配置兩個參數:模型的接口訪問地址和模型的秘鑰信息,如下配置所示:

spring: ai: openai: base-url: https://api.openai.com api-key: sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

如何獲取 OpenAI 的 api-key?

答:可以去某寶,搜索“API Key”花幾毛錢就可以買一個 key,調用上千次。

3.3 調用模型方法

以 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 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

課後思考

Spring AI 能對接國內的大模型嗎?實現的手段都有哪些?

本文已收錄到我的面試小站 [www.javacn.site](https://www.javacn.site),其中包含的內容有:Redis、JVM、並發、並發、MySQL、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、設計模式、消息隊列等模塊。

0 阅读:4

磊哥課程

簡介:感謝大家的關注