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

Spring AI

Spring AI 是一个旨在将 Spring 生态系统的核心设计原则(如可移植性和模块化)扩展到人工智能领域的应用框架。

简单来说,它的作用是让 Java 开发者能够以 Spring 的方式,轻松、灵活地集成和使用各种大模型(Large Language Models, LLMs)和其他 AI 服务。

1. Spring AI 的主要作用

  • 标准化接口: 它为不同的 AI 服务提供商(如 OpenAI、Azure OpenAI、Google Gemini、阿里云通义等)提供了一个统一的、标准的 Java 接口。
  • 服务可插拔(可移植性): 开发者可以通过更改配置,快速切换底层使用的 AI 模型,而无需修改核心业务代码。这极大地降低了跨平台或跨模型迁移的成本。
  • 简化开发流程: 它将 AI 功能的集成过程封装起来,使开发者可以使用熟悉的 POJO (Plain Old Java Objects) 和 Spring 习惯用法来构建 AI 应用。
  • 提供核心 AI 功能抽象: 框架提供了聊天(Chat)、嵌入(Embedding)、图像生成(Image Generation)、语音合成(Text-to-Speech)等常见 AI 能力的抽象。
  • 内置实用工具: 提供了如 OutputParser(自动将模型的文本输出结构化为 Java 对象)、Prompt Template(简化提示词管理)、Prompt Stuffing(处理上下文和历史记录)等功能,帮助开发者更好地与模型交互。

2. Spring AI 的使用方法

使用 Spring AI 的基本步骤通常遵循 Spring Boot 的开发模式:

步骤 1: 引入依赖

在你的 Spring Boot 项目的 pom.xmlbuild.gradle 中,需要引入 Spring AI 的核心依赖和你要使用的特定模型提供商的依赖。

以使用 OpenAI 的聊天服务为例(Maven):

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-core</artifactId><version>...</version> </dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId><version>...</version> </dependency>
步骤 2: 配置 API 密钥

application.propertiesapplication.yml 中配置 AI 服务的 API 密钥和其他必要参数。

以配置 OpenAI 为例:

# application.properties
spring.ai.openai.api-key=<你的 OpenAI API 密钥>
# 可以指定使用的模型,例如 gpt-4o 或 gpt-3.5-turbo
spring.ai.openai.chat.options.model=gpt-3.5-turbo
步骤 3: 注入并使用 ChatClient

Spring AI 的核心接口之一是 ChatClient。你可以像使用其他 Spring 组件一样将其注入到你的业务类中。

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.stereotype.Service;@Service
public class AIService {private final ChatClient chatClient;// 构造器注入public AIService(ChatClient.Builder chatClientBuilder) {// 使用 Builder 模式创建 ChatClient 实例// 这样可以方便地对客户端进行配置和定制this.chatClient = chatClientBuilder.build();}/*** 发送提示词并获取模型的文本回复* @param prompt 用户输入的问题* @return 模型的回复文本*/public String getAIResponse(String prompt) {String response = chatClient.prompt().user(prompt) // 设置用户的提示词.call()       // 调用 AI 服务.content();   // 获取回复的文本内容return response;}
}
步骤 4: 结构化输出(Output Parser)

Spring AI 最强大的功能之一是将模型的非结构化文本输出自动转换为结构化的 Java POJO 对象,这通过 OutputParser 实现。

  1. 定义 POJO:

    // 定义你期望的结构化数据
    public record Joke(String setup, String punchline) {}
    
  2. 使用 Output Parser:

    import org.springframework.ai.parser.BeanOutputParser;public Joke getStructuredJoke(String topic) {// 创建一个 OutputParser,用于解析成 Joke 对象BeanOutputParser<Joke> parser = new BeanOutputParser<>(Joke.class);// 构造提示词,并要求模型遵循指定的格式String systemMessage = parser.getFormat(); // 获取模型需要的格式指令String userPrompt = "讲一个关于 " + topic + " 的笑话。";String result = chatClient.prompt().system(systemMessage) // 告知模型输出的格式.user(userPrompt)      // 实际的请求内容.call().content();// 将模型的原始文本输出解析为 Joke 对象return parser.parse(result);
    }
    

通过这些抽象,Spring AI 极大地简化了 Java 应用与 AI 模型交互的复杂性,让开发者能够专注于业务逻辑而不是底层 API 的细节。

http://www.dtcms.com/a/470274.html

相关文章:

  • ssm速通1(2/2)
  • Android GPS定位与行车轨迹追踪完整实战
  • [持续更新] HPC高性能计算CUDA/C++面试知识点
  • 【有源码】基于Hadoop生态的大数据共享单车数据分析与可视化平台-基于Python与大数据的共享单车多维度数据分析可视化系统
  • 上海做网站推荐做景观要用的植物网站
  • 珠海 网站建设和推广万网网站空间
  • Jasperreport 导出word 多个element重叠部分导致不显示(不支持)
  • GRU(门控循环单元) 笔记
  • 莱州网站建设哪家好做网站要会哪些知识
  • ubuntu离线安装 xl2tpd
  • 如何在百度上做网站最好用的免费建站
  • 关联网站有那些wordpress超级排版器插件
  • 熊猫比分 APP:开启体育赛事观赛新“姿势”
  • 第二章:模块的编译与运行-9 Platform Dependency
  • java多模块概念
  • 小企业网站维护什么东西互联网培训
  • 找人做网站做的很烂网站自助建设推广
  • uhttpd HTTPS 在嵌入式与 OpenWrt 上的实战部署与排查
  • 合肥网站建设正规公司抖音如何推广引流
  • [cpprestsdk] 构建HTTP消息 | http_headers.h
  • SCI论文写作:从实验设计到发表(选题、文献调研、实验设计、数据分析、论文结构及语言规范)
  • 西安哪里有做网站的网页界面ps制作步骤
  • 《彻底理解C语言指针全攻略(2)》
  • JavaScript 性能优化实战:从原理到落地
  • 网上公司注册申请的流程江西短视频搜索seo推荐
  • 网站建设哪家好知道数字化档案馆及网站的建设
  • 汽车行业密钥灌装解决方案:构建可信的车载安全启动与通信体系
  • Vue2+Django TodoList项目跨域解决方案实战
  • 网页结构解析入门:HTML、CSS、JS 与爬虫的关系
  • Mac查看本机发出请求的IP地址