Java 工程师 5 分钟入门 AI 应用开发:j-langchain,让你不用 Python 也能玩转大模型

0 阅读7分钟

项目地址: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());
}

整个过程,本质上只有三步:

  1. PromptTemplate:定义 Prompt 模板
  2. ChatAliyun:选择模型
  3. 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 开发生态。


项目地址

如果这篇文章对你有帮助,欢迎:

  • 点赞
  • 收藏
  • 转发
  • Star 项目

后面我还会继续写:

  1. Java AI 应用的 5 种链式编排模式
  2. 用 Java 实现 RAG:从 PDF 到知识库问答
  3. 用 Java 实现 ReAct Agent:自动调用工具与推理循环
  4. 如何在 Spring Boot 中做企业级 AI Agent 架构

关注我,我们继续把 Java 的 AI 生态真正做起来。