Skip to content

Spring AI vs LangChain4j(怎么看) ​

结论(建议):主路径优先 Spring AI(你已是 Spring Boot 3.4.3);用 Port 包住模型调用,避免业务代码锁死某一框架。
LangChain4j 作为备选(RAG/Tool 抽象更「AI 框架味」时再评估)。
不要两个一起上生产。 Python + LangGraph 仅用于编排实验或后期重工作流。


1. 它们各自解决什么 ​

Spring AILangChain4j
定位Spring 生态的 AI 集成层Java 侧偏 LangChain 理念的 AI 框架
与 Boot一等公民,配置/Bean 自然可集成,但要自己粘合更多
Chat / Streaming✅✅
Structured Output✅(持续增强)✅ 较成熟
Tool / Function Calling✅✅
RAG 组件✅(Advisor、向量等)✅ 生态很全
与你现状契合度高(Boot 3.4)中高
国内资料/阿里云衔接Spring AI Alibaba 等路线活跃也有,但和 Boot「官方感」弱一点

两者都能做你的 C 端 MVP 和 B 端只读分析。差异在工程手感与生态绑定,不是能力有无。


2. 针对 TourMate 的推荐 ​

主推荐:Spring AI ​

理由:

  1. 你不会为了学 AI 丢掉 Java/Spring——文档原底稿也是这个判断。
  2. C 端 MVP 核心是 Structured Output + 1~2 个 Tool + 调现有 Service,Spring AI 足够。
  3. 配置、观测、与现有 application-*.yml、Bean 装配路径最短。
  4. 若日后用通义等国内模型,Spring AI 生态有现成对接叙事。

何时改选 / 加选 LangChain4j ​

  • 你做完 Spike 后发现某条 RAG/Agent 抽象在 Spring AI 里明显别扭。
  • 团队更熟 LangChain4j,或已有可复用组件。
  • 仍建议:只保留一个作为生产依赖。

Python + LangGraph 放哪 ​

  • 学习 / Spike:独立小目录或小仓,验证 State / Checkpoint / HITL。
  • 生产默认:B 端第一期用 Java 固定工作流(状态机或显式步骤编排)即可。
  • 等「长任务恢复 + 多级人工审批」成为日常痛点,再让 Python 编排调主站 Tool API。

这与原底稿「Java 主业务、Python 做编排实验」一致,只是把「实验」和「上线」边界写死。


3. 防锁定:无论选谁都要做的事 ​

在 Domain 或 Application 边缘定义 Port,例如:

ILlmPort.chat(messages, schema) → Structured DTO
ILlmPort.stream(...)

Infrastructure 里用 Spring AI(或 LangChain4j)实现。

这样:

  • 换模型厂商 ≠ 换业务代码
  • 换框架 ≠ 重写活动查询
  • 评测可以绕过真实 LLM 打桩

4. Spike 建议(2 天内可做完) ​

不要先建大仓,在主站或一次性分支里验证:

  1. 通义 / OpenAI 兼容接口:流式 Chat
  2. JSON Schema → ActivitySearchIntent
  3. Function Calling 调一个假 search_activities
  4. 看 Token、超时、错误重试是否好控

过关后再正式加模块依赖与 API。


5. 一句话 ​

Spring AI 还是 LangChain4j?
先 Spring AI + Port 隔离;LangChain4j 当备胎;LangGraph 当工作流实验室,不是 C 端 MVP 的前提。

Powered by VitePress