当前位置: 首页 > article >正文

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

0 前言

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

  • 常用集成
  • 声明式 AI 服务

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 示例

  • 低级 Spring Boot 示例 使用 ChatLanguageModel API
  • 高级 Spring Boot 示例 使用 AI 服务
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大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

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

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

img

三、AI大模型经典PDF籍

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

img

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

img

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


http://www.kler.cn/a/319343.html

相关文章:

  • makefile 设置动态库路径参数
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-Qwen-Agent深入学习(四)
  • react 中 useContext Hook 作用
  • HTTP 客户端怎么向 Spring Cloud Sleuth 传输跟踪 ID
  • HarmonyOS的@State装饰器的底层实现
  • Postman上传图片如何处理
  • day-60 字符串中最多数目的子序列
  • 整合SpringSecurity框架经典报错
  • 大数据实验一: Linux系统安装和使用
  • 看Threejs好玩示例,学习创新与技术(GridDistortionEffect)
  • [Redis][List]详细讲解
  • 秋分之际,又搭建了一款微信记账本小程序
  • 大模型智能体在金融公告理解领域的应用 | OPENAIGC开发者大赛高校组AI创新之星奖
  • 宠物空气净化器和普通的空气净化器有区别吗?哪款能吸猫毛
  • Excel的基本应用__1
  • 牛客周赛 Round 60
  • 数据结构——二叉搜索树、Map和Set
  • 【Unity基础】Unity常见数据管理方案总结
  • 虚拟机屏幕分辨率自适应VMWare窗口大小
  • 继承
  • 【计算机网络 - 基础问题】每日 3 题(二十一)
  • 如何全局修改Git的邮箱、用户名?
  • Redis面试笔记
  • 教授【优青】团队亲自指导!提供专业实验设计、数据分析、SCI论文辅助等全方位服务
  • c++中修改const变量的方法和const类成员函数修改类成员变量的方法
  • Qt 状态机编程,双层状态机,实现暂停恢复