
人工智能集成是 2025 年最大的浪潮。开发者们乐于看到传统的 Java 技术栈(如 Spring Boot)如何与 LLM 交互——而 LangChain4J 正是一个冉冉升起的新星。
本次主题思路:
- 如何将 Spring Boot REST API 与 OpenAI 或 Ollama 模型连接
- 使用 LangChain4J 进行嵌入、内存和提示模板的编写
- 演示:Spring Boot 微服务中的聊天机器人或文档问答
- 额外提示:使用 Spring Security + API Keys 保护您的 API 调用。
“Spring Boot + AI Agents:我如何在 2025 年使用 LangChain4J 和 OpenAI 构建智能 API R&quo;
为什么这很重大
如果你是一名 Spring Boot 开发人员,你可能已经听说过 ChatGPT、LangChain 和 AI 代理等各种热门技术。但说实话,大多数 AI 教程都只针对 Python。
那么……Java 可以加入 AI 的行列吗? 当然可以——这要归功于LangChain4J ,这是一个受 LangChain 启发而开发的 Java 库,旨在让用户能够轻松地在 Spring Boot 中直接构建 AI 驱动的应用程序。
读完本文,你将拥有一个可正常运行的、由人工智能驱动的 REST API,它可以:
- 与 OpenAI 聊天
- 存储上下文记忆
- 像其他 Spring Boot 服务一样部署
⚙️ 第一步:项目设置
使用 Spring Initializr创建一个新的Spring Boot 项目(推荐 3.3 及以上版本):
依赖关系:
- Spring Web
- Lombok
- LangChain4J(我们将手动添加)
- Spring Boot 开发工具
将此添加到您的pom.xml:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>0.27.0</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-openai</artifactId>
<version>0.27.0</version>
</dependency>
第二步:添加您的 OpenAI API 密钥
创建环境变量或application.yml文件:
openai:
api-key: YOUR_OPENAI_API_KEY
或者,如果您愿意,可以将其存放在.env(为了安全起见,提议存放在)。
步骤 3:配置 OpenAI 客户端
目前我们将定义一个 Spring 配置,用于设置 LangChain4J 的 OpenAI 模型:
@Configuration
public class OpenAIConfig {
@Value("${openai.api-key}")
private String apiKey;
@Bean
public OpenAiChatModel openAiChatModel() {
return OpenAiChatModel.builder()
.apiKey(apiKey)
.modelName("gpt-4o-mini") // 使用 GPT-4-TURBO 或者您喜爱的任何模型
.temperature(0.7)
.build();
}
}
第四步:创建人工智能服务
LangChain4J 使用@AiService — 这会将任何界面变成一个由提示驱动的 AI“代理”。
例子:
import dev.langchain4j.service.AiService;
import dev.langchain4j.service.UserMessage;
@AiService
public interface ChatBotService {
@UserMessage("你是一位专业的 Java 辅助人员。请清晰、简洁地回答问题。")
String ask(String question);
}
目前将其注入到 Spring Boot REST 控制器中。
第 5 步:构建 REST API
@RestController
@RequestMapping("/api/chat")
@RequiredArgsConstructor
public class ChatController {
private final ChatBotService chatBotService;
@PostMapping
public ResponseEntity<String> ask(@RequestBody Map<String, String> request) {
String question = request.get("question");
String answer = chatBotService.ask(question);
return ResponseEntity.ok(answer);
}
}
目前启动你的应用并发送请求:
curl -X POST http://localhost:8080/api/chat
-H "Content-Type: application/json"
-d '{"question": "用简单易懂的语言解释 Java 流式编程。"}'
输出:
Java Streams 使您能够以简洁、函数式的方式处理数据(例如列表)——进行过滤、映射和元素求和操作,而无需编写循环代码。
轰!——你的 Spring Boot API 瞬间变成了AI 驱动的 API。
第六步:添加记忆(情境感知)
要让你的聊天机器人记住之前的消息:
@Bean
public ChatMemory chatMemory() {
return MessageWindowChatMemory.withMaxMessages(10);
}
@Bean
public ChatBotService chatBotService(OpenAiChatModel model, ChatMemory memory) {
return AiServices.create(ChatBotService.class, model, memory);
}
目前它可以进行多轮对话——就像 ChatGPT 一样。
⚡ 第 7 步:添加 RAG(检索增强生成)
LangChain4J 支持连接文档嵌入以进行私有数据问答。
示例设置:
@Bean
public EmbeddingStore<TextSegment> embeddingStore() {
return new InMemoryEmbeddingStore<>();
}
@Bean
public RetrievalAugmentedGenerator rag(OpenAiEmbeddingModel embeddingModel,
OpenAiChatModel chatModel,
EmbeddingStore<TextSegment> store) {
return new RetrievalAugmentedGenerator(embeddingModel, chatModel, store);
}
第 8 步:使用 Spring Boot Actuator 添加可观测性
要监控请求、延迟和吞吐量,请将以下内容添加到您的配置中pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
并公开指标:
management:
endpoints:
web:
exposure:
include: health, metrics, prometheus
如果您要部署到 Kubernetes 或使用 Grafana 进行监控,这将是理想之选
第 9 步:在 Postman 中测试 AI API
尝试使用类似这样的提示:
- 请解释一下@Component和@Service之间的区别。
- “编写一个处理文件上传的 REST 控制器。”
- “重构这段代码,使其使用 Java Streams。”
你的AI将像一个专门的Java助手一样响应——托管在你自己的服务器上。
⚙️ 第 10 步:像部署普通 Spring Boot 应用一样部署
它只是个罐子!
mvn clean package
java -jar target/ai-spring-boot.jar
部署到:
- 阿里云ECS
- AWS EC2
- Google Cloud Run
- Kubernetes
无需 Python,无需 GPU——只需 Java 就能施展 AI 魔法。
结语
将LangChain4J 和 OpenAI集成到 Spring Boot 中,就像给你的 Java 应用装上了一个大脑。你可以构建:
- 聊天机器人
- 智能文档助手
- 客户支持人工智能
- 编码助手
全部用你最喜爱的语言——Java☕编写。
R “后端未来不仅仅是 API,而是智能API。”
如果你是 Java / 后端 / 全栈开发者,这篇必定对你有用
本号持续输出:
- Java 核心 & 高并发 & JVM
- Spring / 架构设计 / 实战踩坑
- AI × 编程 / Agent × 工程化
关注我,少踩坑,多走捷径。





