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

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

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

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

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

相关推荐
Georgeviewer4 小时前
商业落地评测|实体门店GEO优化性价比与服务体系深度复盘
大数据·人工智能
GuWenyue5 小时前
分不清AI Workflow与Agent?3个实战案例彻底讲透,做AI应用不再踩选型坑
人工智能
彩讯股份3006346 小时前
彩讯股份与心洲科技签署战略合作协议,共建企业级模型后训练能力
人工智能·科技
迅易科技6 小时前
从场景验证到Agent上线:迅易 × WorkBuddy如何帮助企业建设AI能力?
人工智能·ai·腾讯云
腻害兔6 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
PNP Robotics6 小时前
多伦多大学机器人峰会|物理AI与具身智能落地新趋势
人工智能·深度学习·机器学习·机器人
GIR1236 小时前
官方出品 | 多通道土壤呼吸测量系统市场现状与十五五规划深度报告:行业分析+趋势预测全收录
大数据·人工智能·机器学习
绿算技术6 小时前
绿算技术亮相第十八届HPC AI中国年会,擘画AI基础设施全栈协同新图景
人工智能
GetcharZp6 小时前
抛弃低效SSH!这套Ansible+Web可视化神器,让你天天准点下班!
后端
Litluecat7 小时前
2026年7月22日科技热点新闻
人工智能·科技·新闻·每日·速览