JAVA【微服务】Spring AI 使用详解

news/2025/2/26 6:01:14

目录

    • 一、前言
    • 二、Spring AI 概述
      • 2.1 什么是 Spring AI
      • 2.2 Spring AI 特点
      • 2.3 Spring AI 带来的便利
      • 2.4 Spring AI 应用领域
        • 2.4.1 聊天模型
        • 2.4.2 文本到图像模型
        • 2.4.3 音频转文本
        • 2.4.4 嵌入大模型使用
        • 2.4.5 矢量数据库支持
        • 2.4.6 数据工程 ETL 框架
    • 三、Spring AI 对接 ChatGPT
      • 3.1 前置准备
      • 3.2 添加必要的依赖
      • 3.3 接入操作流程
        • 3.3.1 配置文件
        • 3.3.2 增加一个测试接口
        • 3.3.3 接口测试
      • 3.4 OpenAiChatClient 使用
        • 3.4.1 call 使用 Prompt 传递参数方式 1
        • 3.4.2 call 使用 Prompt 传递参数方式 2
      • 3.5 OpenAiImageClient 使用
        • 3.5.1 其他参数传递使用情况
      • 3.6 OpenAiAudioTranscriptionClient 使用
      • 3.7 OpenAiAudioSpeechClient 使用
    • 四、Spring AI 对接 Ollama
      • 4.1 Ollama 介绍
      • 4.2 Ollama 本地部署
        • 4.2.1 下载安装包
        • 4.2.2 执行安装
        • 4.2.3 Ollama 部署千问大模型
      • 4.3 Ollama Web UI 部署与使用
        • 4.3.1 可视化工具下载
      • 4.4 Spring AI 接入 Ollama
        • 4.4.1 引入 Ollama 依赖
        • 4.4.2 添加配置文件
        • 4.4.3 使用 Ollama 聊天 API
    • 五、写在文末

在当今数字化时代,人工智能(AI)技术正以前所未有的速度融入各个领域,微服务架构作为现代应用开发的主流模式,与 AI 的结合愈发紧密。Spring AI 作为 Spring 家族的新成员,为开发者提供了在微服务架构中便捷集成 AI 能力的途径。本文将深入探讨 Spring AI 的使用方法,结合实际代码示例,帮助读者快速上手并应用到项目中。


一、前言

随着 ChatGPT 等大语言模型的火爆出圈,AI 技术的应用场景不断拓展,从智能客服到文本生成,从图像识别到语音转换,AI 正在改变我们的工作和生活方式。在这样的背景下,Spring AI 应运而生,旨在帮助开发者在 Spring 微服务架构中轻松集成 AI 功能,加速应用智能化转型。

二、Spring AI 概述

2.1 什么是 Spring AI

Spring AI 是 Spring 官方推出的用于在微服务架构中集成 AI 功能的框架,它提供了与主流 AI 服务提供商(如 OpenAI、DeepSeek 等)的无缝对接,简化了 AI 能力的接入流程,让开发者能够专注于业务逻辑的实现,而无需过多关注底层 AI 服务的细节。

2.2 Spring AI 特点

  • 与 Spring 生态系统深度集成:无缝融入 Spring Boot、Spring Cloud 等框架,遵循 Spring 的编程模型和最佳实践。
  • 支持多种 AI 服务:提供对多种 AI 服务的封装,包括聊天模型、文本到图像模型、音频转文本、嵌入大模型等。
  • 简化配置与调用:通过简洁的配置文件和 API 设计,降低 AI 服务的使用门槛,提高开发效率。
  • 可扩展性强:允许开发者根据自身需求扩展和定制 AI 功能,满足不同业务场景的要求。

2.3 Spring AI 带来的便利

  • 快速集成 AI 功能:无需从零开始构建 AI 模型,直接调用成熟的 AI 服务,节省开发时间和成本。
  • 降低学习曲线:对于不熟悉 AI 技术的开发者,Spring AI 提供了易于理解的接口和示例代码,帮助快速上手。
  • 提高应用智能化水平:借助 AI 的强大能力,为应用添加智能聊天、内容生成、图像识别等功能,提升用户体验。

2.4 Spring AI 应用领域

2.4.1 聊天模型

通过集成聊天模型,为应用添加智能客服、在线问答等功能,实现与用户的自然语言交互。

2.4.2 文本到图像模型

将文本描述转换为图像,可用于生成宣传海报、设计素材等,助力创意内容的快速产出。

2.4.3 音频转文本

实现语音识别功能,将音频内容转换为文本,方便信息的记录和处理。

2.4.4 嵌入大模型使用

在应用中嵌入大型语言模型,提供更强大的自然语言处理能力,如文本生成、翻译、摘要等。

2.4.5 矢量数据库支持

结合矢量数据库,实现高效的相似度搜索和推荐功能,提升应用的智能化水平。

2.4.6 数据工程 ETL 框架

利用数据工程 ETL 框架,实现数据的抽取、转换和加载,为 AI 模型提供高质量的数据支持。

三、Spring AI 对接 ChatGPT

3.1 前置准备

在开始对接 ChatGPT 之前,需要完成以下准备工作:

  • 注册 OpenAI 账号:访问 OpenAI 官网,注册账号并获取 API Key。
  • 配置网络环境:确保服务器能够访问 OpenAI 的 API 服务,如有必要,配置代理或 VPN。

3.2 添加必要的依赖

在项目的 pom.xml 文件中,添加 Spring AI 的依赖:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-starter</artifactId>
    <version>0.5.0</version>
</dependency>

3.3 接入操作流程

3.3.1 配置文件

application.propertiesapplication.yml 文件中,添加 OpenAI 的配置信息:

spring.ai.openai.api-key=your_api_key
spring.ai.openai.base-url=https://api.openai.com/v1
3.3.2 增加一个测试接口

创建一个控制器类,用于测试 ChatGPT 的功能:

java">import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ai.chat.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ChatGPTController {
   

    @Autowired
    private ChatClient chatClient;

    @GetMapping("/chat")
    public String chat(@RequestParam String message) {
   
        return chatClient

http://www.niftyadmin.cn/n/5868132.html

相关文章

JavaScript的BOM编程

BOM编程 what 通过JS代码操作浏览器&#xff0c;js的编程就是面向对象编程&#xff0c;最多的就是面向标签对象编程 BOM:Browser Object Model 浏览器对象模型&#xff0c;以window对象为依托&#xff0c;表示浏览器窗口以及页面可见区域。 学习BOM操作&#xff0c;就是学习…

【DeepSeek系列】05 DeepSeek核心算法改进点总结

文章目录 一、DeepSeek概要二、4个重要改进点2.1 多头潜在注意力2.2 混合专家模型MoE2.3 多Token预测3.4 GRPO强化学习策略 三、2个重要思考3.1 大规模强化学习3.2 蒸馏方法&#xff1a;小模型也可以很强大 一、DeepSeek概要 2024年&#xff5e;2025年初&#xff0c;DeepSeek …

ROS 2机器人开发--话题通信实战--制作一个可视化系统状态监听工具

1 准备工作 2 自定义通信接口 3 系统信息获取与发布 4 测试QT 5 数据可视化显示 1 准备工作 需求分析&#xff1a;开发一个基于ROS 2话题通信的系统状态监听工具&#xff0c;能够实时获取系统&#xff08;如CPU、内存、网络等&#xff09;的运行状态&#xff0c;并通过可视…

powershell:报错npm : 无法加载文件 D:\develop\nodejs\npm.ps1,因为在此系统上禁止运行脚本

问题 原因分析 由于 ​PowerShell 的执行策略&#xff08;Execution Policy&#xff09;​​ 限制导致的。Windows 系统默认禁止运行未签名的脚本&#xff08;包括 npm 脚本&#xff09;&#xff0c;因此运行 npm run dev 时&#xff0c;PowerShell 阻止了脚本的执行。 解决…

玩转Docker | 使用Docker部署IT-tools工具箱

玩转Docker | 使用Docker部署IT-tools工具箱 前言一、 IT-tools介绍简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署IT-tools服务下载镜像创建容器检查容器状态检查服务端口安全设置四、访问IT-tools应用五、测试与使用六、总结前言 在信息技…

Maven 依赖的深入理解(二)

四、Maven 依赖传递原理 &#xff08;一&#xff09;传递依赖的概念 在 Maven 项目中&#xff0c;传递依赖是一个非常重要的特性。它指的是当项目引入一个依赖时&#xff0c;这个依赖所依赖的其他组件库也会被 Maven 自动引入到项目中&#xff0c;而无需我们在项目的pom.xml文…

​Linux 服务器上部署搭建 Jupyter notebook【详细教程】​

安装anaconda3 一、linux服务器手动安装Anaconda3教程 1.首先清华镜像站 下载anaconda3。 此次下载的版本如下&#xff1a; 2.下载好后&#xff0c;使用WinSCP将下载好的文件上传到服务器。 3.切换到anaconda3所在文件位置 在文件目录下执行 bash Anaconda3-5.2.0-Linux-x8…

AI领域风云变幻:Deepseek爆火现象深度解析

摘要 神州数码集团首席AI专家谢国斌深入分析了Deepseek爆火背后的现象&#xff0c;揭示了AI领域竞争格局的深刻变革。随着算力内卷加剧&#xff0c;AI企业正面临前所未有的挑战与机遇。谢国斌指出&#xff0c;Deepseek的成功不仅在于其强大的算法和数据处理能力&#xff0c;更在…