面试官:谈谈对SpringAI的理解?

简介: 面试官:谈谈对SpringAI的理解?

Spring AI 已经发布了好长时间了,目前已经更新到 1.0 版本了,所以身为 Java 程序员的你,如果还对 Spring AI 一点都不了解的话,那就有点太落伍了。

言归正传,那什么是 Spring AI?如何快速进行 Spring AI 开发呢?

1.什么是Spring AI?

Spring AI 是 Spring 官方社区项目,旨在简化 Java AI 应用程序开发,让 Java 开发者像使用 Spring 开发普通应用一样开发 AI 应用。

Spring 官方对于 Spring AI 的定义是这样的:

Spring AI is an application framework for AI engineering. Its goal is to apply to the AI domain Spring ecosystem design principles such as portability and modular design and promote using POJOs as the building blocks of an application to the AI domain.

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

什么意思呢?简单来说,Spring AI 就是让 Java 开发者,像开发 Spring 普通应用一样开发 AI 应用。

注意:Spring AI 不是帮你构建一个大模型,而是让你方便的对接各种大模型

Spring AI 官方文档:https://spring.io/projects/spring-ai

2.Spring AI有什么功能?

Spring AI 目前可以实现以下功能(后续还会支持更多功能):

  1. 智能聊天
  2. 文本转图片
  3. 音频和文本互转

Spring AI 支持的大模型有以下这些(后续还会支持更多大模型):
image.png

3.Spring AI快速上手

Spring AI 开发步骤主要有以下几步:

  1. 创建 Spring Boot 项目,并添加模型依赖;
  2. 配置模型的连接地址和秘钥;
  3. 使用模型提供的对象和方法,实现功能调用。

具体操作如下。

3.1 添加模型依赖

首先,先创建一个 Spring Boot 项目(最低 Java 版本为 JDK 17),并添加 AI 模型依赖(以 OpenAI 为例演示),如下图所示:
image.png

3.2 配置模型参数

OpenAI 至少要配置两个参数:模型的接口访问地址和模型的秘钥信息,如下配置所示:

spring:
  ai:
    openai:
      base-url: https://api.openai.com
      api-key: sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

如何获取 OpenAI 的 api-key?

答:可以去某宝,搜索“API Key”花几毛钱就可以买一个 key,调用上千次。

3.3 调用模型方法

以 AI 聊天为例,当我们操作 OpenAI 的时候,可以通过 OpenAiChatModel 对象的 call(String msg) 进行聊天功能的实现,具体实现代码如下:

import jakarta.annotation.Resource;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/openai")
public class OpenAIController {
   
   

    @Resource
    private OpenAiChatModel chatModel;

    // 生成一个普通方法
    @RequestMapping("/test")
    public String test(String msg) {
   
   
        if (!StringUtils.hasLength(msg)) {
   
   
            return "请先输入信息!";
        }
        return chatModel.call(msg);
    }
}

以上代码的执行效果如下:
image.png
当然,除了聊天功能之外,我们还可以实现生成图片、音频和文本的互相转换等功能,这里就不一一演示了,大家可以去官网查看更多示例代码:https://docs.spring.io/spring-ai/reference/1.0/api/index.html

课后思考

Spring AI 能对接国内的大模型吗?实现的手段都有哪些?

本文已收录到我的面试小站 www.javacn.site,其中包含的内容有:Redis、JVM、并发、并发、MySQL、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、设计模式、消息队列等模块。

相关文章
|
11月前
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
5806 116
|
人工智能 JavaScript Java
【SpringAIAlibaba新手村系列】(1)初识 Spring AI Alibaba 框架
本文介绍了SpringAIAlibaba框架的基本概念和使用方法。作为Spring官方AI框架的阿里云实现版本,它简化了Java开发者调用AI模型的过程。文章详细讲解了核心概念如ChatModel、ChatClient,以及阿里云百炼平台的功能。通过HelloWorld项目示例,展示了如何配置APIKey、编写控制层代码,实现普通调用和流式输出两种AI交互方式。重点阐述了SpringAI与SpringAIAlibaba的关系,以及自动配置机制的工作原理,帮助开发者快速上手这一框架。
9010 9
|
12月前
|
人工智能 缓存 监控
使用LangChain4j构建Java AI智能体:让大模型学会使用工具
AI智能体是大模型技术的重要演进方向,它使模型能够主动使用工具、与环境交互,以完成复杂任务。本文详细介绍如何在Java应用中,借助LangChain4j框架构建一个具备工具使用能力的AI智能体。我们将创建一个能够进行数学计算和实时信息查询的智能体,涵盖工具定义、智能体组装、记忆管理以及Spring Boot集成等关键步骤,并展示如何通过简单的对话界面与智能体交互。
3715 1
|
11月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
8701 131
|
11月前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践
本文介绍RAG(检索增强生成)技术,结合Spring AI与本地及云知识库实现学术分析AI应用,利用阿里云Qwen-Plus模型提升回答准确性与可信度。
2620 90
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践
|
12月前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
本文介绍如何在Spring AI中自定义Advisor实现日志记录、结构化输出、对话记忆持久化及多模态开发,结合阿里云灵积模型Qwen-Plus,提升AI应用的可维护性与功能性。
2083 125
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
|
9月前
|
人工智能 NoSQL Java
Spring AI 进阶之路03:集成RAG构建高效知识库
本文介绍如何在Spring Boot中集成RAG(检索增强生成)技术,通过Redis向量数据库为大模型外挂私域知识库。手把手实现文档上传、切分、向量化存储,并构建支持普通对话与知识库问答双模式的智能聊天机器人,解决大模型对私有信息无知的问题,助力打造企业级AI应用。
2549 1
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
14215 4
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
|
10月前
|
人工智能 安全 Java
Spring AI 核心架构解析:构建企业级 AI 应用的 Java 新范式
Spring AI 为 Java 开发者提供企业级 AI 应用新范式,通过分层架构、统一抽象(如 ChatClient、PromptTemplate)与 Spring 生态深度集成,支持 RAG、函数调用、流式响应等核心功能,实现安全、可观测、可维护的智能系统构建。
1827 8
|
11月前
|
人工智能 监控 Java
Spring AI Alibaba实践|后台定时Agent
基于Spring AI Alibaba框架,可构建自主运行的AI Agent,突破传统Chat模式限制,支持定时任务、事件响应与人工协同,实现数据采集、分析到决策的自动化闭环,提升企业智能化效率。
Spring AI Alibaba实践|后台定时Agent