【大模型教程】如何在Spring Boot中无缝集成LangChain4j,玩转AI大模型!

0 前言

LangChain4j 提供了用于以下功能的 Spring Boot 启动器

1 常用集成的 Spring Boot starters

Spring Boot 启动器帮助通过属性创建和配置 语言模型嵌入模型嵌入存储 和其他核心 LangChain4j 组件。

要使用 Spring Boot 启动器,请导入相应依赖包。

Spring Boot 启动器依赖包的命名规范:langchain4j-{integration-name}-spring-boot-starter

如对于 OpenAI(langchain4j-open-ai),依赖包名称为 langchain4j-open-ai-spring-boot-starter

代码语言:xml

复制

复制代码
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
    <version>0.34.0</version>
</dependency>

然后,可在 application.properties 文件中配置模型参数:

代码语言:java

复制

复制代码
langchain4j.open-ai.chat-model.api-key=${OPENAI_API_KEY}
langchain4j.open-ai.chat-model.model-name=gpt-4o
langchain4j.open-ai.chat-model.log-requests=true
langchain4j.open-ai.chat-model.log-responses=true
...

此时,将自动创建一个 OpenAiChatModel 实例(ChatLanguageModel 的实现)

并且可通过自动注入在需要的地方使用它:

代码语言:java

复制

复制代码
@RestController
public class ChatController {

    ChatLanguageModel chatLanguageModel;

    public ChatController(ChatLanguageModel chatLanguageModel) {
        this.chatLanguageModel = chatLanguageModel;
    }

    @GetMapping("/chat")
    public String model(@RequestParam(value = "message", defaultValue = "Hello") String message) {
        return chatLanguageModel.generate(message);
    }
}

如需一个 StreamingChatLanguageModel 实例,使用 streaming-chat-model 代替 chat-model 属性:

代码语言:java

复制

复制代码
langchain4j.open-ai.streaming-chat-model.api-key=${OPENAI_API_KEY}
...

2 声明式 AI 服务的 Spring Boot starter

LangChain4j 提供一个 Spring Boot starter,用于自动配置 AI 服务RAG工具 等功能。

假设已导入某已集成的starters(见上文),然后导入 langchain4j-spring-boot-starter

代码语言:xml

复制

复制代码
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-spring-boot-starter</artifactId>
    <version>0.34.0</version>
</dependency>

定义 AI 服务接口,并用 @AiService

代码语言:java

复制

复制代码
@AiService
interface Assistant {

    @SystemMessage("You are a polite assistant")
    String chat(String userMessage);
}

可把它看作标准 Spring Boot的 @Service,但带有 AI 功能。

当应用程序启动时,LangChain4j 启动器将扫描类路径并找到所有带有 @AiService 注解的接口。对于每个找到的 AI 服务,它将使用应用程序上下文中的所有 LangChain4j 组件创建此接口的实现,并将其注册为一个 bean,因此您可以在需要的地方进行自动注入:

代码语言:java

复制

复制代码
@RestController
class AssistantController {

    @Autowired
    Assistant assistant;

    @GetMapping("/chat")
    public String chat(String message) {
        return assistant.chat(message);
    }
}

3 支持的版本

LangChain4j 的 Spring Boot 集成需要 Java 17 和 Spring Boot 3.2。

4 示例

4.1 使用 Spring Boot 的客户支持代理示例

从官网拉下代码后,直接修改配置文件中的 api-key 如下(仅做本地演示用):

启动CustomerSupportAgentApplication应用后,直接在控制台交互:

我开始提问:How can I cancel my booking?

为啥 AI 会要求提供信息呢?因为注册了一个工具:

代码语言:java

复制

复制代码
@Component
public class BookingTools {

    @Autowired
    private BookingService bookingService;

    @Tool
    public void cancelBooking(String bookingNumber, String customerName, String customerSurname) {
        System.out.printf("[Tool]: Cancelling booking %s for %s %s...%n", bookingNumber, customerName, customerSurname);
        bookingService.cancelBooking(bookingNumber, customerName, customerSurname);
    }
}

那我就按他的要求提供信息:

AI 还是会问我要名字。那我就随便回答,然后就报错了:

注意这是个后端自定义的业务异常,即没有找到对应名字的预订。但请注意最后 AI 还是会提醒你输入正确信息:

那就放过他吧,我输入后端存储的真实信息:

4.2 HelloWorld

代码语言:java

复制

复制代码
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;

import static dev.langchain4j.model.openai.OpenAiChatModelName.GPT_4_O_MINI;

public class _00_HelloWorld {

    public static void main(String[] args) {

        ChatLanguageModel model = OpenAiChatModel.builder()
                .apiKey(ApiKeys.OPENAI_API_KEY)
                .modelName(GPT_4_O_MINI)
                .build();

        String answer = model.generate("Say Hello World");

        System.out.println(answer);
    }
}

响应:

代码语言:bash

复制

复制代码
Hello, World!

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

四、AI大模型商业化落地方案

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

相关推荐
江畔柳前堤9 小时前
roLabelImg 详细安装教程
开发语言·人工智能·后端·云原生
阿里云大数据AI技术9 小时前
分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
人工智能·flink
陕西企来客9 小时前
2026年7月AI智能搜索曝光趋势研判
大数据·人工智能·机器学习·ai智能搜索曝光
阿里云大数据AI技术10 小时前
从算力到智能体,面向 Agentic AI 的基础设施演进
人工智能·agent
hangyuekejiGEO10 小时前
GEO技术服务选型指南
大数据·人工智能·python
阿里云大数据AI技术11 小时前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
软萌萌的111 小时前
Java Spring Boot 修改yml配置&加载顺序规则
java·spring boot·python
陈随易11 小时前
moon,apt和yum之外linux系统命令安装新选择
前端·后端·程序员
维基框架11 小时前
GitHub源码处理提速 一趟扫描反而更慢
人工智能·github
冬奇Lab11 小时前
代码库知识库系列(05):向量检索 vs 知识图谱——加了调用图并没有变更好
人工智能