哈喽各位Java小伙伴👋

最近越来越多业务需要接入大模型,很多同学接入OpenAI、通义千问、本地Llama3的时候,都踩过这些坑:

  • 每家大模型接口格式不一样,切换模型就要改一遍代码

  • 手写HTTP请求、拼接prompt、解析返回值,重复代码巨多

  • 想做多轮对话记忆、本地知识库RAG、工具调用,从零开发成本太高

今天给大家安利Java生态专属AI框架:Langchain4j,一行代码搞定大模型调用,统一屏蔽所有大模型差异,不用懂底层HTTP,Java开发者零门槛开发AI应用。


一、一句话搞懂:Langchain4j是什么?

简单直白解释:

Langchain4j 就是 LangChain 的Java专属版本,专为Java/Kotlin开发者打造的大模型应用开发框架。

它核心解决一个痛点:统一所有大模型接口

不管你用OpenAI、阿里通义千问、百度文心一言、本地开源大模型,代码完全不用改,只需要切换底层模型配置即可。

它能帮我们做什么?日常开发全覆盖

  • ✅ 基础单轮/多轮对话(自带对话记忆)

  • ✅ RAG本地知识库问答(企业最常用)

  • ✅ AI工具调用(让大模型调用你的Java接口)

  • ✅ 结构化输出(强制大模型返回JSON,不用自己解析)

  • ✅ 无缝整合SpringBoot,开箱即用


二、5分钟Hello World:最简单大模型调用

不搞复杂概念,直接上手代码,原生Java项目零配置跑通。

1. 引入Maven依赖

<dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai</artifactId> <version>1.14.0</version> </dependency>

2. 核心代码(极简,无需封装HTTP)

import dev.langchain4j.model.openai.OpenAiChatModel;

public class Langchain4jHello { 
    public static void main(String[] args) { 
        // 初始化大模型,填入自己的key和代理地址 
        OpenAiChatModel model = OpenAiChatModel.builder() .apiKey("你的API_KEY")    .baseUrl("代理地址") // 国内使用必填 
        .temperature(0.7) // 创意度,0严谨,1脑洞大 
        .build(); // 直接发起对话,一行代码获取结果 
        String answer = model.chat("用大白话解释什么是微服务"); 
        System.out.println("AI回答:" + answer); 
    } 
}

运行直接出结果,全程不用写任何HTTP请求、不用拼接请求体,框架全部封装完毕。


三、两个高频实用功能,业务直接照搬

1. 多轮对话(自带记忆,上下文连贯)

原生调用大模型是没有记忆的,每次对话都是独立请求,Langchain4j内置ChatMemory,开箱即用对话记忆:

import dev.langchain4j.data.message.UserMessage;
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import dev.langchain4j.model.openai.OpenAiChatModel;
import dev.langchain4j.service.AiServices;

public class ChatMemoryDemo {
    // 定义AI助手接口,无需写实现类
    interface AiAssistant {
        String chat(String msg);
    }

    public static void main(String[] args) {
        OpenAiChatModel model = OpenAiChatModel.builder()
                .apiKey("你的API_KEY")
                .baseUrl("代理地址")
                .build();

        // 设置对话记忆,保留最近10条对话
        MessageWindowChatMemory memory = MessageWindowChatMemory.withMaxMessages(10);

        // 自动动态代理生成AI服务
        AiAssistant assistant = AiServices.builder(AiAssistant.class)
                .chatLanguageModel(model)
                .chatMemory(memory)
                .build();

        System.out.println(assistant.chat("我叫小明"));
        System.out.println(assistant.chat("我叫什么名字?"));
        // AI可以记住上文,正确回答:小明
    }
}

亮点:面向接口编程,不用手动管理对话上下文,框架自动维护聊天记录。

2. 强制大模型返回JSON(解决返回格式混乱问题)

业务开发中经常需要大模型返回固定格式数据,以往需要反复写prompt约束,Langchain4j直接注解搞定,强制结构化输出:

// 定义需要返回的实体类
record UserInfo(String name, Integer age, String hobby) {}

interface AiAssistant {
    UserInfo getUserInfo(String msg);
}

// 调用直接返回实体对象,无需手动解析JSON
UserInfo userInfo = assistant.getUserInfo("介绍一下25岁喜欢打球的张三");
System.out.println(userInfo.name());

再也不用手写JSON解析,极大减少脏代码!


四、SpringBoot整合,企业级开发标配

日常开发基本都是SpringBoot项目,整合更加简单,自动装配零冗余代码。

1. 引入SpringBoot专属依赖

<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-spring-boot-starter</artifactId>
    <version>1.14.0</version>
</dependency>
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
    <version>1.14.0</version>
</dependency>

2. yml配置文件直接配置参数

langchain4j:
  open-ai:
    chat-model:
      api-key: 你的key
      base-url: 代理地址
      temperature: 0.7

3. 直接注入使用

@RestController
@RequestMapping("/ai")
public class AiController {

    @Autowired
    private ChatLanguageModel chatLanguageModel;

    @GetMapping("/chat")
    public String chat(String msg){
        return chatLanguageModel.chat(msg);
    }
}

直接启动项目,接口即可调用大模型,零业务层冗余代码


五、Langchain4j VS 原生HTTP调用,优势对比

对比项

原生手写HTTP

Langchain4j

接口适配

每个大模型单独适配,改模型必改代码

统一API,无缝切换各类大模型

对话记忆

需要自己存上下文、拼接prompt

内置多种记忆模式,开箱即用

RAG/工具调用

从零开发,工程量极大

官方封装好,直接调用API

开发效率

低,大量重复基建代码

极高,专注业务逻辑即可


六、适用场景总结

如果你正在做以下业务,直接无脑选用Langchain4j:

  1. 后台系统接入AI问答、智能客服

  2. 本地知识库、文档问答(RAG场景)

  3. AI代码生成、内容改写、文案生成

  4. 需要大模型调用本地接口、实现智能Agent


七、博主总结

对于Java开发者来说,不用再跟风Python的LangChain生态,Langchain4j完全对齐官方能力,且更贴合Java面向接口、Spring生态的开发习惯

不用关心底层大模型的接口差异,不用重复造轮子做HTTP封装,把精力全部放在业务上即可。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐