Java 離AI還是太遠了,這兩個Spring AI 框架能稍微接近一下
自從AI火起來之后,大模型一個接一個的出現,所有的語言、工具、產品似乎都能蹭一蹭大模型的熱度。
很多大模型都是 Python 實現的,假設你要玩一玩各種問答模型、文生圖模型、文字轉語音模型,你會發現基本上都是以 Python 為入口的。
還有很多技術博主發表「在AI的幫助下,2小時上線xxx付費產品,MRR xx 千刀」諸如此類的消息,一看背后的技術 JavaScript 一把梭,前端 js ,后端 nodejs 。
還有說:在大模型的幫助下,簡單的代碼可以由AI快速時間,省下的時間可以做性能優化,那些性能查的工具鏈、客戶端可以由性能更好的 Rust 來重寫了,這不,Rust 也算蹭上了。
最近,看到有開發者用 Claude.ai 設計個人簡歷和社交名片,一看開發者是某 Lisp 大佬,而且 prompt 也是用 Lisp 格式寫的偽代碼,格式確實很清晰。有評論稱,原來 Lisp 才是 AI Prompt 的最終歸宿。
而 Java 這邊呢,好像就是一堆簡單的邏輯代碼,貌似只有等著被替代的份兒了。
當然了,在目前看來,這肯定還算是危言聳聽,哪兒那么容易輕易就被替代,對吧?
國外和國內兩大 Java 技術推動者都推出 Spring AI 框架,分別是 Spring 社區的 Spring-ai 和 阿里巴巴的 Spring AI Alibaba,這兩個框架都是為了方便開發者在 AI 場景下的開發。
雖然做不了AI 的核心,但是也要搶占入口不是。
Spring-ai
官方倉庫:https://github.com/spring-projects/spring-ai
Spring 社區出品,目前 star 數2.9k。
Spring AI 是一個人工智能工程應用框架,旨在將 Spring 生態系統的設計原則如可移植性和模塊化設計應用于人工智能領域,推動以 POJOs 作為應用構建塊。它支持多種 AI 模型提供商的聊天、文本轉圖像和嵌入模型,具有可移植的 API、新穎的向量存儲 API、自動配置和啟動器、函數調用功能、ETL 數據工程框架以及豐富的文檔和示例。
圖片
支持眾多 AI 提供商的聊天、文本轉圖像和嵌入模型,包括 Amazon Bedrock、Anthropic、OpenAI 等。還支持訪問數千個模型,如 HuggingFace 上的模型。
如果你看過 OpenAI 的官方文檔,會發現它有問答、文生圖、文字轉語音等等各種各樣的上百個接口。其他的模型也差不多是這個數量,如果一個應用要接入多個 AI 模型,光實現接口就得花上很多時間。有了 Spring AI ,相當于幫我們封裝了一層,只要配置上參數后,就可以用統一的標準調用各個大模型了。
如果你的產品是選用 Java 技術棧的,并且要做出海的話,選擇 Spring AI 能節省不少時間。
Spring AI Alibaba
官方倉庫:https://github.com/alibaba/spring-ai-alibaba
這是阿里剛剛發布的,是一款 Java 語言實現的 AI 應用開發框架,旨在簡化 Java AI 應用程序開發,讓 Java 開發者像使用 Spring 開發普通應用一樣開發 AI 應用。Spring AI Alibaba 基于 Spring AI 開源項目構建,默認提供阿里云基礎模型服務、開源及商業生態組件的集成與最佳實踐。
圖片
核心能力如下:
- 開發復雜 AI 應用的高階抽象 Fluent API -- ChatClient
- 提供多種大模型服務對接能力,包括主流開源與阿里云通義大模型服務(百煉)等
- 支持的模型類型包括聊天、文生圖、音頻轉錄、文生語音等
- 支持同步和流式 API,在保持應用層 API 不變的情況下支持靈活切換底層模型服務,支持特定模型的定制化能力(參數傳遞)
- 支持 Structured Output,即將 AI 模型輸出映射到 POJOs
- 支持矢量數據庫存儲與檢索
- 支持函數調用 Function Calling
- 支持構建 AI Agent 所需要的工具調用和對話內存記憶能力
- 支持 RAG 開發模式,包括離線文檔處理如 DocumentReader、Splitter、Embedding、VectorStore 等,支持 Retrieve 檢索
如果你的AI產品是 Java 技術棧,而且采用國內大模型的,尤其是使用阿里通義千問的,使用Spring AI Alibaba可以節省不少時間。