Spring AI来了,Java开发者福音

springAI框架学习总结 springAI框架是一个AI工程应用框架,其目标是将 Spring 生态系统设计原则(例如可移植性和模块化设计)应用于 AI 领域,并推广使用 POJO 作为 AI 领域应用程序的构建块。 阅读详情
AI摘要

SpringAI框架通过SpringInitializr提供便捷方式接入LLM模型,降低Java开发者学习成本。支持跨AI提供商的API,包括聊天、文本到图像和嵌入模型,可在本地无GPU环境下运行,如Ollama模型。本文介绍如何在SpringBoot项目中集成和使用这些功能。

Spring AI来了,Java生态接入LLM大模型变得更加简单!

SpringAI

今天官宣Spring AI已经上架到Spring Initializr 上,它提供了一种更简洁的方式和AI交互,减轻Java业务中接入LLM模型应用的学习成本,目前在 https://start.spring.io/ 上可以使用并构建。

Spring AI 是一个人工智能工程的应用框架。其目标是将 Spring 生态系统设计原则(例如可移植性和模块化设计)应用于 AI 领域,并推广使用 POJO 作为 AI 领域应用程序的构建块。

image-20240301100946943

Features

跨 AI 提供商的便携式 API 支持聊天、文本到图像和嵌入模型。支持同步和流 API 选项。还支持配置参数访问特定Model。

支持的聊天模型

  • OpenAI
  • Azure Open AI
  • Amazon Bedrock
    • Anthropic’s Claude
    • Cohere’s Command
    • AI21 Labs’ Jurassic-2
    • Meta’s LLama 2
    • Amazon’s Titan
  • Google Vertex AI
  • HuggingFace - HuggingFace上的大量模型,例如Llama2
  • Ollama - 支持本地无GPU情况下运行AI模型

支持的文生图模型

  • OpenAI with DALL-E
  • StabilityAI

支持的向量模型

  • OpenAI
  • Azure OpenAI
  • Ollama
  • ONNX
  • PostgresML
  • Bedrock Cohere
  • Bedrock Titan
  • Google VertexAI

官方文档:https://spring.io/projects/spring-ai#overview

快速开始

使用IDEA快速新建项目,选择要使用的AI模型依赖

image-20240301102503034

这里我以ollama模型为例

Ollama

Ollama帮助我们在本地的电脑上无需GPU(显卡)资源,也能一键构建大模型,并且提供控制台、RestfulAPI方式快速测试和接入Ollama上的大模型。

Ollama支持哪些模型?

Ollama官网:https://ollama.com/library

image-20240301102823837

Tips:

  • 其中gemma就是谷歌Meta近期新发布的模型
  • llama2模型基本不支持中文语言,gemma模型对中文支持比较友好

引入依赖

**Tips:**Spring AI的相关依赖并没有开放在Meven中央仓库,因此需要配置Spring的仓库

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
    </dependency>
</dependencies>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-bom</artifactId>
            <version>${spring-ai.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

启动Ollama模型

在本地电脑控制台运行ollama run gemma:2b(这里使用gemma模型)

image-20240301103438484

第一次运行会先下载模型文件(大概3G,会比较耗时)

下载完模型资源后会自动启动模型,如上,可以在控制台测试和模型交互。

配置Ollama模型

修改此项目的application.yml配置文件,增加如下:

spring:
  ai:
    ollama:
      ## 默认地址无需配置
      base-url: http://localhost:11434
      chat:
        model: gemma:2b

测试

@SpringBootTest
class SpringAiApplicationTests {

    @Autowired
    private OllamaChatClient chatClient;

    @Test
    void contextLoads() {
        String message = """
                鲁迅和周树人是什么关系?
                """;
        System.out.println(chatClient.call(message));
    }
}

image-20240301104343480

流式访问

    @Test
    void streamChat() throws ExecutionException, InterruptedException {
        // 构建一个异步函数,实现手动关闭测试函数
        CompletableFuture<Void> future = new CompletableFuture<>();

        String message = """
                年终总结
                """;
        PromptTemplate promptTemplate = new PromptTemplate("""
                你是一个Java开发工程师,你擅长于写公司年底的工作总结报告,
                根据:{message} 场景写100字的总结报告
                """);
        Prompt prompt = promptTemplate.create(Map.of("message", message));
        chatClient.stream(prompt).subscribe(
                chatResponse -> {
                    System.out.println("response: " + chatResponse.getResult().getOutput().getContent());
                },
                throwable -> {
                    System.err.println("err: " + throwable.getMessage());
                },
                () -> {
                    System.out.println("complete~!");
                    // 关闭函数
                    future.complete(null);
                }
        );
        future.get();
    }

image-20240301110938340

示例代码: https://github.com/TyCoding/spring-ai

更多的应用示例关注后续文章哦!

推荐项目

  • https://github.com/TyCoding/lang-sora React NextJS全栈快速构建Sora AI Video演示项目

合作和联系

  • 个人博客:http://tycoding.cn
  • GitHub:https://github.com/tycoding
  • 微信公众号:程序员涂陌
  • 微信交流群:公众号后台回复:微信群
架构设计内容分享(一百三十六):Spring AI 项目简介 本文介绍了 Spring AI 项目及其在 REST API 方面的功能,它为生成式 AI 集成到 Spring Boot 应用中提供了一个可靠的接口。在撰写本文时,spring-ai-starter 仍在积极开发中(可以访问快照版本)。本文介绍了与 Spring AI 的基本集成和高级集成,包括AiClientAiResponse和以及异常处理。 阅读详情

相关推荐

8. Spring Ai之入门到精通(超级详细)

Spring AI 1.0.0 M1里程碑版本发布,标志着 Java 终于踏进Ai的时代半只脚。

gorgor在码农 3万+

Spring AI -使用Spring快速开发ChatGPT应用

本篇文章将会对SpringAI进行简单的介绍和使用,并通过SpringBoot来集成SpringAI实际开发出一个简单的http对话接口。

qq_41481367的博客 5万+

手把手教你用支付宝密钥工具生成RSA2密钥对(含Windows/Mac操作截图)

本文详细介绍了如何使用支付宝密钥工具生成RSA2密钥对,包括Windows和Mac平台的操作步骤与截图。从工具下载、安装到密钥生成、配置支付宝平台,再到开发环境集成实战,手把手教你完成支付宝支付接口对接。特别强调密钥安全管理和最佳实践,帮助开发者避免常见安全隐患。

mongodb5scout的博客 257

【SpringAI入门】初识SpringAI

SpringAI入门

mobai1016的博客 1万+

VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程

关于VSCode上搭建C/C++开发环境的内容,到这里就结束了,这里博主感叹一下,VSCode真的挺强大的,作为一个编辑器,可以通过和编译器链接成为开发环境,将环境配置好的话,在这上面写代码似乎也是个不错的选择。大家有任何疑问,欢迎在评论区中提出,本篇博客有任何问题和错误也欢迎来和博主讨论,真心希望能和大家一起进步。最后,如果本篇博客对你有帮助的话,能不能给博主一个三连啊!

2303_79329831的博客 8万+

磁传感器技术解析:从霍尔效应到车规级应用,纳芯微的本土第一之路

磁传感器是现代工业与汽车电子中的关键感知元件,其技术演进经历了从分立器件到高集成度SoC的跨越。霍尔效应与磁阻效应构成两大物理基础,其中硅基霍尔方案凭借高性价比与成熟供应链,在车规级应用中占据主流。高精度电流检测、角度与位置感知、磁开关等场景,对传感器的温漂抑制、共模瞬态抗扰与批量一致性提出严苛要求。车规级可靠性体系与系统级集成能力,成为衡量供应商的核心标尺。随着新能源主驱、光伏逆变、工业伺服等应用爆发,具备完整信号链与隔离技术积累的厂商正逐步构建护城河。本文以纳芯微为样本,剖析其从隔离技术延伸至磁传感器平

weixin_34387468的博客 365

Spring AI宣布支持Agent Skills,Java开发者的福音

Agent Skills是一种模块化能力,以包含YAML前置元数据的Markdown文件形式打包。每个技能都是一个文件夹,其中包含一个SKILL.md文件,该文件包含元数据(至少包括名称和描述)以及指导AI Agent如何执行特定任务的说明。Agent Skills(AI Agent技能)正在成为构建智能应用的新范式。它将AI能力模块化为可发现、可加载的资源包,让开发者不再需要为每个任务硬编码知识或创建专用工具。Spring A正式I将这一设计模式引入Java生态系统,并实现了跨LLM的可移植性——你只需定

2502_93987700的博客 4270

ASP.NET Core Identity + Mysql(实战一)——注册登陆

在进行实战之前,我们先来了解一下Identity。 ASP.NET Core Identity是用于构建ASP.NET Core Web应用程序的成员资格系统,包括成员资格、登录和用户数据存储。简单的来讲包括: 1.用户数据存储(使用任意你喜欢的关系型数据库,从sqllite到mysql、sqlserver等等,由Entity Framwork 支持) 2.登陆、注册外加身份认证(基于coo...

weixin_40359716的博客 1398

Spring AI:Java开发者的福音

Spring AI为AI提供了统一接口。它将LLM当作数据库来对待——你可以连接它、查询它,并将它抽象化。关键优势提供商可移植性:编写一次代码;通过更改属性文件即可从OpenAI切换到Azure或本地Ollama实例。Spring原生:它感觉就像Spring。如果你了解Service和,你已经掌握了Spring AI的80%。

新缸中之脑 88

3D打印开源硬件MKS Monster8 V2.0 原理图赏析--更新中

MKS MONSTER8 主板是创客基地为满足市场需求而推出的主板,可用于Voron 2.4机器安装,支Marlin 固件和Klipper固件,支持U盘打印(暂时只有Marlin固件支持),支持TMC驱动UART模式,它包含了3D打印机所需要的主要部件和接口,通过MCU集中控制,是一款功能强大的主板。下面详细分析一下。

我的专栏 7222

Lammps实现结冰匀相成核

Lammps实现结冰匀相成核

Rockyoung 3842

Java开发者的AI福音!Spring AI彻底打通企业级智能应用开发链路

Spring AI 是一个新兴的开源项目,旨在将人工智能功能无缝集成到传统的Spring生态系统中。通过利用Spring Boot 的自动配置机制和支持Spring核心特性(如依赖注入、条件配置和属性管理),开发者可以在不改变现有工作流的情况下快速添加AI能力

spb229443329的专栏 988

SAP_FICO模块-资产减值功能对折旧和残值的影响

SAP_FICO模块-资产减值操作对资产历史折旧以及后续折旧的影响,包括减值操作的配置前提

风沙的博客 2804

Java开发者福音:Spring AI快速搭建AI智能体(珍藏版实战指南)

12345678910111213141516@ComponentpublicclassUserTools@Tool(description = "根据用户ID查询用户信息")publicUser// 实际项目中这里查数据库returnnewUser(userId,"张三"@Tool(description = "获取当前时间")publicString()returnrecordUser{}

jennycisp的博客 549

大模型复杂问答能力评测框架:从原理到实践

在人工智能领域,大语言模型(LLM)的评估是衡量其实际应用价值的关键环节。其核心原理在于通过系统化的评测框架,对模型的理解、推理、整合与表达能力进行量化分析。传统的NLP基准测试往往侧重于事实性检索或简单推理,难以全面反映模型在应对多跳推理、隐含条件、长上下文整合等复杂现实任务时的真实性能。因此,专门针对复杂问答设计的评测技术应运而生,其价值在于为模型选型、效果优化和瓶颈诊断提供数据驱动的科学依据。该技术广泛应用于需要深度逻辑判断的业务场景,如智能投顾、法律咨询、医疗诊断等。本文聚焦的`tan92hl/Co

weixin_28679635的博客 361

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java开发者福音:Spring Boot + Spring AI 生产级Personal Agent开源项目解析

在人工智能应用快速落地的今天,构建智能体(Agent)已成为技术热点。然而,Java生态中鲜有生产级参考实现,开发者往往在Python技术栈中寻找灵感。本文从Agent的基本概念出发,剖析其核心原理:意图理解、工具编排、知识检索与记忆管理。在工程实践中,Spring Boot作为Java后端事实标准,结合Spring AI框架,提供了模型无关、模块化分层的解决方案。通过Function Calling技术实现工具调用,利用RAG管道接入私有知识库,并借助向量数据库完成语义检索。这些能力共同支撑起个人助理型A

weixin_29038303的博客 264

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

炸裂!Spring AI 1.0 正式发布,让 Java 再次伟大!

从第一次提交代码到现在,经过 2 年的沉淀,Spring AI 框架的第一个正式版本 1.0 终于发布了。

努力做最接地气的编程干货分享,感谢关注 1790

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: 不会制作微信红包封面?看这里
下一篇: 基于React全栈Sora AI视频案例展示项目
TyCoding
博客等级 码龄9年 316粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值