Spring AI 介绍以及与 Spring Boot 项目整合

Spring AI 项目旨在简化使用 Spring Boot 开发包含人工智能功能的应用程序,提供抽象和支持多种模型提供商及矢量数据库提供商。

Spring AI 的功能特点

  • 支持主流模型提供商:如 OpenAI、Microsoft、Amazon、Google 和 Huggingface 等。
  • 支持多种模型类型:包括聊天、文本到图像、音频转录、文本到语音等。
  • 提供可移植 API:支持同步和流 API 选项,还支持访问模型特定功能。
  • 实现 AI 模型输出到 POJO 的映射
  • 支持主流矢量数据库提供商:如 Apache Cassandra、Azure Vector Search、Chroma、Milvus、Neo4j、PostgreSQL/PGVector、PineCone、Qdrant、Redis 和 Weaviate 等。
  • 提供跨 Vector Store 提供程序的可移植 API,包括类似 SQL 的元数据过滤器 API。
  • 支持 Function calling(函数调用)
  • 提供 Spring Boot 自动配置和启动器的 AI 模型
  • 包含数据工程的 ETL 框架

Spring Boot 项目整合 Spring AI 的步骤

  1. 初始化 Spring Boot 项目
    • 使用 Spring Initializr:访问 https://start.spring.io/,选择 Maven 或 Gradle 作为构建工具,选择 Java 作为语言,勾选"Web"依赖以启用 Spring Web 支持,选择 OpenAI 依赖,然后生成项目。


手动添加依赖

添加仓库依赖:在 pom.xml 文件中添加以下仓库依赖:

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>

使用 BOM:通过将以下内容添加到 pom.xml 文件中来使用 BOM,使用的 BOM 版本决定了使用的依赖项版本,它还可确保默认使用受支持和测试的依赖项版本。

xml 复制代码
<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 的 maven 依赖:在 pom.xml 文件中添加以下依赖:

xml 复制代码
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
  1. 配置 OpenAi API KEY:请加入你生成的 OpenAI 的 API key,可以通过直连或者中转的方式进行访问,具体可以百度和淘宝。在 application.properties 文件中添加以下配置:
properties 复制代码
spring.application.name=spring-ai
spring.ai.openai.api-key=sk-8*******************
spring.ai.openai.base-ur=h*******************
  1. 在控制器中调用 Spring API 的方法进行访问和输出
java 复制代码
@RestController
@RequestMapping("/openai")
public class OpenAiChatController {

    @Resource
    private OpenAiChatModel openAiChatModel;

    @GetMapping("/chat/generate")
    public String chat(@RequestParam(value = "message", defaultValue = "你是谁?") String message) {
        String result = openAiChatModel.call(message);
        System.out.println(result);
        return result;
    }
}
  1. 运行和测试
    启动 Spring Boot 应用,访问 http://localhost:8080/openapi/generate?message=请介绍一下 Spring AI

你应该能看到来自 ChatGPT 的响应。


Spring AI 为开发人员提供了一个强大的平台,帮助他们更轻松地利用人工智能和机器学习技术,提升应用程序的智能化水平。通过与 Spring Boot 的整合,开发人员可以更方便地构建包含人工智能功能的应用程序。

相关推荐
cooldream200919 分钟前
华为云Flexus+DeepSeek征文|基于华为云Flexus X和DeepSeek-R1打造个人知识库问答系统
人工智能·华为云·dify
coderSong25683 小时前
Java高级 |【实验八】springboot 使用Websocket
java·spring boot·后端·websocket
Blossom.1183 小时前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
Mr_Air_Boy4 小时前
SpringBoot使用dynamic配置多数据源时使用@Transactional事务在非primary的数据源上遇到的问题
java·spring boot·后端
DFminer5 小时前
【LLM】fast-api 流式生成测试
人工智能·机器人
郄堃Deep Traffic5 小时前
机器学习+城市规划第十四期:利用半参数地理加权回归来实现区域带宽不同的规划任务
人工智能·机器学习·回归·城市规划
懒虫虫~6 小时前
基于SpringBoot解决RabbitMQ消息丢失问题
spring boot·rabbitmq
GIS小天6 小时前
AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月7日第101弹
人工智能·算法·机器学习·彩票
阿部多瑞 ABU6 小时前
主流大语言模型安全性测试(三):阿拉伯语越狱提示词下的表现与分析
人工智能·安全·ai·语言模型·安全性测试
cnbestec6 小时前
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
人工智能·线性代数·触觉传感器