Spring Boot集成LangChain4j:与大模型对话的极速入门

摘要:本文旨在为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协议的模型服务,如阿里云灵积平台。

XML 复制代码
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai</artifactId>
    <version>1.0.1</version> <!-- 请使用最新稳定版 -->
</dependency>

第二步:构建ChatModel并调用

通过一个简单的Java类,即可完成与大模型的对话。

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)并开启开关。

  1. 引入Logback依赖(Spring Boot默认包含,独立项目需手动添加):

    XML 复制代码
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.5.18</version>
    </dependency>
  2. 在构建模型时启用日志

    java 复制代码
    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();

    启用后,控制台会打印详细的请求体和响应体,便于调试参数和排查问题。

小结:

  1. 引入 langchain4j-open-ai依赖。

  2. 使用 OpenAiChatModel.builder()构建对象,配置 urlapi-keymodelName

  3. 调用 model.chat()方法完成对话。

  4. 引入日志依赖,并通过 .logRequests(true).logResponses(true)开启详细日志。

三、 方式二:Spring Boot Starter集成(生产推荐)

对于Spring Boot项目,使用官方提供的starter是更标准、更符合Spring习惯的方式。

第一步:创建项目并引入起步依赖

在Spring Boot项目的pom.xml中,引入以下依赖:

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.ymlapplication.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注入到你的服务中。

java 复制代码
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
四、 关键点与最佳实践
  1. API密钥安全 :绝对不要提交到代码仓库。使用环境变量(System.getenv())、Spring Cloud Config、或阿里云KMS等安全管理方式。

  2. 配置集中化 :生产环境应将 base-urlmodel-name等也作为可配置项,便于切换模型或环境。

  3. 异常处理 :实际应用中,model.chat()调用应添加完善的异常处理(如超时、限流、内容过滤等)。

  4. 连接池与超时:对于高频调用,可在配置中调整连接超时、读取超时等参数,优化性能。

五、 总结

通过本文,你掌握了在Spring Boot项目中集成LangChain4j的两种方式:

  • 原生API方式​ 简单直接,适合快速试验。

  • Spring Boot Starter方式​ 配置与代码分离,利用依赖注入,是构建生产级AI应用的首选。

你已经成功打通了Spring应用与大语言模型之间的桥梁。接下来,可以基于此探索LangChain4j更强大的功能,如:

  • 对话记忆:实现多轮上下文对话。

  • 工具调用:让大模型使用外部工具(函数调用)。

  • 检索增强生成:为模型接入私有知识库。

希望这篇指南能帮助你高效起步,更多内容将在后面讲解

相关推荐
昨夜见军贴06162 小时前
IACheck AI审核技术赋能消费认证:为智能宠物喂食器TELEC报告构筑智能合规防线
人工智能·宠物
DisonTangor2 小时前
阿里开源语音识别模型——Qwen3-ASR
人工智能·开源·语音识别
Yvonne爱编码2 小时前
JAVA数据结构 DAY3-List接口
java·开发语言·windows·python
万事ONES2 小时前
ONES 签约北京高级别自动驾驶示范区专设国有运营平台——北京车网
人工智能·机器学习·自动驾驶
qyr67892 小时前
深度解析:3D细胞培养透明化试剂供应链与主要制造商分布
大数据·人工智能·3d·市场分析·市场报告·3d细胞培养·细胞培养
软件开发技术深度爱好者2 小时前
浅谈人工智能(AI)对个人发展的影响
人工智能
一路向北he2 小时前
esp32 arduino环境的搭建
人工智能
SmartBrain3 小时前
Qwen3-VL 模型架构及原理详解
人工智能·语言模型·架构·aigc
renhongxia13 小时前
AI算法实战:逻辑回归在风控场景中的应用
人工智能·深度学习·算法·机器学习·信息可视化·语言模型·逻辑回归