我们是由枫哥组建的IT技术团队,成立于2017年,致力于帮助IT从业者提供实力,成功入职理想企业,我们提供一对一学习辅导,由知名大厂导师指导,分享Java技术、参与项目实战等服务,并为学员定制职业规划,全面提升竞争力,过去8年,我们已成功帮助数千名求职者拿到满意的Offer:IT枫斗者IT枫斗者-Java面试突击


01 引言

提起大模型(LLM)应用开发,绝大多数开发者第一时间想到的都是Python。Python凭借丰富的AI生态,成为LLM开发的主流选型。

虽然Spring AI已经正式推出,补齐了Java生态的AI开发短板,但在使用体验、生态适配、灵活性上,始终差强人意。很多Java开发者不想跨语言、不想脱离熟悉的Java/Spring技术栈,却一直没有一款轻量化、原生适配的LLM开发框架。

LangChain4j 的出现完美解决了这个问题!今天带大家从零上手,解锁Java程序员接入AI大模型的全新姿势,零基础实现大模型快速接入与业务开发。

02 LangChain4j 核心简介

LangChain4j 是官方 LangChain 的 Java/JVM 原生版本,核心目标是让Java开发者无需切换技术栈,即可像Python开发者一样,便捷、高效地搭建LLM驱动的AI应用。

它并非简单的Python代码翻译移植,而是基于Java思想从零设计,深度适配Spring Boot、Quarkus、Helidon等主流Java生态,完美兼容依赖注入、动态代理、注解开发等Java核心特性,上手门槛极低。

核心能力亮点

  • 统一API适配:一套API对接OpenAI、谷歌Gemini、通义千问、智谱等主流大模型,同时兼容Milvus、Pinecone、Chroma等向量数据库,无需适配各家差异化SDK
  • Java原生设计:依托接口、注解、泛型、依赖注入等Java原生特性,贴合Java开发者编码习惯
  • 分层抽象设计:底层提供ChatModel、ChatMessage等基础组件,满足高度定制化需求;上层封装AI Services、RAG等高阶能力,大幅精简业务代码
  • 版本适配:最低支持 JDK17,适配现阶段主流Java项目版本

官方地址

官网:docs.langchain4j.dev

GitHub:github.com/langchain4j

03 快速入门:基础环境搭建

推荐使用Maven BOM统一管理版本,避免版本冲突,这是企业级项目的最佳实践。

3.1 引入Maven依赖

先在项目中配置BOM版本管理,统一约束LangChain4j版本:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-bom</artifactId>
            <version>1.15.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <!-- OpenAI 适配依赖 -->
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-open-ai</artifactId>
    </dependency>
    <!-- 核心基础依赖 -->
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j</artifactId>
    </dependency>
</dependencies>

3.2 极速体验:OpenAI在线模型测试

没有私有API Key也能快速体验!LangChain4j官方提供免费Demo密钥,仅支持 gpt-4o-mini 模型,适合新手快速验证环境。

import dev.langchain4j.model.openai.OpenAiChatModel;

public class LangChain4jTest {
    public static void main(String[] args) {
        OpenAiChatModel model = OpenAiChatModel.builder()
                .baseUrl("http://langchain4j.dev/demo/openai/v1")
                .apiKey("demo")
                .modelName("gpt-4o-mini")
                .build();

        // 调用大模型对话
        String answer = model.chat("Java如何快速接入AI大模型?");
        System.out.println("大模型回复:" + answer);
    }
}

运行代码即可拿到模型返回结果,无需复杂配置,极简接入!

3.3 本地部署:接入Ollama私有大模型

除了在线大模型,LangChain4j完美适配本地Ollama部署的私有模型,数据不上云、安全性更高,适配内网项目开发。

1)引入Ollama专属依赖
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-ollama</artifactId>
</dependency>
2)完整测试案例

根据自己本地Ollama部署的模型名称、IP端口修改配置:

import dev.langchain4j.model.ollama.OllamaChatModel;
import org.junit.jupiter.api.Test;

public class OllamaModelTest {

    @Test
    void testOllamaChat() {
        // 构建本地Ollama大模型实例
        OllamaChatModel model = OllamaChatModel.builder()
                .baseUrl("http://10.100.213.26:11434") // 本地Ollama服务地址
                .modelName("modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest") // 本地模型名
                .build();

        // 对话调用
        String response = model.chat("你是什么模型?");
        System.out.println("本地模型回复:" + response);
    }
}

核心优势:纯Java独立运行,不依赖Spring生态,普通Java项目、工具类均可直接使用,灵活性拉满!

04 核心进阶:AI Services 高阶抽象

AI Services 是 LangChain4j 最核心、体验最佳的高阶能力,也是区别于其他AI框架的核心亮点。

4.1 核心设计思路

借鉴 Spring Data JPA、Retrofit 的经典思想:仅需定义业务接口,框架通过动态代理自动生成实现类。开发者无需手动处理Prompt拼接、模型调用、结果解析等底层逻辑,专注业务开发即可。

4.2 基础接口调用

1)定义AI业务接口
public interface Assistant {
    // 通用对话方法
    String chat(String message);
}
2)通过AiServices创建代理实例并调用
import dev.langchain4j.service.AiServices;
import org.junit.jupiter.api.Test;

public class AiServiceTest {

    @Test
    void testAiServiceChat() {
        // 初始化本地模型
        OllamaChatModel model = OllamaChatModel.builder()
                .baseUrl("http://10.100.213.26:11434")
                .modelName("modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest")
                .build();

        // 动态代理生成接口实现类
        Assistant assistant = AiServices.create(Assistant.class, model);
        // 直接调用方法对话
        String response = assistant.chat("hello,介绍一下LangChain4j");
        System.out.println(response);
    }
}

4.3 角色设定:@SystemMessage注解

通过 @SystemMessage 注解可快速给AI注入角色、行为规范、业务定位,无需每次对话重复传参,全局生效。

1)带角色设定的AI接口
import dev.langchain4j.service.SystemMessage;

public interface Friend {

    // 定义AI角色:情绪价值陪伴助手
    @SystemMessage("你是我的专属朋友,性格温柔,总能给我提供满满的情绪价值,语言通俗易懂。")
    String chat(String userMessage);
}
2)调用测试
@Test
void testRoleChat() {
    OllamaChatModel model = OllamaChatModel.builder()
            .baseUrl("http://10.100.213.26:11434")
            .modelName("modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest")
            .build();

    Friend friend = AiServices.create(Friend.class, model);
    String response = friend.chat("我最近压力很大,心情很差");
    System.out.println(response);
}

运行后AI会严格按照设定的角色回复,精准实现定制化AI能力!

05 SpringBoot 一站式集成实战

LangChain4j 官方提供SpringBoot专属启动器,无缝适配Spring生态,支持自动注入、配置化管理,适配企业级项目开发。

5.1 引入SpringBoot Starter依赖

<!-- LangChain4j SpringBoot核心启动器 -->
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-spring-boot-starter</artifactId>
</dependency>

<!-- Ollama SpringBoot适配启动器 -->
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-ollama-spring-boot-starter</artifactId>
</dependency>

5.2 改造AI接口(自动注入Bean)

使用 @AiService 注解,框架自动将接口注册为Spring Bean,无需手动创建代理对象,直接注入使用即可。

import dev.langchain4j.service.AiService;
import dev.langchain4j.service.SystemMessage;

@AiService
public interface Friend {

    @SystemMessage("你是我的专属朋友,性格温柔,总能给我提供满满的情绪价值,语言通俗易懂。")
    String chat(String userMessage);
}

5.3 配置文件参数绑定

application.ymlapplication.properties 中配置Ollama模型参数,统一管理环境配置:

# Ollama大模型配置
langchain4j.ollama.chat-model.base-url=http://10.100.213.26:11434
langchain4j.ollama.chat-model.model-name=modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest

5.4 单元测试调用

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.junit.jupiter.api.Test;

@SpringBootTest
public class BootLangChain4jTests {

    // 自动注入AI服务Bean
    @Autowired
    private Friend friend;

    @Test
    void testChat() {
        String response = friend.chat("我失恋了,心情很不好");
        System.out.println("AI回复:" + response);
    }
}

启动测试即可正常调用本地大模型,全程零冗余代码,企业级开发直接落地!

06 总结

LangChain4j 彻底解决了Java开发者AI开发跨语言、生态不适配、开发繁琐的痛点,相比Spring AI,它更轻量化、更贴合Java原生思想、上手成本更低。

核心优势总结:

  • 纯Java原生生态,无需切换Python,老Java项目无缝接入AI能力
  • 统一API适配多厂商大模型,灵活切换云端/本地模型
  • AI Services动态代理抽象,极简代码实现复杂AI业务
  • 完美集成SpringBoot,适配企业级工程化开发

⭐️推荐:

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐