项目地址:gitee.com/flower-tree…
适合人群:Java 开发者、后端工程师、架构师、对 AI 感兴趣但不想学 Python 的人
阅读时间:5 分钟
很多 Java 开发者最近都有一个共同的焦虑:
AI 太火了,但一搜教程,全是 Python。
- LangChain 是 Python
- LlamaIndex 是 Python
- 各种 Agent、RAG、Workflow 教程还是 Python
但现实里,大多数企业级系统都是 Java。
你总不能为了接入一个 AI 能力,把整个 Spring Boot、微服务、网关、权限、订单、消息队列体系全部推倒重写吧?
所以问题来了:
有没有一个真正适合 Java 工程师的 LangChain?
答案就是:j-langchain。
它是一个纯 Java 实现的 AI 应用开发框架,对标 Python 版 LangChain,但更符合 Java 开发者的使用习惯。
你可以直接在现有 Java 项目里,用几行代码快速构建:
- AI 问答
- 内容摘要
- 翻译
- RAG 知识库
- Agent 工具调用
- 流式对话
- 多节点链式编排
而且,不需要会 AI,也不需要会 Python。
为什么 Java 开发者更需要这个框架?
过去一年,很多公司都在做 AI 落地。
但真正落地的时候,大家会发现一个现实问题:
模型能力只是最小的一部分,真正复杂的是:
- 如何接入企业现有 Java 服务
- 如何调用内部接口
- 如何和订单、用户、权限、数据库联动
- 如何做流式输出
- 如何做工具调用和 Agent
- 如何做日志、监控、异常处理
这些几乎都在 Java 后端里。
所以很多团队最后都会进入一种很尴尬的状态:
AI 原型是 Python 做的
真正上线时,又要用 Java 重写一遍
而 j-langchain 的意义就在于:
直接在 Java 里做 AI,不再需要“先 Python 验证,再 Java 重写”这一套低效流程。
j-langchain 到底是什么?
可以把它理解成:
LangChain 的 Java 版 + 更适合企业后端的链式编排框架
它最核心的思想是:
输入 → Prompt → 大模型 → 输出解析 → 后续处理
把原本散落在代码里的各种逻辑,统一变成一个“链”。
比如一个最简单的 AI 调用:
用户输入 → Prompt模板 → 通义千问 → 返回字符串
复杂一点:
用户输入 → Prompt → 大模型 → JSON解析 → 调接口 → 再次生成回答
甚至再复杂一点:
用户问题 → Router → 不同 Prompt → 多个模型并行 → 聚合输出
这就是链式编排的价值。
5 分钟快速跑起来
第一步:添加依赖
<dependency>
<groupId>org.salt.jlangchain</groupId>
<artifactId>j-langchain</artifactId>
<version>1.0.12</version>
</dependency>
如果你是 Spring Boot 项目,直接加进去即可。
第二步:配置大模型 API Key
以阿里云通义千问为例:
spring:
ai:
aliyun:
api-key: ${ALIYUN_KEY}
配置完后,就可以直接调用模型。
三行代码,完成一个 AI 应用
这是 j-langchain 最经典、也是最重要的使用方式。
@Test
public void hello() {
PromptTemplate prompt = PromptTemplate.fromTemplate(
"Tell me a joke about ${topic}"
);
ChatAliyun llm = ChatAliyun.builder()
.model("qwen-plus")
.build();
FlowInstance chain = chainActor.builder()
.next(prompt)
.next(llm)
.next(new StrOutputParser())
.build();
ChatGeneration result = chainActor.invoke(
chain,
Map.of("topic", "Java programmers")
);
System.out.println(result.getText());
}
整个过程,本质上只有三步:
- PromptTemplate:定义 Prompt 模板
- ChatAliyun:选择模型
- StrOutputParser:解析结果
然后把它们串起来。
Prompt → LLM → Parser
这就是 j-langchain 最小的工作单元。
如果你会 Spring MVC、责任链、过滤器、Pipeline,那你会瞬间理解这个框架。
为什么它比“直接调用 API”更好?
很多人会说:
“我直接 HttpClient 调模型接口,不也能跑吗?”
当然可以。
但随着需求变复杂,你会很快写出下面这种代码:
if (需要翻译) {
调模型A
}
if (需要知识库) {
先查向量库,再拼Prompt
}
if (需要结构化输出) {
再做 JSON 解析
}
if (需要工具调用) {
再循环调接口
}
最后整段代码会变成一个几百行的大 if-else。
而 j-langchain 的优势是:
- 每一步都可插拔
- 每一步都可复用
- 可以像搭积木一样组合
- 后续扩展 RAG、Agent、Workflow 不需要推翻重写
这对你这种本身就在做企业级系统、微服务、Agent 平台、多模型编排的人,会特别顺手。
尤其你如果后面想继续扩展到你一直在做的 MCP、多 Agent、RAG、工具编排场景,j-langchain 这种“链 + 节点”的模式会天然适合作为底层执行框架。
流式输出:让 AI 像 ChatGPT 一样边打字边回答
如果用户必须等 10 秒,模型全部返回后才能看到结果,体验会非常差。
所以 AI 产品几乎都需要流式输出。
j-langchain 已经内置了。
@Test
public void streamOutput() {
ChatAliyun llm = ChatAliyun.builder()
.model("qwen-plus")
.build();
AIMessageChunk chunk = llm.stream("用一句话解释什么是人工智能");
while (chunk.getIterator().hasNext()) {
String token = chunk.getIterator().next().getContent();
System.out.print(token);
}
}
输出效果就会像这样:
人工智能,是让计算机具备模拟人类学习、思考和决策能力的技术。
但它不是一次性返回,而是一边生成、一边输出。
如果你在做:
- WebSocket
- SSE
- Spring WebFlux
- Vue / React 前端聊天窗口
这个能力会非常有用。
JSON 结构化输出:AI 不只是“会聊天”
真正的业务系统,很少只需要一句自然语言。
更多时候,你需要模型输出一个结构化对象。
比如:
- 推荐商品列表
- 提取用户意图
- 生成工单
- 返回标签、分类、评分
j-langchain 内置了 JsonOutputParser:
@Test
public void jsonOutput() {
ChatAliyun llm = ChatAliyun.builder()
.model("qwen-plus")
.build();
FlowInstance chain = chainActor.builder()
.next(llm)
.next(new JsonOutputParser())
.build();
ChatGeneration result = chainActor.invoke(
chain,
"请输出3个编程语言,使用 JSON 格式,包含 name 和 year"
);
System.out.println(result.getText());
}
输出:
[ {"name": "Java", "year": 1995}, {"name": "Python", "year": 1991}, {"name": "Go", "year": 2009}]
这意味着你可以直接把结果转成 DTO、对象、数据库记录,而不是自己再写一堆字符串解析。
调试能力:每个节点都能看到输入输出
做 AI 应用最痛苦的一件事,是你根本不知道:
- Prompt 到底是什么
- 模型输入了什么
- 输出为什么不对
- 哪一步出了问题
所以 j-langchain 提供了 streamEvent()。
EventMessageChunk events = chainActor.streamEvent(chain, Map.of("topic", "Java"));
while (events.getIterator().hasNext()) {
EventMessageChunk event = events.getIterator().next();
System.out.println(event.toJson());
}
你会看到类似:
{
"event": "on_chain_start",
"node": "PromptTemplate",
"input": {
"topic": "Java"
}
}
以及:
{
"event": "on_chain_end",
"node": "ChatAliyun",
"output": "..."
}
对于调试 Prompt、排查 Agent 问题、做链路监控,这个功能非常有价值。
最爽的一点:支持本地模型,一行代码切换
很多人刚开始玩 AI,不想一上来就花钱。
那就直接用 Ollama。
ollama pull qwen2.5:0.5b
然后把模型从云端切换成本地,只需要改一行:
ChatOllama llm = ChatOllama.builder()
.model("qwen2.5:0.5b")
.build();
其它代码全部不用变。
FlowInstance chain = chainActor.builder()
.next(prompt)
.next(llm)
.next(new StrOutputParser())
.build();
这意味着:
- 本地开发用 Ollama
- 上线切换通义千问
- 后续切换 DeepSeek、OpenAI、Claude
业务代码都不用改。
这才是真正的框架抽象。
它未来还能做什么?
上面只是最简单的 Hello World。
但 j-langchain 后面真正厉害的地方,是它可以继续往下扩展:
- RAG 知识库
- PDF 问答
- Agent 工具调用
- ReAct 推理循环
- 多模型路由
- 并行执行
- 动态链编排
- 多 Agent 协同
比如你后面想实现一个企业内部 AI 助手:
用户问题
→ 判断是不是查知识库
→ 如果是,就先查向量库
→ 再调用模型总结
→ 如果需要查订单,再调内部接口
→ 最后再返回结果
这些都可以继续在 j-langchain 上做。
对于做企业级 AI 平台、Agent 平台、MCP、多工具编排的人来说,它会比直接调用模型 API 更适合作为底层框架。
最后
如果你是 Java 工程师,但一直觉得:
“AI 好像离我很远,因为我不会 Python。”
那这篇文章最想告诉你的就是:
不,你完全可以继续用 Java,而且一样能做出很强的 AI 应用。
j-langchain 最大的价值,不是让 Java 去“追赶 Python”。
而是让 Java 开发者,第一次真正拥有属于自己的 AI 开发生态。
项目地址
- Gitee:gitee.com/flower-tree…
如果这篇文章对你有帮助,欢迎:
- 点赞
- 收藏
- 转发
- Star 项目
后面我还会继续写:
- Java AI 应用的 5 种链式编排模式
- 用 Java 实现 RAG:从 PDF 到知识库问答
- 用 Java 实现 ReAct Agent:自动调用工具与推理循环
- 如何在 Spring Boot 中做企业级 AI Agent 架构
关注我,我们继续把 Java 的 AI 生态真正做起来。