AI在线 AI在线

被LangChain4j坑惨了!

作者:磊哥
2025-04-22 03:00
最近在深度体验和使用 Spring AI 和 LangChain4j,从开始的满怀期待五五开,但最后极具痛苦的使用 LangChain4j,让我真正体验到了正规军和草台班子的区别。 Spring AI VS LangChain4jSpring AI:使用简单、写法优雅、但功能提供的较少、成熟度稍高;LangChain4j:作为移植大模型著名框架 LangChain 功能稍多、灵活度高、使用复杂、满是 BUG。 还有根本找不到关键内容的官方文档,该有的重要内容是一点都不介绍啊,使用和学习成本很高。

最近在深度体验和使用 Spring AI 和 LangChain4j,从开始的满怀期待五五开,但最后极具痛苦的使用 LangChain4j,让我真正体验到了正规军和草台班子的区别。

Spring AI VS LangChain4j

  • Spring AI:使用简单、写法优雅、但功能提供的较少、成熟度稍高;
  • LangChain4j:作为移植大模型著名框架 LangChain 功能稍多、灵活度高、使用复杂、满是 BUG。还有根本找不到关键内容的官方文档,该有的重要内容是一点都不介绍啊,使用和学习成本很高。

1.SDK 问题折腾到半夜

举个例子,我昨天下午到晚上 11 点半都在研究 LangChain4j 将连续对话保存到 MySQL,首先官方并没有提供文档和代码示例,其次网上的资源很少,我按照经验和摸索终于写了一版实现,但从晚上 8 点调试到 11 点半,各种查文档、看源码都没有完全调好,第二次对话时总是莫名其妙报错,且数据库存储的数据量远超于实际执行次数。

然后就是各种尝试、各种折腾,把流式输出换成全量输出;保存数据之前先删除再添加等等。

最终您猜怎么着?原来这个问题竟然和模型 SDK 有关,我把模型从阿里百炼换成 OpenAI 之后,全部问题竟然解决了,害得我折腾到半夜,竟然是源码 BUG。

而且就这还有 BUG,在后期连续对话时,按照 SDK 会把之前聊天的角色从 AI 改完 User,虽然不影响执行结果,但本质上还是有 BUG,这肯定也是源码问题,不纠结了,反正最新的版本也是 beta 版,就先这样吧。

2.错误的官方文档

还有在对接阿里百炼平台时,官方给到文档是这么写的:

图片图片

其实官方文档中间是少一个“chat-model”,你如果按照他的配置方法,根本没办法完成大模型的自动注入,网上资料千篇一律全是手动创建,但显然不够优雅,无维护性可言。

最后看了源码才发现,如果想自动装配,需要配置一个“chat-model”,源码如下:

图片图片

官方文档也是无敌了。

3.蹩脚的用法

LangChain4j 的使用也是比较麻烦,在 Spring AI 中使用 ChatModel 就可以操作大模型了,但 LangChain4j 要写成 ChatLanguageModel。

这多不算啥,关于流式输出更有意思,Spring AI 中调用 call 方法是全量输出,调用 stream 就是流式输出,实现相当优雅和简单。

但你猜 LangChain4j 要怎么用,首先要在配置文件中添加 streaming-chat-model 并且配置 api-key 和 model-name 等信息,并且不能使用 ChatLanguageModel 来进行流式输出,还要添加 langchain4j-reactor 依赖,并且使用新对象 StreamingChatLanguageModel 才能操作,真是麻了。

小结

世界是一个巨大的草台班子,所有的优秀背后都是居大的付出和努力。AI 相关技术才刚刚起步,还有很大的发展空间,我们需要宽容一些、给他一点时间。把一切交给时间,只管默默努力和时间一起增值就好。

相关标签:

相关资讯

聊聊SpringAI流式输出的底层实现?

在 Spring AI 中,流式输出(Streaming Output)是一种逐步返回 AI 模型生成结果的技术,允许服务器将响应内容分批次实时传输给客户端,而不是等待全部内容生成完毕后再一次性返回。 这种机制能显著提升用户体验,尤其适用于大模型响应较慢的场景(如生成长文本或复杂推理结果)。 技术实现在 Spring AI 中流式输出的实现有以下两种方式:通过 ChatModel 实现流式输出。
4/24/2025 12:00:00 AM
磊哥

Deepseek4j再更新:Java应用一行代码集成DeepSeek

deepseek4j 是什么deepseek4j() 是一个专为 Java 开发者打造的 DeepSeek 模型集成框架。 通过优雅的 API 设计,只需一行代码,即可实现接入 DeepSeek,并获得以下核心能力:完整思维链保留:完美保留 DeepSeek 模型的推理过程,让 AI 的思考过程可追溯流式输出体验:基于 Reactor 实现的流式响应,带来类 ChatGPT 的打字机效果复制使用 deepseek4j,您可以专注于业务逻辑开发,而无需关心底层细节。 一、v1.3 更新内容1.1 联网搜索支持1739118403新版本最重要的更新是引入了联网搜索能力,这一功能带来三个关键优势:突破时间边界:模型不再受限于预训练数据的时间范围,可以获取和处理最新信息实时信息获取:通过高质量信息源获取实时资讯,提供更精准的问答服务差异化竞争:在大模型同质化严重的当下,联网搜索成为关键的差异化竞争点复制1.2 智能系统提示词1739118117系统提示词(System Prompt)是基于模型开发的应用程序内置的指令,让决定了模型在特定上下文中的表现方式、回答风格和功能范围。
2/10/2025 10:49:51 AM
冷冷

Spring 宣布接入 DeepSeek

DeepSeek 是深度求索公司发布的大模型,是国产之光。 大家应该学会如何使用 DeepSeek 大模型,下面我们将看下如何开发基于 DeepSeek 大模型的智能应用。 DeepSeek 大模型DeepSeek 推出两款模型;DeepSeek V 系列,对于V系列主要 对话,模型名称:deepseek-chatDeepSeek R 系统,对于R系统主要 推理, 模型名称:deepseek-reasonerDeepSeek 官方更新日志,可以看到模型发布和演化的过程。
2/17/2025 12:25:00 AM
不才陈某