Langchain4j + Spring Boot:快速集成 AI 大模型到 Java 后端应用

Langchain4j 是 Java 生态中的 LangChain 实现,用于简化与大语言模型(如 OpenAI GPT、Hugging Face 等)的交互。结合 Spring Boot,你可以快速构建高效的后端应用,实现 AI 功能集成。下面我将逐步指导你完成集成过程,确保结构清晰、代码可靠。


步骤 1:创建 Spring Boot 项目

首先,使用 Spring Initializr 或 IDE 创建新项目:

  • 依赖选择:添加 Spring WebLombok(简化代码)。
  • 构建工具:推荐 Maven 或 Gradle(以下以 Maven 为例)。

pom.xml 中添加 Langchain4j 依赖:

<dependencies>
    <!-- Spring Boot 基础依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>
    
    <!-- Langchain4j 核心库 -->
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-core</artifactId>
        <version>0.31.0</version> <!-- 使用最新版本 -->
    </dependency>
    
    <!-- Langchain4j OpenAI 集成 -->
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-open-ai</artifactId>
        <version>0.31.0</version>
    </dependency>
</dependencies>


步骤 2:配置 API 密钥和模型

src/main/resources/application.properties 中设置 OpenAI API 密钥(或其他模型密钥):

# OpenAI API 密钥(从环境变量或安全存储读取)
openai.api.key=${OPENAI_API_KEY}
# 模型名称,例如 gpt-3.5-turbo
openai.model.name=gpt-3.5-turbo

安全提示:不要硬编码密钥。使用环境变量(如 System.getenv("OPENAI_API_KEY"))或 Spring Cloud Config 管理。


步骤 3:创建 AI 服务类

定义一个 Spring Service 来封装模型调用。使用 Langchain4j 的 OpenAiChatModel 实现聊天功能。

import dev.langchain4j.model.openai.OpenAiChatModel;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

@Service
public class AIService {
    private final OpenAiChatModel chatModel;

    // 通过构造函数注入配置
    public AIService(@Value("${openai.api.key}") String apiKey,
                     @Value("${openai.model.name}") String modelName) {
        this.chatModel = OpenAiChatModel.builder()
                .apiKey(apiKey)
                .modelName(modelName)
                .temperature(0.7) // 控制生成随机性
                .build();
    }

    // 聊天方法:输入消息,返回 AI 响应
    public String chat(String userMessage) {
        return chatModel.generate(userMessage);
    }
}


步骤 4:创建 REST 控制器

暴露一个 API 端点供前端或客户端调用。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class AIController {
    private final AIService aiService;

    @Autowired
    public AIController(AIService aiService) {
        this.aiService = aiService;
    }

    // 定义聊天端点:POST /chat
    @PostMapping("/chat")
    public String handleChatRequest(@RequestBody String userMessage) {
        return aiService.chat(userMessage);
    }
}


步骤 5:运行和测试应用
  1. 启动应用:运行 SpringBootApplication 主类。
  2. 测试 API:使用工具如 curl 或 Postman 发送请求:
    curl -X POST http://localhost:8080/chat -H "Content-Type: text/plain" -d "你好,世界!"
    

    • 响应示例"你好!有什么我可以帮助你的吗?"

注意事项
  1. 错误处理:添加全局异常处理(如 @ControllerAdvice)捕获模型调用错误。
  2. 模型扩展:Langchain4j 支持 Hugging Face、LocalAI 等模型。只需替换依赖和配置:
    • 例如,使用 Hugging Face:添加 langchain4j-hugging-face 依赖。
  3. 性能优化
    • 使用异步调用(如 CompletableFuture)避免阻塞。
    • 限制请求频率,防止 API 配额超限。
  4. 安全性
    • 在生产环境中,使用 Spring Security 保护端点。
    • 通过网关(如 Spring Cloud Gateway)管理 API 访问。

总结

通过以上步骤,你可以在 10 分钟内将 AI 大模型集成到 Spring Boot 应用中。Langchain4j 提供了简洁的 API,Spring Boot 则简化了配置和部署。尝试扩展功能,如添加记忆(Memory)或工具(Tools),构建更智能的应用。如需完整示例代码,可参考 Langchain4j GitHub 仓库

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐