LangChain4j 是一个用于构建和操作语言模型(LLM)应用的 Java 框架,而 Spring Boot 3 是 Java 生态中最流行的框架之一。本文将带你从零开始,结合 LangChain4j 和 Spring Boot 3,构建一个智能问答系统。我们将涵盖从环境搭建到实际开发的完整流程,帮助你快速上手 LangChain4j 并集成到 Spring Boot 项目中。
上一篇文章分享了SpringAI基于向量数据库PGVector和智谱大模型实现RAG今天这篇文章我来分享大模型应用开发LangChain4j和SpringBoot3.4.3实战:构建智能问答系统。
完整代码在文章最后,如果觉得本篇文章对你有用,记得点赞、关注、收藏哦。你的支持是我持续更新的动力!
文章最后可以加入免费的Java&AI技术和支付系统沟通社群,一起探讨Java/你的产品如何与AI结合,请按照要求加入。在群中可以聊开发、系统设计、架构、行业趋势、AI等等话题
1. 环境准备
1.1 工具与依赖
-
JDK 17+:Spring Boot 3 和 LangChain4j 需要 JDK 17 或更高版本。
-
Maven:本文使用 Maven 作为构建工具。
-
IDE:IntelliJ IDEA2024.3.4
-
OpenAI API Key:LangChain4j 支持 OpenAI 的 GPT 模型,你需要一个 OpenAI API Key。也可以使用Langchain4j测试账号。
-
LangChain4j 0.36.2
1.2 创建 Spring Boot 项目
我们先看本篇文章对应的项目结构,请看下图
2. 集成 LangChain4j
2.1 添加 LangChain4j 依赖
在 pom.xml
中添加 LangChain4j 的依赖:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.itbeien.ai</groupId>
<artifactId>langchain4j-labs</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>lab02</artifactId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<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>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
</dependency>
</dependencies>
</project>
2.2 配置 OpenAI 模型
在 application.properties
中添加 OpenAI 的 API Key:
langchain4j.open-ai.chat-model.api-key=demo
langchain4j.open-ai.chat-model.model-name=gpt-4o-mini
3. 构建智能问答系统
3.1 创建问答服务
创建一个服务类 QAService
,用于处理问答逻辑:
package cn.itbeien.lab02.service;
import dev.langchain4j.model.chat.ChatLanguageModel;
import org.springframework.stereotype.Service;
/**
* @author itbeien
* 项目网站:https://www.itbeien.cn
* Java/AI学习社群
* Copyright© 2025 itbeien
*/
@Service
public class QAService {
ChatLanguageModel chatLanguageModel;
public QAService(ChatLanguageModel chatLanguageModel) {
this.chatLanguageModel = chatLanguageModel;
}
public String askQuestion(String userMessage) {
return chatLanguageModel.generate(userMessage);
}
}
3.2 创建 REST 控制器
创建一个控制器类 QAController
,用于暴露 RESTful API:
package cn.itbeien.lab02.controller;
import cn.itbeien.lab02.service.QAService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author itbeien
* 项目网站:https://www.itbeien.cn
* 公众号:贝恩聊架构
* 全网同名,欢迎小伙伴们关注
* Java/AI学习社群
* Copyright© 2025 itbeien
*/
@RestController
@RequestMapping("/api")
public class QAController {
private final QAService qaService;
public QAController(QAService qaService) {
this.qaService = qaService;
}
@PostMapping("/ask")
public String askQuestion(@RequestBody String question) {
return qaService.askQuestion(question);
}
}
3.3 测试 API
启动 Spring Boot 应用,使用 Postman 或 curl 测试 API:
curl -X POST http://localhost:8080/api/ask -H "Content-Type: text/plain" -d "法国的首都是什么?"
响应结果:
4. 添加记忆机制
为了支持多轮对话,我们可以使用 LangChain4j 的 ChatMemory
功能。
4.1 配置信息
package cn.itbeien.lab02.config;
import dev.langchain4j.memory.ChatMemory;
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author itbeien
* 项目网站:https://www.itbeien.cn
* 公众号:贝恩聊架构
* 全网同名,欢迎小伙伴们关注
* Java/AI学习社群
* Copyright© 2025 itbeien
*/
@Configuration
public class AssistantConfiguration {
@Bean
ChatMemory chatMemory() {
return MessageWindowChatMemory.withMaxMessages(10);
}
}
4.2 新建多轮问答服务
新建 MultiTurnChatService
以支持多轮对话:
package cn.itbeien.lab02.service;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.spring.AiService;
/**
* @author itbeien
* 项目网站:https://www.itbeien.cn
* 公众号:贝恩聊架构
* 全网同名,欢迎小伙伴们关注
* Java/AI学习社群
* Copyright© 2025 itbeien
*/
@AiService
public interface MultiTurnChatService {
@SystemMessage("你是一个支持多轮对话的客服助理")
String chat(String userMessage);
}
4.3 测试多轮对话
使用 Postman 或 curl 测试多轮对话:
curl -X POST http://localhost:8080/api/multi/chat -H "Content-Type: text/plain" -d "法国的首都是什么?"
curl -X POST http://localhost:8080/api/multi/chat -H "Content-Type: text/plain" -d "那个城市的人口是多少"
响应结果:
通过本篇文章,你已经掌握了如何使用 LangChain4j 和 Spring Boot 3 构建一个智能问答系统。我们从环境搭建、依赖配置、服务开发到多轮对话的实现,逐步完成了整个项目的开发。LangChain4j 提供了强大的语言模型集成能力,而 Spring Boot 3 则让开发过程更加高效和便捷。
以上就是今天大模型应用开发LangChain4j和SpringBoot3.4.3实战:构建智能问答系统全部内容,文章最后有源码下载地址
如何学习AI大模型?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓