Spring AI 2.0 开发Java Agent智能体 - 多模态支持

大家好,我是Java1234_小锋老师,最近更新《2027版本 Spring AI 2.0 开发Java Agent智能体 视频教程》专辑,感谢大家支持。

本课程主要介绍和讲解Spring AI 2.0简介,Spring AI 2.0 HelloWorld搭建,Advisors --- 拦截器模式增强AI能力,对话与提示词工程(Prompt),工具调用 (Function Calling / Tools) ,RAG (检索增强生成),MCP(模型 上下文协议)和多模态支持。

等这个Spring AI2.0基础课程录制完成,接下来要发布2个 企业级Java AI实战课程,RAG 企业知识库系统和AI智能客服系统。大家可以点点关注,后面更精彩。

视频教程+课件+源码打包下载:

链接:https://pan.baidu.com/s/1o-zRfndo1HHrS_uFroOiCw?pwd=1234

提取码:0000

Spring AI 2.0 开发Java Agent智能体 - 多模态支持

Spring AI 2.0 通过统一的消息 API提供强大的多模态支持,让 Java 开发者能够轻松构建处理文本、图像、音频等多种信息类型的 AI 应用。

1. 什么是多模态 AI

多模态 AI 指模型能够同时理解和处理来自不同信息源(文本、图像、音频、视频等)的内容,实现跨模态的交互与生成。Spring AI 2.0 的多模态设计理念是统一抽象、灵活扩展,适配主流 AI 模型提供商的多模态能力。

2. 支持的模态类型与场景

模态组合 典型应用场景 支持模型示例
文本 + 图像 图像描述、OCR、视觉问答 (VQA) GPT-4V、Gemini、Qwen-VL、Pixtral
文本 + 音频 语音转录、语音合成、语音翻译 GPT-4o-audio、Whisper、Gemini
文本 + 视频 视频内容分析、视频摘要生成 Gemini、GPT-4o
文生图 / 图生文 创意生成、图像编辑 DALL-E、Stable Diffusion

3. Spring AI 2.0 多模态 API 核心设计

Spring AI 通过Message 接口及其实现类提供多模态交互的基础抽象,核心组件包括:

  • UserMessage

    :用户输入消息,包含两个关键字段

    • content:主要文本内容

    • media:可选媒体附件列表,支持多种模态

  • Media 类

    :封装媒体数据,包含两个核心属性

    • mimeType:指定媒体类型(如image/pngaudio/wav

    • resource:媒体资源(支持 ClassPathResource、FileSystemResource 等)

  • ChatClient:流畅式 API,简化多模态请求构建与调用

我们来看一个具体示例:

我们先准备一个图片apple.png:

为了测试方便,我们把图片放target目录下,

新建MyMultimodalityController

复制代码
package com.java1234.controller;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyMultimodalityController {

    @Autowired
    private ChatClient chatClient;

    @GetMapping("/analyze-image")
    public String analyzeImage() {
        // 流畅式API构建多模态请求
       String result= chatClient.prompt()
                .user(u -> u
                        .text("请详细描述这张图片的内容,包括物体、颜色、场景和可能的用途")
                        .media(MediaType.IMAGE_PNG, new ClassPathResource("apple.png"))
                )
                .call()
                .content();  // 直接获取响应内容
        System.out.println(result);
        return "OK";
    }
}

浏览器请求:http://localhost:8080/analyze-image

大模型返回:

复制代码
这是一张高质量的静物摄影作品,以下是关于这张图片的详细描述:

**1. 物体 (Objects):**
*   **主体:** 图片中有三个红苹果。最前方正中央是一个最大、最完整的苹果,占据了画面的主要部分。在它的左后方和右后方各有一个苹果,它们稍微被遮挡,形成了前后层次感。
*   **水珠:** 所有苹果的表面都覆盖着细密、晶莹剔透的水珠。这些水珠大小不一,均匀地分布在果皮上,极大地增强了苹果的新鲜感和湿润感。
*   **叶子:** 在苹果群的上方,有一片鲜嫩的绿叶。它看起来像是从后面那个苹果的果梗处长出来的,叶片舒展,叶脉清晰可见,为画面增添了一抹生机。
*   **果梗:** 可以看到两根深褐色的木质果梗(stem),一根在左边的苹果上,一根在中间/右边的苹果上,它们向上竖立,显得挺拔。

**2. 颜色 (Colors):**
*   **红色:** 苹果呈现出非常鲜艳、饱满的深红色(类似绯红或深红),色泽诱人。
*   **绿色:** 叶子的绿色非常翠绿,与红色的苹果形成了经典的"红绿对比",在视觉上非常醒目。
*   **黑色:** 背景是纯黑色的。这种深色背景极好地衬托了苹果的鲜艳色彩。
*   **白色/银色:** 水珠反射光线呈现出亮白色或银色的高光点。

**3. 场景与光影 (Scene & Lighting):**
*   **背景:** 这是一个典型的摄影棚静物拍摄场景。背景纯黑,没有任何杂物干扰,旨在让观众的视线完全集中在苹果上。
*   **倒影:** 在图片的最下方,隐约可以看到苹果在黑色平面上的倒影,这表明苹果是放置在一个光滑、反光的黑色表面(如玻璃或抛光黑亚克力板)上。
*   **光线:** 使用了专业的布光。光线柔和但方向性强,打在苹果光滑的表皮上形成了漂亮的高光区,突出了苹果的圆润立体感和水珠的质感。

**4. 可能的用途 (Possible Uses):**
*   **食品广告:** 这种图片非常适合用于超市、水果店或生鲜电商的宣传海报,强调水果的"新鲜"、"多汁"和"高品质"。
*   **健康与饮食素材:** 常用于关于健康饮食、减肥、维生素补充的文章配图或博客插图。
*   **平面设计素材:** 由于背景干净且主体突出,这张图很容易被设计师抠图使用,作为包装设计(如果汁、苹果派)的元素。
*   **壁纸或装饰画:** 其鲜艳的色彩和极简的构图也适合作为手机壁纸或现代风格的厨房装饰画。
相关推荐
苏映视官方账号5 分钟前
精品案例丨方寸之间,“微” 毫毕现 —— 圆刀机高精度检测工艺优化实例
人工智能·数码相机·视觉检测·制造
Cloud_Shy6187 分钟前
解读《Effective Python 3rd Edition》:从练气到老魔(第六章 Item 40 - 43)
android·开发语言·人工智能·笔记·python·学习方法
Sammyyyyy7 分钟前
月之暗面 Kimi Code 0.4.0 发布,终端 AI 编码助手全面采用 TypeScript,实现毫秒级启动
前端·javascript·人工智能·ai·typescript·servbay
装不满的克莱因瓶7 分钟前
掌握生成对抗网络(GAN)的优化目标与评估指标——从博弈函数到生成质量衡量体系
人工智能·python·深度学习·算法·机器学习
whyfail10 分钟前
小米 MiMo Code 开源:能免费用 2.5 模型的 AI 编程 Agent
人工智能
慕木沐17 分钟前
【Spring AI + Google ADK 】流式输出时 outputKey 状态缓存失败的问题
人工智能·spring·缓存
wuhanzhanhui20 分钟前
智能工厂升级新风口,2026武汉智能工业自动化及机器人展览会引领未来
人工智能
swordbob23 分钟前
缓存延迟双删的两种策略
java·缓存
凡人叶枫23 分钟前
Effective C++ 条款08:别让异常逃离析构函数
java·linux·数据库·c++·嵌入式开发
云烟成雨TD24 分钟前
Agent Scope Java 2.x 系列【4】模型层
java·人工智能·agent