1. 什么是 LangChain4j?为什么要学 LangChain4j?


LangChain4j 是 Java 生态的 LangChain 实现,旨在帮助开发者轻松集成 大语言模型(LLM)(如 OpenAI、DeepSeek、Llama3)到 Java 应用中。它提供了统一的 API,支持 对话模型(Chat)、嵌入(Embedding)、检索增强生成(RAG)、智能代理(Agent) 等功能,适用于企业级 AI 应用,简单来说就是将java与大模型集合并进行运用

大模型(LLM)的普及:以 ChatGPT、DeepSeek、Claude 等为代表的大语言模型正在改变软件开发方式,但直接调用 API 难以满足复杂业务需求(如知识库问答、自动化流程等)。

Java 企业开发生态的需求:Python 有 LangChain,但 Java/Kotlin 企业级应用(如金融、电商、ERP)同样需要 AI 集成方案。

LangChain4j 的诞生:作为 LangChain 的 Java 移植版本,它填补了 Java 生态在大模型应用开发工具链上的空白。

2.为什么选择 LangChain4j?

Java 友好:无缝集成 Spring Boot、Quarkus 等框架。

模块化设计:灵活替换模型(OpenAI/DeepSeek/LocalAI)。

企业级支持:适合高并发、安全敏感的场景。

3.构建一个基础的 LangChain4j实现

可以先去官方文档查看方法Get Started | LangChain4j

首先构建一个基本的maven项目(用jdk17),然后导入需要的依赖

  <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring-boot.version>3.2.6</spring-boot.version>
        <langchain4j.version>1.0.0-beta3</langchain4j.version>
        <mybatis-plus.version>3.5.11</mybatis-plus.version>
    </properties>
    <dependencies>
        <!-- web应用程序核心依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 编写和运行测试用例 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- 基于open-ai的langchain4j接口:ChatGPT、deepseek都是open-ai标准下的大模型 -->
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-open-ai</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <!--langchain4j依赖管理清单-->
        <dependencies>
            <dependency>
                <groupId>dev.langchain4j</groupId>
                <artifactId>langchain4j-bom</artifactId>
                <version>${langchain4j.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--引入SpringBoot依赖管理清单-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

创建启动类与application.properties,写端口后,然后就可以进行示例的创建,在test中进行测试(记住包名要测试类与主应用类相同),如下

 @Test
    public void testGPTEDemo(){
        OpenAiChatModel model = OpenAiChatModel.builder()
                .baseUrl("http://langchain4j.dev/demo/openai/v1")
                .apiKey("demo")
                .modelName("gpt-4o-mini")
                .build();

        String chat = model.chat("你好,我是谁?");
        System.out.println(chat);
    }

这里的测试模型是LangChain4j官方给的示例,代码在官方文档里面也有,这样基本上就可以完成测试

4.LangChain4j与springboot整合

文档为Spring Boot Integration | LangChain4j,上面的方法既麻烦又不能和springbot进行较好的交互,接下来就是将LangChain4j与springboot整合,首先进行依赖替换,将langchain4j-open-ai替换成

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

然后我们就可以将所有配置写在application.properties中

langchain4j.open-ai.chat-model.base-url=http://langchain4j.dev/demo/openai/v1

langchain4j.open-ai.chat-model.api-key=demo
langchain4j.open-ai.chat-model.model-name=gpt-4o-mini
langchain4j.open-ai.chat-model.log-requests=true
langchain4j.open-ai.chat-model.log-responses=true

之后,我们再测试一下与springboot整合后的情况

    
    @Autowired
    private OpenAiChatModel openAiChatModel;

    @Test
    public void testGPTSpringbootDemo(){
        String chat = openAiChatModel.chat("你好世界");
        System.out.println(chat);
    }

使用langchain4j-open-ai-spring-boot-starter依赖后,再在properties中配置好OpenAI的key和模型名称,就可以直接注入OpenAiChatModel,然后调用chat方法,chat里面就是你与大模型的对话内容可自由发挥

我们不仅可以注入OpenAiChatModel来使用,也可以用 

ChatLanguageModel:

在 LangChain4j(Java 版本的 LangChain)中,OpenAiChatModel 和 ChatLanguageModel 的关系是 实现(Implementation)与抽象接口(Interface) 的关系


   private ChatLanguageModel openAiChatModel;//OpenAiChatModel 实现了 ChatLanguageModel 接口,符合 依赖倒置原则(依赖抽象,而非具体实现)。

    @Test
    public void testGPTSpringbootDemo(){
        String chat = openAiChatModel.chat("deepseek在api引入时为什么用的是openai标准");
        System.out.println(chat);
    }

结语

这篇讲述了LangChain4j的基本运用与springboot的集成,接下来将学习接入其他大模型

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐