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更强大的功能,如:

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

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

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

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

相关推荐
醒醒该学习了!8 小时前
视觉与声音大模型(理论篇)
人工智能
Cloud_Shy6188 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 33 - 35)
开发语言·人工智能·笔记·python·学习方法
救救孩子把8 小时前
HyperFrames by HeyGen 入门教程
人工智能·视频生成·heygen
JS菌8 小时前
AI Agent 沙箱双层防护体系:从权限过滤到内核隔离的完整实现
前端·人工智能·后端
字节跳动开源8 小时前
Viking AI 搜索 CLI—— 开发者的合法“外挂”
人工智能·agent
GlobalInfo8 小时前
新能源汽车整车控制器(VCU)产业洞察:市场现状+发展前景(2026版)
人工智能·汽车
艾利克斯冰8 小时前
Java 设计模式-行为型模式(更新中)
java·开发语言·设计模式
倒霉蛋小马8 小时前
Java新特性:record关键字
java·开发语言
折哥的程序人生 · 物流技术专研9 小时前
《Java 100 天进阶之路》第95篇:消息队列基础(RocketMQ/Kafka)(2026版)
java·面试·kafka·rocketmq·java-rocketmq·求职招聘
米小虾9 小时前
AI 安全攻防 2026:从对抗样本到 Agent 安全,开发者必须面对的五道防线
人工智能·安全