最新版LangChain4j发布!终于修复了这个恶心的问题

LangChain4j 1.0.0-beta4 上周刚刚发布,并且计划这个月中旬发布 RC1,我觉得这次升级还是非常实用的,除了修复了一些关键的 BUG 之外,还有一个被我经常吐槽的功能也被更正了,具体是什么问题呢?我们下来一起看。

同时使用过 Spring AI 和 LangChain4j 的同学对于他们二者最大的区别,我想就是 Spring AI 在使用时的简洁性,和 LangChain4j 高灵活性但繁琐的调用方式是最有体会的。

远的不说,就说这个命名就让人非常不爽,Spring AI 中要调用大模型,使用 ChatModel 或 ChatClient 就行了,但你猜 LangChain4j 要怎么着?它把对话(文生文)给你搞成两个对象,ChatLanguageModel 和 StreamingChatLanguageModel,前者是普通对话,后者是流式对话。

并且流式对话的 API Key 和其他参数还需要单独配置,拜托,同样都是文本对话,只是输出的形式不同而已,都是文生文对话为什么相同的配置要设置两遍?而且还要使用两个对象?并且这两个对象的名字还长的离谱,明显 ChatModel 就能说明问题了,它偏要起个 ChatLanguageModel 和 StreamingChatLanguageModel,这对有编程洁癖的人来说简直是如鲠在喉。

新版本更新

但是好在 LangChain4j 1.0.0-beta4 它来了,在这个版本里面,它终于下定决心做了调整,把原来的 ChatLanguageModel 更改为了 ChatModel,并且也将 StreamingChatLanguageModel 更改为了 StreamingChatModel,其他的虽然没改(Chat 和 Steam 还需要配置两次),但起码名字让人看起来舒服多了。

除此之外 LangChain4j 1.0.0-beta4 还升级了以下主要内容:

  • Tokenizer 重命名 TokenCountEstimator
  • 修复了当 MCP 工具函数没有参数时,一些 OpenAI 函数无法正常工作的问题。
  • 删除了冗余的 TextFile 和 TextFileContent 类。
  • HTTP 方式自动重试重新连接 MCP 服务。
  • 升级到 OpenAI Java SDK v1.4.1,提供了对 GPT 4.1 的支持
  • 重命名并移动了一些内部实用程序类。
  • 支持 VertexAi 流聊天模型的自定义标头(custom-headers)。
  • Google AI Gemini:从 Gson 迁移到 Jackson。
  • Jackson 版本更新至 2.19.0。
  • 其他若干 BUG 修复。

官方升级日志:https://github.com/langchain4j/langchain4j/releases/tag/1.0.0-rc1

小结

无论如何 ChatLanguageModel 和 StreamingChatLanguageModel 这两个超级长,让人超级不爽的命名终于是被优化了,并且提供了对刚刚发布的 GPT 4.1 的支持,还有 MCP 的升级和优化也是非常实用的。AI 技术发展比较迅速,我们也要给这些配套的框架一点时间,和他们一起慢慢迭代、慢慢进步。

本文已收录到我的技术小站 www.javacn.site,其中包含的内容有:Spring AI、LangChain4j、MCP、Function Call、RAG、向量数据库、Prompt、多模态、向量数据库、嵌入模型等内容。