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