LangChain4j 集成 SpringBoot的项目实践

 更新时间:2025年12月17日 09:17:15   作者:matrixlzp  
本文主要介绍了LangChain4j 集成 SpringBoot的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、环境准备

英文官网:https://docs.langchain4j.dev/get-started

中文官网:https://docs.langchain4j.info/get-started

JDK 最低要求:17

二、创建 SpringBoot 项目

2.1、创建一个 Maven 项目

2.2、添加 SpringBoot 相关依赖

在 pom.xml 的节点下添加如下依赖:

    <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>
        <knife4j.version>4.3.0</knife4j.version>
        <!-- 截至 2025-08-22 是 1.3.0 -->
        <langchain4j.version>1.3.0</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>
        <!-- 前后端分离中的后端接口测试工具 -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
            <version>${knife4j.version}</version>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!--引入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>

2.3、创建配置文件

在 resources下创建配置文件 application.yml
server:
  port: 8080

2.4、创建启动类

package com.study;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

2.5、启动启动类

访问 http://localhost:8080/doc.html 查看程序能否成功运行并显示如下页面

三、接入大模型

参考文档: Get Started https://docs.langchain4j.dev/get-started

3.1、添加 LangChain4j 相关依赖

    <properties>
        <langchain4j.version>1.3.0</langchain4j.version>
    </properties>

    <dependencies>
        <!-- 基于open-ai的langchain4j接口:ChatGPT、deepseek都是open-ai标准下的大模型 -->
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-open-ai</artifactId>
        </dependency>
    </dependencies>

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

3.2、创建测试用例

接入任何一个大模型都需要先去申请 apiKey。
如果你暂时没有密钥,也可以使用 LangChain4j 提供的演示密钥,这个密钥是免费的,有使用配额限制,且仅限于 gpt-4o-mini 模型。

package com.study;

import dev.langchain4j.model.openai.OpenAiChatModel;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class LLMTest {
    /**
     * gpt-4o-mini语言模型接入测试
     */
    @Test
    public void testGPTDemo() {
        //初始化模型
        OpenAiChatModel model = OpenAiChatModel.builder()
        // LangChain4j提供的代理服务器,该代理服务器会将演示密钥替换成真实密钥,再将请求转发给 OpenAI API
        .baseUrl("http://langchain4j.dev/demo/openai/v1") //设置模型api地址
        .apiKey("demo") //设置模型apiKey
        .modelName("gpt-4o-mini") //设置模型名称
        .build();
        // 向模型提问
        String answer = model.chat("你好");
        // 输出结果
        System.out.println(answer);
    }
}

四、SpringBoot 整合

参考文档:https://docs.langchain4j.dev/tutorials/spring-boot-integration

4.1、替换依赖

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

4.2、配置模型参数

langchain4j:
    open-ai:
        chat-model:
          # langchain4j测试模型
          api-key: demo
          model-name: gpt-4o-mini
          base-url: http://langchain4j.dev/demo/openai/v1
          # 请求和响应日志
          log-requests: true
          log-responses: true
          
# 启用日志debug级别
logging:
  level:
    root: debug

4.3、创建测试用例

    /**
     * 整合SpringBoot
     */
    @Autowired
    private OpenAiChatModel openAiChatModel;
    @Test
    public void testSpringBoot() {
        // 向模型提问
        String answer = openAiChatModel.chat("你是谁?");
        // 输出结果
        System.out.println(answer);
    }

到此这篇关于LangChain4j 集成 SpringBoot的项目实践的文章就介绍到这了,更多相关LangChain4j 集成 SpringBoot内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java或kafka_tool连接不上虚拟机的kafka问题及解决

    Java或kafka_tool连接不上虚拟机的kafka问题及解决

    文章介绍了如何配置防火墙端口、修改config/server.properties文件以及配置kafka_tool,并分享了个人经验
    2026-01-01
  • java实现微信公众号发送模版消息

    java实现微信公众号发送模版消息

    这篇文章以订单推送为例,主要为大家详细介绍了java实现微信公众号发送模版消息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Spring Reactor基本介绍和案例解析

    Spring Reactor基本介绍和案例解析

    Spring Reactor 是一个响应式编程框架,非常适合类似 MXN 这样的流程编排系统,也是 Java 中异步编程的一种补充,这篇文章主要介绍了Spring Reactor基本介绍和案例解析,需要的朋友可以参考下
    2024-07-07
  • Java中的LinkedHashMap源码详解

    Java中的LinkedHashMap源码详解

    这篇文章主要介绍了Java中的LinkedHashMap源码详解,LinkedHashMap的实现方式是将所有的Entry节点链入一个双向链表,并且它的底层数据结构是HashMap,因此,LinkedHashMap具有HashMap的所有特性,但在存取元素的细节实现上有所不同,需要的朋友可以参考下
    2023-09-09
  • 浅谈SpringBoot2.3 新特配置文件属性跟踪

    浅谈SpringBoot2.3 新特配置文件属性跟踪

    这篇文章主要介绍了浅谈SpringBoot2.3 新特配置文件属性跟踪,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • SpringBoot松散绑定/宽松绑定(Relaxed Binding)的实现

    SpringBoot松散绑定/宽松绑定(Relaxed Binding)的实现

    本文主要介绍了SpringBoot松散绑定/宽松绑定(Relaxed Binding)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-08-08
  • Java中的升序和降序问题

    Java中的升序和降序问题

    这篇文章主要介绍了Java中的升序和降序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 实例解析Java单例模式编程中对抽象工厂模式的运用

    实例解析Java单例模式编程中对抽象工厂模式的运用

    这篇文章主要介绍了实例解析Java单例模式编程中对抽象工厂模式的运用,抽象工厂模式可以看作是工厂方法模式的升级版,本需要的朋友可以参考下
    2016-02-02
  • 关于java中多个JDK和切换版本介绍

    关于java中多个JDK和切换版本介绍

    大家好,本篇文章主要讲的是关于java中多个JDK和切换版本介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • Spring Boot实现第一次启动时自动初始化数据库流程详解

    Spring Boot实现第一次启动时自动初始化数据库流程详解

    在现在的后端开发中,只要是使用关系型数据库,相信SSM架构(Spring Boot + MyBatis)已经成为首选,本文就以Spring Boot + MyBatis为例,使用MySQL作为数据库,完成数据库初始化功能,文中有详细的代码示例,需要的朋友可以参考下
    2023-05-05

最新评论