成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LangChain4j比SpringAI強在哪?一文讀懂

人工智能
LangChain4j 和 Spring AI 的功能是比較類似的,甚至兩者可以配合使用,例如使用 Spring AI 實現 MCP 服務器端,再使用 LangChain4j 實現 MCP 客戶端調用 Spring AI,二者可以無縫對接。那二者的區別是啥呢?

LangChain4j 和 Spring AI 是 Java 生態中實現大模型應用開發的兩個最重要的框架,但二者的區別是啥?生產級別又該使用哪種框架?令很多人犯了難,所以本文就來淺聊一下,希望給大家在技術選型時有一個簡單的參考。

1.功能對比

LangChain4j 和 Spring AI 的功能是比較類似的,甚至兩者可以配合使用,例如使用 Spring AI 實現 MCP 服務器端,再使用 LangChain4j 實現 MCP 客戶端調用 Spring AI,二者可以無縫對接。那二者的區別是啥呢?

總體來說,LangChain4j 提供的功能更多,例如實現 RAG 功能時,LangChain4j 提供了三種模式:

  • 簡單模式
  • 原生模式
  • 高級模式

在后兩種模式實現時提供了:

  • 文本加載器。
  • 文檔解析器,可以實現多種文本格式的自動解析,例如PDF、DOC、TXT、MD、HTML 等格式的自動解析。
  • 文本轉換器
  • 文本分割器

每個細節和模塊的職責都定義的很清楚,所以實現復雜功能和生產級別業務時更推薦使用 LangChain4j

2.使用和學習成本

LangChain4j 的使用和學習成本比 Spring AI 高很多,舉個例子,例如 Spring AI 要實現流式對話,只需要一行代碼就搞定了:

@RequestMapping(value = "/streamChat", produces = "text/event-stream")
public Flux<String> streamChat(@RequestParam(value = "msg") String msg) {
    return chatModel.stream(msg);
}

而 LangChain4j 實現步驟如下:

  • 添加 langchain4j-reactor 依賴。
  • 設置配置文件,配置 streaming-chat-model api-key 和 model-name。
  • 創建 AI Service 并返回 Flux 對象。
  • 調用 Ai Service 才能實現流式輸出。

具體實現這里就不列舉了,大家可以看出來 LangChain4j 的實現復雜度了吧?

類似的場景還有很多,例如 Spring AI 實現 MCP Client 只需要添加依賴,設置配置信息,然后一行 defaultTools 或 tools 設置就可以實現了,如下代碼:

ChatClient.builder(chatModel)
            .defaultTools(tools.getToolCallbacks()) 
            .build();

但 LangChain4j 的實現就非常復雜了,除了添加依賴之后,你還需要:

  • 創建傳輸協議 McpTransport。
  • 創建 MCP 客戶端 McpClient。
  • 創建 Tools(提供者)對象 ToolProvider。
  • 構建 AiService。
  • 執行 MCP Server 調用。

具體實現代碼如下:

@RequestMapping("/chat")
public String chat(@RequestParam String question) {
    // 1.創建傳輸協議
    McpTransport transport = new HttpMcpTransport.Builder()
            .sseUrl("http://localhost:8686/sse")
            .logRequests(true) // if you want to see the traffic in the log
            .logResponses(true)
            .build();
    // 2.創建 MCP 客戶端
    McpClient mcpClient = new DefaultMcpClient.Builder()
            .transport(transport)
            .build();
    // 3.創建 Tools(提供者)對象
    ToolProvider toolProvider = McpToolProvider.builder()
            .mcpClients(List.of(mcpClient))
            .build();
    // 4.構建 AiService
    ToolsAiService aiService = AiServices.builder(ToolsAiService.class)
            .chatLanguageModel(chatModel)
            .toolProvider(toolProvider)
            .build();
    // 5.調用 MCP Server
    return aiService.chat(question);
}

小結

除了 LangChain4j 的使用復雜之外,LangChain4j 的文檔也不全,要么是沒有關鍵實現代碼案例、要么是干脆文檔寫的都是錯的,LangChain4j 的坑比較多,最后只能通過看最新的源碼才能解決和使用相關功能,所以 LangChain4j 學習和使用成本是非常高的。

3.Spring 生態支持性

Spring AI 是由 Spring 官方提供的,所以它對于整個 Spring 生態的支持是更好的,而且穩定性更好;而 LangChain4j 除了支持 Spring 之外還支持 Java 原生寫法,以及 Quarkus 框架。

但 LangChain4j 整體對于 Spring 生態的支持就要差一些了,例如它里面的 ImageModel 都沒有提供 Spring Boot 自動裝配的實現,還有一些大模型例如智普 AI 根本沒有提供 Spring Boot 的支持等。

小結

如果是簡單功能、開發周期又緊可以使用 Spring AI;如果功能復雜,且定制型要求比較多,可以使用功能和靈活度更高的 LangChain4j。但使用 LangChain4j 這就意味著你需要忍受 LangChain4j 不夠簡潔的寫法,以及學習和使用成本比較高的問題。

責任編輯:姜華 來源: 磊哥和Java
相關推薦

2025-04-22 03:00:00

模型SpringAI

2025-05-06 08:21:35

2024-05-20 02:00:00

LangChain人工智能

2025-04-07 08:40:00

開源Llama 4大模型

2023-12-22 19:59:15

2021-08-04 16:06:45

DataOps智領云

2025-05-07 02:22:00

2023-11-27 17:35:48

ComponentWeb外層

2023-05-20 17:58:31

低代碼軟件

2022-07-05 06:30:54

云網絡網絡云原生

2022-07-26 00:00:03

語言模型人工智能

2022-12-01 17:23:45

2022-10-20 08:01:23

2021-12-29 18:00:19

無損網絡網絡通信網絡

2018-09-28 14:06:25

前端緩存后端

2022-09-22 09:00:46

CSS單位

2022-11-06 21:14:02

數據驅動架構數據

2025-04-03 10:56:47

2019-06-13 21:31:19

AI

2019-08-23 12:12:49

MQ消息隊列
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久综合九色综合欧美狠狠 | av中文字幕在线观看 | 久久久久久久久久一区二区 | 日韩高清国产一区在线 | 国产一区二区三区免费观看在线 | 欧美高清一级片 | 日韩一二区 | 国产欧美在线一区二区 | 久久国产精品视频 | 欧美精品国产精品 | 日韩免费看片 | 成人国产网站 | 国产精品日本一区二区在线播放 | 国产日韩91 | 看特级黄色片 | 国产精品99久久久久久久久久久久 | 欧美国产激情二区三区 | 亚洲美乳中文字幕 | 隔壁老王国产在线精品 | 午夜男人免费视频 | 国内精品视频在线观看 | 国产激情| 中文字幕高清一区 | 97色在线观看免费视频 | 人人种亚洲 | 久久免费精品视频 | 亚洲国产中文在线 | 97色在线视频 | 欧美91| 中文字幕亚洲欧美 | www.色五月.com| 中文字幕国产精品视频 | 国产色 | 亚洲一区二区三区欧美 | 日本视频在线 | 国产精品日韩欧美一区二区三区 | 国产一区二区三区四区在线观看 | 亚洲成人免费 | 五月激情婷婷网 | 婷婷不卡| 欧美在线日韩 |