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

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

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

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

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

相关推荐
健忘的派大星2 小时前
需求激增800%!2025年第一硬通货:懂大模型、云计算和硬件的“前沿部署工程师”!
人工智能·算法·架构·langchain·云计算·大模型学习·大模型教程
Amanda_yan2 小时前
云计算和边缘计算到底有什么不同?一文讲清楚
人工智能·云计算·边缘计算
vx_Biye_Design2 小时前
【关注可免费领取源码】云计算及其应用网络教学系统--毕设附源码35183
java·spring·spring cloud·servlet·eclipse·云计算·课程设计
拓端研究室3 小时前
2026年人工智能AI未来报告:智能体、元宇宙、教育、商业化落地|附400+份报告PDF、数据、可视化模板汇总下载
人工智能·百度
橙露8 小时前
数据特征工程:缺失值、异常值、标准化一站式解决方案
人工智能·机器学习
新加坡内哥谈技术8 小时前
OpenAI 的 Codex 团队如何工作并利用 AI
人工智能
码农阿豪8 小时前
Nacos 日志与 Raft 数据清理指南:如何安全释放磁盘空间
java·安全·nacos
星河耀银海8 小时前
人工智能大模型的安全与隐私保护:技术防御与合规实践
人工智能·安全·ai·隐私
直有两条腿9 小时前
【大模型】Langchain4j
java·langchain
love530love9 小时前
Scoop 完整迁移指南:从 C 盘到 D 盘的无缝切换
java·服务器·前端·人工智能·windows·scoop