Spring Boot集成LangChain4j:与大模型对话的极速入门
本文为Java开发者提供SpringBoot集成LangChain4j的实战指南,介绍了两种实现方式:原生API适合快速验证,通过核心库直接调用大模型;SpringBoot Starter方式更符合生产标准,支持自动配置和依赖注入。文章详细演示了从环境配置、依赖引入到代码实现的完整流程,特别强调API密钥安全管理和日志调试技巧,帮助开发者在10分钟内完成首个AI应用。最后指出进阶方向,如多轮对话和
摘要:本文旨在为Java开发者提供一份清晰的Spring Boot集成LangChain4j的实战指南。无需复杂的理论,我们将从零开始,通过两种主流方式(原生API与Spring Boot Starter)快速实现与大模型(以阿里云通义千问为例)的对话功能,并涵盖日志配置、依赖管理等关键细节,助你10分钟内跑通第一个AI应用。
一、 引言:为什么选择LangChain4j?
在AI应用开发浪潮中,LangChain已成为连接应用程序与大语言模型(LLM)的事实标准框架。而LangChain4j 是其官方的Java版本,为Java生态系统带来了相同的强大能力。
对于Spring Boot开发者而言,集成LangChain4j意味着:
-
标准化:统一的API调用各种模型(OpenAI、通义千问、Ollama等)。
-
便捷集成:与Spring生态无缝融合,支持自动配置和依赖注入。
-
功能丰富:不仅支持简单对话(Chat),还为后续的RAG、Agent等高级应用打下基础。
本文将以实现一个简单的“会话功能”为目标,带你快速入门。
二、 方式一:原生API集成(最直观)
这种方式直接依赖LangChain4j的核心库,适合快速原型验证或非Spring环境。
第一步:引入核心依赖
在项目的pom.xml中,添加langchain4j-open-ai依赖。注意,虽然名为“open-ai”,但它兼容所有OpenAI API协议的模型服务,如阿里云灵积平台。
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>1.0.1</version> <!-- 请使用最新稳定版 -->
</dependency>
第二步:构建ChatModel并调用
通过一个简单的Java类,即可完成与大模型的对话。
import dev.langchain4j.model.openai.OpenAiChatModel;
public class QuickStartDemo {
public static void main(String[] args) {
// 1. 构建模型对象
OpenAiChatModel model = OpenAiChatModel.builder()
// 以阿里云通义千问的兼容端点为例
.baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
// 建议将API-KEY存储在环境变量中,保障安全
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// 指定模型,例如 qwen-plus(通义千问Plus)
.modelName("qwen-plus")
.build();
// 2. 发起对话
String answer = model.chat("请用Java写一个Hello World程序");
// 3. 输出结果
System.out.println(answer);
}
}
-
baseUrl: 指向大模型服务的API地址。示例为阿里云的兼容模式端点。 -
apiKey: 你的模型服务平台密钥。切勿硬编码在代码中! 示例使用环境变量是安全最佳实践。 -
modelName: 指定要使用的具体模型。
运行此程序,你就能收到大模型的回复了!
第三步(增强):启用请求/响应日志
调试时,查看原始的请求和响应JSON非常有用。只需引入日志框架(如Logback)并开启开关。
-
引入Logback依赖(Spring Boot默认包含,独立项目需手动添加):
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.5.18</version> </dependency> -
在构建模型时启用日志:
OpenAiChatModel model = OpenAiChatModel.builder() .baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1") .apiKey(System.getenv("DASHSCOPE_API_KEY")) .modelName("qwen-plus") // 开启请求/响应日志 .logRequests(true) .logResponses(true) .build();启用后,控制台会打印详细的请求体和响应体,便于调试参数和排查问题。
小结:
-
引入
langchain4j-open-ai依赖。 -
使用
OpenAiChatModel.builder()构建对象,配置url、api-key、modelName。 -
调用
model.chat()方法完成对话。 -
引入日志依赖,并通过
.logRequests(true).logResponses(true)开启详细日志。
三、 方式二:Spring Boot Starter集成(生产推荐)
对于Spring Boot项目,使用官方提供的starter是更标准、更符合Spring习惯的方式。
第一步:创建项目并引入起步依赖
在Spring Boot项目的pom.xml中,引入以下依赖:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
<version>1.0.1</version> <!-- 请使用最新稳定版 -->
</dependency>
第二步:在 application.yml中配置模型
将模型配置外部化,是Spring Boot的核心特性。在 application.yml或 application.properties中配置:
langchain4j:
open-ai:
chat-model:
# 服务地址
base-url: https://dashscope.aliyuncs.com/compatible-mode/v1
# API密钥,推荐使用环境变量或配置中心
api-key: ${DASHSCOPE_API_KEY}
# 模型名称
model-name: qwen-plus
# 可选:开启详细日志
log-requests: true
log-responses: true
第三步:开发Controller接口
现在,你可以像注入任何Spring Bean一样,将 OpenAiChatModel注入到你的服务中。
import dev.langchain4j.model.openai.OpenAiChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/ai")
public class ChatController {
@Autowired
private OpenAiChatModel chatModel; // 由Spring自动装配
@GetMapping("/chat")
public String chat(@RequestParam String message) {
// 直接使用注入的模型进行交互
return chatModel.chat(message);
}
}
启动应用,访问 http://localhost:8080/api/ai/chat?message=你好,即可获得AI的回复。
第四步(可选):配置更详细的日志
如果你想查看LangChain4j内部更详细的执行过程,可以在配置文件中设置日志级别:
logging:
level:
# 将LangChain4j相关包的日志级别设置为DEBUG
dev.langchain4j: debug
四、 关键点与最佳实践
-
API密钥安全:绝对不要提交到代码仓库。使用环境变量(
System.getenv())、Spring Cloud Config、或阿里云KMS等安全管理方式。 -
配置集中化:生产环境应将
base-url、model-name等也作为可配置项,便于切换模型或环境。 -
异常处理:实际应用中,
model.chat()调用应添加完善的异常处理(如超时、限流、内容过滤等)。 -
连接池与超时:对于高频调用,可在配置中调整连接超时、读取超时等参数,优化性能。
五、 总结
通过本文,你掌握了在Spring Boot项目中集成LangChain4j的两种方式:
-
原生API方式 简单直接,适合快速试验。
-
Spring Boot Starter方式 配置与代码分离,利用依赖注入,是构建生产级AI应用的首选。
你已经成功打通了Spring应用与大语言模型之间的桥梁。接下来,可以基于此探索LangChain4j更强大的功能,如:
-
对话记忆:实现多轮上下文对话。
-
工具调用:让大模型使用外部工具(函数调用)。
-
检索增强生成:为模型接入私有知识库。
希望这篇指南能帮助你高效起步,更多内容将在后面讲解
更多推荐



所有评论(0)