Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >被LangChain4j坑惨了!

被LangChain4j坑惨了!

作者头像
磊哥
发布于 2025-04-22 00:23:25
发布于 2025-04-22 00:23:25
3120
举报
文章被收录于专栏:王磊的博客王磊的博客

最近在深度体验和使用 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 相关技术才刚刚起步,还有很大的发展空间,我们需要宽容一些、给他一点时间。把一切交给时间,只管默默努力和时间一起增值就好。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
最新版LangChain4j发布!终于修复了这个恶心的问题
LangChain4j 1.0.0-beta4 上周刚刚发布,并且计划这个月中旬发布 RC1,我觉得这次升级还是非常实用的,除了修复了一些关键的 BUG 之外,还有一个被我经常吐槽的功能也被更正了,具体是什么问题呢?我们下来一起看。
磊哥
2025/05/10
4190
LangChain4j支持的API类型
这种API接受一或多个ChatMessage作为输入,并返回一个AiMessage作为输出。 ChatMessage通常包含文本,但有些LLM还支持混合文本和Image的输入。如OpenAI的gpt-4o-mini和Google的gemini-1.5-pro都属于这种。
JavaEdge
2025/06/01
620
LangChain4j比SpringAI强在哪?一文读懂
LangChain4j 和 Spring AI 是 Java 生态中实现大模型应用开发的两个最重要的框架,但二者的区别是啥?生产级别又该使用哪种框架?令很多人犯了难,所以本文就来浅聊一下,希望给大家在技术选型时有一个简单的参考。
磊哥
2025/05/07
7680
langchain4j+ollama+deepseek小试牛刀
访问http://localhost:8080/ollama/chat?prompt=%E4%BD%A0%E6%98%AF%E8%B0%81 可以得到您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。
code4it
2025/02/23
6170
langchain4j+ollama+deepseek小试牛刀
如何在Spring Boot中无缝集成LangChain4j,玩转AI大模型!
Spring Boot 启动器帮助通过属性创建和配置 语言模型、嵌入模型、嵌入存储 和其他核心 LangChain4j 组件。
JavaEdge
2024/09/20
5.9K0
如何在Spring Boot中无缝集成LangChain4j,玩转AI大模型!
【微服务】SpringBoot整合LangChain4j 操作AI大模型实战详解
随着人工智能技术的飞速发展,AI大模型已经在众多领域展现出强大的能力,为业务拓展和商业价值提升带来了新的机遇。SpringBoot作为一款广受欢迎的Java微服务框架,以其简洁、高效的特点深受开发者喜爱。而LangChain4j作为一款专注于AI大模型集成的开源库,为Java开发者提供了一种简单且高效的方式来接入和利用各种AI大模型。本文将详细介绍如何在SpringBoot中整合LangChain4j,实现对AI大模型的操作,帮助读者快速上手并应用到实际项目中。
全干程序员demo
2025/04/09
1.2K0
【微服务】SpringBoot整合LangChain4j 操作AI大模型实战详解
Java + LangChain 开发大语言模型应用!
在 Baeldung 上看到了一篇介绍基于 Java + LangChain 开发大语言模型应用的基础入门文章,写的非常不错,非常适合初学者。于是,我抽空翻译了一下。
码农编程进阶笔记
2025/03/29
5010
Java + LangChain 开发大语言模型应用!
聊聊langchain4j的AiServices
dev/langchain4j/service/DefaultAiServices.java
code4it
2025/03/11
4660
聊聊langchain4j的AiServices
基于🦜☕️ LangChain4j 实现问答机器人
2022 年 11 月 30 日,OpenAI 发布了基于 GPT-3.5 模型调优的新一代对话式AI模型 ChatGPT。随后的一段时间,国内外各大厂商都纷纷跟进,以至于在 2023 年间出现了“百模大战”这一历史节点。
花花Binki
2024/11/12
8520
基于🦜☕️ LangChain4j 实现问答机器人
LangChain4j炸裂!Java开发者打造AI应用从未如此简单
LangChain4j目标是简化将大语言模型(LLM)集成到 Java 应用程序的过程。
JavaEdge
2024/09/19
1.6K0
LangChain4j炸裂!Java开发者打造AI应用从未如此简单
聊聊langchain4j的RAG
RAG(Retrieval-Augmented Generation)即检索增强生成,它通过检索来获取相关信息,注入到prompt,然后用增强的prompt然后输入给LLM让LLM在回答的时候能够利用检索到信息,从而降低幻觉。常见的信息检索方法包括:全文(关键词)搜索、向量搜索(语义搜索)、混合搜索。目前langchain4j以向量搜索为主(例如通过Qdrant等向量数据库构建高效检索系统),后续会扩展支持全文搜索及混合搜索(目前Azure AI Search支持,详细见AzureAiSearchContentRetriever)。
code4it
2025/03/17
2340
聊聊langchain4j的RAG
聊聊langchain4j的Tools(Function Calling)
本文主要研究一下langchain4j的Tools(Function Calling)
code4it
2025/03/15
3781
聊聊langchain4j的Tools(Function Calling)
SpringAI更新:废弃tools方法、正式支持DeepSeek!
AI 技术发展很快,同样 AI 配套的相关技术发展也很快。这不今天刚打开 Spring AI 的官网就发现它又又又又更新了,而这次更新距离上次更新 M7 版本才不过半个月的时间,那这次 Spring AI 给我们带来了哪些惊喜呢?一起来看。
磊哥
2025/05/15
2850
langchain4j+springboot流式输出
dev/langchain4j/ollama/spring/AutoConfig.java
code4it
2025/02/24
1K0
RAG技术全面解析:Langchain4j如何实现智能问答的跨越式进化?
LLM 的知识仅限于其训练数据。如希望使 LLM 了解特定领域的知识或专有数据,可:
JavaEdge
2024/09/24
6.3K0
RAG技术全面解析:Langchain4j如何实现智能问答的跨越式进化?
聊聊langchain4j的MCP
本文主要研究一下langchain4j对Model Context Protocol (MCP) 的支持
code4it
2025/03/23
1.4K0
聊聊langchain4j的MCP
langchain4j免科学上网实践demo
作为一个只懂java的程序员,之前一直没有机会直接与langchain接触,无法快速跟上AI的浪潮。直至langchain4j的推出,让我有了一探langchain4j的机会。对langchain4j不熟的同学可以移步官网。简言之,LangChain4j 的目标是简化将 AI/LLM 功能集成到 Java 应用程序中。
用户10868311
2024/04/18
7020
langchain4j免科学上网实践demo
三分钟看懂LangChain4j支持的API类型!
这种API接受一或多个ChatMessage作为输入,并返回一个AiMessage作为输出。 ChatMessage通常包含文本,但有些LLM还支持混合文本和Image的输入。如OpenAI的gpt-4o-mini和Google的gemini-1.5-pro都属于这种。
JavaEdge
2024/09/22
4470
三分钟看懂LangChain4j支持的API类型!
聊聊langchain4j-spring的1.0.0-beta版本的更新
本文主要研究一下langchain4j-spring的1.0.0-beta版本的更新
code4it
2025/05/08
1060
聊聊langchain4j-spring的1.0.0-beta版本的更新
langchain4j+local-ai小试牛刀
本文主要研究一下如何本地运行local-ai并通过langchain4j集成调用。
code4it
2025/03/03
1100
langchain4j+local-ai小试牛刀
相关推荐
最新版LangChain4j发布!终于修复了这个恶心的问题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档