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

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

目录

    • 一、前言
    • 二、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 的功能:

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.kler.cn/a/561928.html

相关文章:

  • 【STL专题】优先级队列priority_queue的使用和模拟实现,巧妙利用仿函数解决优先级
  • 操作系统前置汇编知识学习第九天
  • 将CUBE或3DL LUT转换为PNG图像
  • 项目访问使用 docker bridge 网络模式(端口映射)配置详解
  • Visual Studio Code 2025 安装与高效配置教程
  • Github 2025-02-25 Python开源项目日报 Top10
  • 【Linux】gdb/cgdb调试工具
  • window平台上qtcreator上使用opencv报错
  • uniApp小程序保存canvas图片
  • JavaScript基础(函数及面向对象)
  • 网络安全入门|从防护到溯源:HTTP慢速攻击的深度对抗
  • 警惕将“数据标注”岗位包装为“大数据工程师”充数
  • 电子商务网站租用香港服务器的好处有哪些?
  • Lab14_ Blind SQL injection with time delays
  • 【三维分割】LangSplat: 3D Language Gaussian Splatting(CVPR 2024 highlight)
  • 从零开始玩转TensorFlow:小明的机器学习故事 6
  • 每日精讲:删除有序数组中的重复项,移除元素,合并两个有序数组
  • 【Viewer.js】vue3封装图片查看器
  • 短剧源码部署搭建小程序搭建IAA+IAP混合解锁模式
  • 上海创智学院(测试)算法笔试(ACM赛制)部分例题