LangChain4j 是一个用于构建基于大型语言模型 (LLM) 应用的 Java 库,类似于 Python 的 LangChain。将其与 Spring Boot 集成可以方便地开发企业级 AI 应用。下面是集成详细步骤:
在 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> <groupId>com.hxstrive</groupId> <artifactId>langchain4j_springboot</artifactId> <version>0.0.1</version> <packaging>jar</packaging> <name>langchain4j_springboot</name> <description>Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.5.0</version> <relativePath /> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!-- langchain4j OpenAI 依赖 --> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId> <version>1.0.0-beta3</version> </dependency> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-spring-boot-starter</artifactId> <version>1.0.0-beta3</version> </dependency> <!-- Spring Boot 基础依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</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-webflux</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <!-- http://localhost:8080/actuator/autoconfig 端点查看自动配置报告 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.6.15</version> </plugin> </plugins> </build> </project>
依赖说明:
langchain4j-spring-boot-starter 依赖是 LangChain4j 框架的 Spring Boot 基础自动配置,主要有如下能力:
自动初始化 LLM 客户端、对话记忆(Memory)、工具调用(Tool)等核心组件
提供 Spring 环境下的 Bean 管理(如 ChatModel 自动注入)
统一配置规范(支持 application.yml/properties 配置)
langchain4j-open-ai-spring-boot-starter 依赖是针对 OpenAI 系列模型的专有自动配置,主要有如下能力:
适配 OpenAI 的 API 协议(如 GPT-3.5/4、Embedding 模型)
自动配置 OpenAI 专属客户端(处理 API Key、请求超时、代理等)
支持 OpenAI 特有功能(如函数调用、流式响应)
在 application.yml 中,添加如下配置信息:
server: port: 8080 # langchain4j 配置 langchain4j: open-ai: chat-model: base-url: https://api.xty.app/v1 api-key: sk-vHTHX8D3wNZBf***********48AbB600 model-name: gpt-3.5-turbo log-requests: true log-responses: true
上述配置中,LangChain4j 的核心配置为 langchain4j.open-ai 节点,主要针对 OpenAI 兼容模型的核心配置,框架会根据这些参数自动初始化 ChatModel 等核心 Bean,无需手动创建客户端。配置项功能如下:
base-url: https://api.xty.app/v1 指定 OpenAI 兼容接口的基础 URL(API 端点地址)。默认情况下,OpenAI 官方接口地址是 https://api.openai.com/v1。上述配置的是第三方代理接口(https://api.xty.app/v1),适用于无法直接访问 OpenAI 官方接口的场景(如国内环境)。
api-key: sk-vHTHX8D3wNZBf***********48AbB600 指定访问接口的身份凭证(API 密钥)。该密钥由接口提供方(此处为 api.xty.app)颁发,需与 base-url 对应。注意:生产环境中,建议通过环境变量或配置中心存储,避免直接硬编码在配置文件中(如使用 ${OPENAI_API_KEY} 引用环境变量)。
model-name: gpt-3.5-turbo 指定默认使用的大语言模型名称。需与 base-url 支持的模型列表匹配(如 gpt-3.5-turbo、gpt-4、gpt-4o 等)。
log-requests: true 开启请求日志打印(打印发送给模型的请求内容,如提问文本、参数等)。适用场景:
开发 / 调试阶段:便于排查请求参数是否正确(如是否携带了上下文、工具调用参数等)。
生产环境:建议设置为 false(避免敏感信息泄露,减少日志量)。
log-responses: true 开启响应日志打印(打印模型返回的结果内容)。适用场景:
开发 / 调试阶段:便于查看模型返回的原始数据(如生成的文本、函数调用指令等)。
生产环境:建议设置为 false(避免大量文本日志占用磁盘空间)。
创建一个 REST 控制器来处理 AI 请求,代码如下:
package com.hxstrive.langchain4j.spring_boot.controller;
import dev.langchain4j.model.chat.ChatLanguageModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ChatController {
    @Autowired
    private ChatLanguageModel chatLanguageModel;
    @GetMapping("/chat")
    public String model(@RequestParam(value = "message", defaultValue = "Hello") String message) {
        System.out.println(chatLanguageModel);
        return chatLanguageModel.chat(message);
    }
}注意,Spring Boot 会自动注入 ChatLanguageModel 类。
应用的启动类代码如下:
package com.hxstrive.langchain4j.spring_boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class LangChain4jApplication {
    public static void main(String[] args) {
        SpringApplication.run(LangChain4jApplication.class, args);
    }
}运行 LangChain4jApplication,启动应用,输出日志如下:

使用浏览器访问“http://localhost:8080/chat?message=你是谁?”地址,效果如下图:


如何能正常收到 AI 回复,则表示 Spring Boot 集成 LangChain4j 成功。更多关于 LangChain4j 的知识请阅读后续章节……
