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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • IDEA报错:java:无效的源发行版21解决方式

    IDEA报错:java:无效的源发行版21解决方式

    这篇文章主要给大家介绍了关于IDEA报错:java:无效的源发行版21的解决方式,这个错误是因为你的项目使用的Java版本与你的IDEA使用的Java版本不一致导致的,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • 如何区分JAVA中的throws和throw

    如何区分JAVA中的throws和throw

    这篇文章主要介绍了如何区分JAVA中的throws和throw,文中讲解十分详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • Java -jar命令如何运行外部依赖JAR包

    Java -jar命令如何运行外部依赖JAR包

    在Java应用部署中,java -jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java -jar会面临类加载困境,本文就来聊聊该如何解决吧
    2025-06-06
  • 将Mybatis升级为Mybatis-Plus的详细过程

    将Mybatis升级为Mybatis-Plus的详细过程

    本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现系统功能无损升级,同时享受MyBatis-Plus带来的便捷特性,如代码简化和性能优化,需要的朋友可以参考下
    2025-04-04
  • Java开发常见错误之数值计算精度和舍入问题详析

    Java开发常见错误之数值计算精度和舍入问题详析

    除了使用Double保存浮点数可能带来精度问题外,更匪夷所思的是这种精度问题,下面这篇文章主要给大家介绍了关于Java开发常见错误之数值计算精度和舍入问题的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • Java数据结构之有向图设计与实现详解

    Java数据结构之有向图设计与实现详解

    有向图是具有方向性的图,由一组顶点和一组有方向的边组成,每条方向的边都连着一对有序的顶点。本文为大家介绍的是有向图的设计与实现,需要的可以参考一下
    2022-11-11
  • java中实现递归计算二进制表示中1的个数

    java中实现递归计算二进制表示中1的个数

    这是一个很有意思的问题,是在面试中特别容易被问到的问题之一,解决这个问题第一想法肯定是一位一位的去判断,是1计数器+1,否则不操作,跳到下一位,十分容易,编程初学者就可以做得到!
    2015-05-05
  • 使用Java对URL进行编码和解码

    使用Java对URL进行编码和解码

    在互联网应用中,URL(Uniform Resource Locator,统一资源定位符)是定位和访问网络资源的重要标识,然而,URL 中可能包含一些特殊字符,为了保证 URL 的有效性和兼容性,必须对 URL 进行编码处理,所以本文给大家介绍了如何使用Java对URL进行编码和解码
    2025-03-03
  • Java如何获取当前时间的小时/分钟(实现方法)

    Java如何获取当前时间的小时/分钟(实现方法)

    文章介绍了Java获取当前时间的小时、分钟等的方法,包括两种常见方法,并鼓励读者继续浏览相关文章,感兴趣的朋友一起看看吧
    2025-02-02
  • Java编写超时工具类实例讲解

    Java编写超时工具类实例讲解

    在本篇内容里小编给大家分享的是一篇关于Java编写超时工具类实例讲解内容,有兴趣的朋友们可以学习参考下。
    2021-02-02

最新评论