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

    dev.langchain4j    langchain4j-open-ai-spring-boot-starter    0.34.0

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

langchain4j.open-ai.chat-model.api-key=${OPENAI_API_KEY}langchain4j.open-ai.chat-model.model-name=gpt-4olangchain4j.open-ai.chat-model.log-requests=truelangchain4j.open-ai.chat-model.log-responses=true...

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

img

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

@RestControllerpublic 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 属性:

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

    dev.langchain4j    langchain4j-spring-boot-starter    0.34.0

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

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

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

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

@RestControllerclass 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 如下(仅做本地演示用):

img

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

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

img

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

@Componentpublic 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);    }}

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

img

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

img

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

img

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

img

4.2 HelloWorld

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);    }}

响应:

Hello, World!

关注我,紧跟本系列专栏文章,咱们下篇再续!

作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。

各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。

负责:

  • 中央/分销预订系统性能优化
  • 活动&券等营销中台建设
  • 交易平台及数据中台等架构和开发设计
  • 车联网核心平台-物联网连接平台、大数据平台架构设计及优化
  • LLM Agent应用开发
  • 区块链应用开发
  • 大数据开发挖掘经验
  • 推荐系统项目

目前主攻市级软件项目设计、构建服务全社会的应用系统。

参考:

写在最后

零基础入门AI大模型

今天贴心为大家准备好了一系列AI大模型资源,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

5.免费获取

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

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

在这里插入图片描述

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。