LangChain4j 集成 SpringBoot的項(xiàng)目實(shí)踐
一、環(huán)境準(zhǔn)備
英文官網(wǎng):https://docs.langchain4j.dev/get-started
中文官網(wǎng):https://docs.langchain4j.info/get-started
JDK 最低要求:17

二、創(chuàng)建 SpringBoot 項(xiàng)目
2.1、創(chuàng)建一個(gè) Maven 項(xiàng)目

2.2、添加 SpringBoot 相關(guān)依賴
在 pom.xml 的節(jié)點(diǎn)下添加如下依賴:
<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應(yīng)用程序核心依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 編寫和運(yùn)行測(cè)試用例 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 前后端分離中的后端接口測(cè)試工具 -->
<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、創(chuàng)建配置文件
server: port: 8080
2.4、創(chuàng)建啟動(dòng)類
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、啟動(dòng)啟動(dòng)類
訪問 http://localhost:8080/doc.html 查看程序能否成功運(yùn)行并顯示如下頁(yè)面

三、接入大模型
參考文檔: Get Started https://docs.langchain4j.dev/get-started
3.1、添加 LangChain4j 相關(guān)依賴
<properties>
<langchain4j.version>1.3.0</langchain4j.version>
</properties>
<dependencies>
<!-- 基于open-ai的langchain4j接口:ChatGPT、deepseek都是open-ai標(biāo)準(zhǔn)下的大模型 -->
<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、創(chuàng)建測(cè)試用例
接入任何一個(gè)大模型都需要先去申請(qǐng) apiKey。
如果你暫時(shí)沒有密鑰,也可以使用 LangChain4j 提供的演示密鑰,這個(gè)密鑰是免費(fèi)的,有使用配額限制,且僅限于 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語言模型接入測(cè)試
*/
@Test
public void testGPTDemo() {
//初始化模型
OpenAiChatModel model = OpenAiChatModel.builder()
// LangChain4j提供的代理服務(wù)器,該代理服務(wù)器會(huì)將演示密鑰替換成真實(shí)密鑰,再將請(qǐng)求轉(zhuǎn)發(fā)給 OpenAI API
.baseUrl("http://langchain4j.dev/demo/openai/v1") //設(shè)置模型api地址
.apiKey("demo") //設(shè)置模型apiKey
.modelName("gpt-4o-mini") //設(shè)置模型名稱
.build();
// 向模型提問
String answer = model.chat("你好");
// 輸出結(jié)果
System.out.println(answer);
}
}
四、SpringBoot 整合
參考文檔:https://docs.langchain4j.dev/tutorials/spring-boot-integration
4.1、替換依賴
<dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId> </dependency>
4.2、配置模型參數(shù)
langchain4j:
open-ai:
chat-model:
# langchain4j測(cè)試模型
api-key: demo
model-name: gpt-4o-mini
base-url: http://langchain4j.dev/demo/openai/v1
# 請(qǐng)求和響應(yīng)日志
log-requests: true
log-responses: true
# 啟用日志debug級(jí)別
logging:
level:
root: debug4.3、創(chuàng)建測(cè)試用例
/**
* 整合SpringBoot
*/
@Autowired
private OpenAiChatModel openAiChatModel;
@Test
public void testSpringBoot() {
// 向模型提問
String answer = openAiChatModel.chat("你是誰?");
// 輸出結(jié)果
System.out.println(answer);
}
到此這篇關(guān)于LangChain4j 集成 SpringBoot的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)LangChain4j 集成 SpringBoot內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA報(bào)錯(cuò):java:無效的源發(fā)行版21解決方式
這篇文章主要給大家介紹了關(guān)于IDEA報(bào)錯(cuò):java:無效的源發(fā)行版21的解決方式,這個(gè)錯(cuò)誤是因?yàn)槟愕捻?xiàng)目使用的Java版本與你的IDEA使用的Java版本不一致導(dǎo)致的,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
將Mybatis升級(jí)為Mybatis-Plus的詳細(xì)過程
本文詳細(xì)介紹了在若依管理系統(tǒng)(v3.8.8)中將MyBatis升級(jí)為MyBatis-Plus的過程,旨在提升開發(fā)效率,通過本文,開發(fā)者可實(shí)現(xiàn)系統(tǒng)功能無損升級(jí),同時(shí)享受MyBatis-Plus帶來的便捷特性,如代碼簡(jiǎn)化和性能優(yōu)化,需要的朋友可以參考下2025-04-04
Java開發(fā)常見錯(cuò)誤之?dāng)?shù)值計(jì)算精度和舍入問題詳析
除了使用Double保存浮點(diǎn)數(shù)可能帶來精度問題外,更匪夷所思的是這種精度問題,下面這篇文章主要給大家介紹了關(guān)于Java開發(fā)常見錯(cuò)誤之?dāng)?shù)值計(jì)算精度和舍入問題的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
Java數(shù)據(jù)結(jié)構(gòu)之有向圖設(shè)計(jì)與實(shí)現(xiàn)詳解
有向圖是具有方向性的圖,由一組頂點(diǎn)和一組有方向的邊組成,每條方向的邊都連著一對(duì)有序的頂點(diǎn)。本文為大家介紹的是有向圖的設(shè)計(jì)與實(shí)現(xiàn),需要的可以參考一下2022-11-11
java中實(shí)現(xiàn)遞歸計(jì)算二進(jìn)制表示中1的個(gè)數(shù)
這是一個(gè)很有意思的問題,是在面試中特別容易被問到的問題之一,解決這個(gè)問題第一想法肯定是一位一位的去判斷,是1計(jì)數(shù)器+1,否則不操作,跳到下一位,十分容易,編程初學(xué)者就可以做得到!2015-05-05
Java如何獲取當(dāng)前時(shí)間的小時(shí)/分鐘(實(shí)現(xiàn)方法)
文章介紹了Java獲取當(dāng)前時(shí)間的小時(shí)、分鐘等的方法,包括兩種常見方法,并鼓勵(lì)讀者繼續(xù)瀏覽相關(guān)文章,感興趣的朋友一起看看吧2025-02-02

