SpringAI:Java 开发的智能新利器
一、SpringAI 简介
随着人工智能技术的飞速发展,越来越多的开发者开始探索如何将 AI
能力集成到现有的应用中来提升产品的智能化水平。Spring AI
正是为 Java
开发者提供的一款强大的 AI
框架,使得这一集成过程变得前所未有的简单和高效。
本文将深入探讨 Spring AI
的核心概念以及如何快速上手使用这款智能新利器。
二、什么是Spring AI?
目前 AI
应用程序开发框架主要是 Python
生态;而 Spring AI
是由 Spring
团队推出的一个扩展框架,专为将 AI
能力集成到 Java
应用中而设计。它利用 Spring
的生态系统优势,提供了一系列简单易用的 API
和工具,使开发者可以轻松地加载、训练和推理 AI模型
。这不仅降低了开发门槛,还极大地提高了开发效率。
Spring AI
的核心是解决 AI
集成的根本挑战:将您的企业数据和 API 与 AI 模型连接起来。
三、Spring AI的核心概念
3.1. Models
模型(Models)是指在处理和生成信息的算法,通常模仿人类认知功能。通过从大型数据集中学习模式和见解,这些模型可以做出预测、文本、图像或其他输出,增强跨行业的各种应用。
Spring AI
支持多种 AI模型
包括神经网络、决策树等。模型可以通过训练数据进行训练,之后用于推理。
3.2. Prompts
提示 (Prompts)是基于语言输入的基础,指导 AI
模型生成特定输出。对于熟悉 ChatGPT
的人来说,提示可能看起来只是输入对话框中的文本,传送到 API
然而,它的内涵远不止于此,在许多 AI
模型中,提示文本并不只是一个简单的字符串。
在 ChatGPT
的 API
中,一个提示包含多个文本输入,每个输入都会被赋予不同的角色。例如,有一个 系统角色 它告诉模型如何行为并设定互动的上下文。此外,还有一个 用户角色 通常就是用户的输入。
设计有效的提示既是一门艺术,也是一门科学。ChatGPT
被设计用于人类对话,这与使用 SQL
等语言 提问 的方式有很大不同。与 AI
模型交流更像是与另一个人对话。
3.3. Embeddings
嵌入(Embeddings)是文本、图像或视频的数值表示,用于捕捉输入之间的关系。
嵌入通过将文本、图像和视频转换为浮点数数组(称为向量)来工作。这些向量旨在捕捉文本、图像和视频的含义。嵌入数组的长度被称为向量的维度。
通过计算两个文本的向量表示之间的数值距离,应用程序可以判断生成这些嵌入向量的对象之间的相似性。
3.4. Tokens
令牌 (Tokens)是 AI
模型工作的基础构件。输入时,模型会将单词转换为令牌;输出时,模型会将令牌重新转换为单词。
3.5. Structured Output
AI
模型的输出通常以 java.lang.String
的形式返回,即使你要求回复为 JSON
格式,但它并不是一个 JSON
数据结构,而只是一个字符串。
这一复杂性催生了一个专门的领域,涉及创建提示以获得预期输出,然后将生成的简单字符串转换为可用于应用集成的数据结构。
3.6. Bringing Your Data & APIs to the AI Model
如何让 AI
模型掌握它未被训练过的信息?
目前有三种方法可以定制 AI
模型以整合您的数据:
- 微调(Fine Tuning):这种传统的机器学习技术涉及调整模型,并改变其内部权重。然而非常耗费资源。此外,有些模型可能不支持这一选项。
- 提示嵌入(Prompt Stuffing):一种更实际的替代方案是将您的数据嵌入提供给模型的提示中。
- 函数调用(Function Calling):这种技术允许注册自定义的用户函数,将大型语言模型与外部系统的 API 连接起来。
3.7. Retrieval Augmented Generation
RAG
是一种称为 检索增强生成 的技术,用以解决如何将相关数据整合到提示中以确保 AI
模型能够给出准确的回答。
这种方法涉及一种批处理风格的编程模型,其中任务从文档中读取非结构化数据,进行转换,然后将其写入向量数据库。从宏观角度看,这类似于一个 ETL
(提取、转换和加载)管道。向量数据库用于 RAG
技术中的检索部分。
四、快速上手指南
注意 Spring AI 支持 Spring Boot 3.2. x 和 3.3.x
Maven 仓库配置 在 pom.xml
中添加以下内容:
<repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories>
导入 Spring AI BOM
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-bom</artifactId> <version>1.0.0-SNAPSHOT</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
添加 OpenAI 聊天
<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> </dependency>
使用 OpenAI 创建 API 来访问 ChatGPT 模型。在OpenAI 注册页面创建账户并在API 密钥页面生成令牌。
代码样例
@RestController public class EmbeddingApiController { @Resource private EmbeddingClient client; @GetMapping("/api/v1/embedding") public Map<String, Object> getEmbedding(@RequestParam(name = "message", defaultValue = "Share a funny story") String input) { EmbeddingResponse response = client.embedForResponse(Collections.singletonList(input)); return Collections.singletonMap("embedding", response); } }
总结
SpringAI
无疑是 Java
开发领域在人工智能方向上的重要创新。它将 Spring Framework
的优势与先进的 AI
技术完美融合,通过其关键特性在多个方面为开发者提供了强大的助力。
扫码关注有惊喜!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
DevOps帮助数字化转型的5种方法
数字化转型是利用数字化技术(如大数据、云计算、人工智能等)来推动企业组织转变业务模式,组织架构,企业文化等的变革措施,如衍生出的智能制造、智慧城市等概念,是当下很多企业正在实施的变革措施。DevOps作为开发+运维的互联网行业新趋势,也发展得如火如荼。本篇文章简单介绍DevOps的重要性以及DevOps作为一种方法如何帮助组织根据当前的行业需求进行数字化转型。 介绍 业界从未停止对数字化转型的讨论,因新冠肺炎疫情的影响,所有行业的数字化举措也正迅速蔓延扩大。软件正在成为行业中一个关键的业务差异化因素,其快速、可靠和及时的交付正成为数字化转型的核心。软件对所有组织都很重要,但在当今快速变化的数字经济中,仅使用软件并不能达到业务目标。行业需要通过现代开发和交付流程满足其业务需求的解决方案,因为这些开发有助于创新,并有助于在行业中获得竞争优势。由于去年的流行趋势,数字连接的新规范越来越推动数字转型的速度。有些组织在转型过程中可能还没有取得太大进展,需要将DevOps视为一种基于速度和敏捷性的方法。DevOps是一种专注于人力资源、工作流程和技术方面改善的方法。这种方法有助于打破筒仓、自动化手...
- 下一篇
基于Redis内核的热key统计实现方案|得物技术
一、Redis热key介绍 Redis热key问题是指单位时间内,某个特定key的访问量特别高,占用大量的CPU资源,影响其他请求并导致整体性能降低。而且,如果访问热key的命令是时间复杂度较高的命令,会使得CPU消耗变得更加严重;或者,如果访问的热key同时也是一个大key,也可能使得访问流量达到节点所在机器带宽上限。 二、Redis热key常见探测方法 突发的热点新闻、爆款商品、或者促销活动都可能导致访问热key的出现,目前,Redis官方和业界也都有不少热key探测与发现方法。 先通过一个表格整体预览一下当前存在的热key探测方案优缺点 Redis-cli的hotkeys参数 Redis自4.0起在Redis-cli中提供了hotkeys参数来方便用户进行实例级的热key分析功能,Redis-cli通过向Redis-server节点发送scan + object freq命令以遍历的方式分析Redis实例中所有key,然后返回实例中热key信息。 该方式存在以下几个问题: 使用该方案的前提条件是需要将Redis-server的淘汰策略maxmemory-policy参数设置为LF...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8