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):**
*   **食品广告:** 这种图片非常适合用于超市、水果店或生鲜电商的宣传海报,强调水果的"新鲜"、"多汁"和"高品质"。
*   **健康与饮食素材:** 常用于关于健康饮食、减肥、维生素补充的文章配图或博客插图。
*   **平面设计素材:** 由于背景干净且主体突出,这张图很容易被设计师抠图使用,作为包装设计(如果汁、苹果派)的元素。
*   **壁纸或装饰画:** 其鲜艳的色彩和极简的构图也适合作为手机壁纸或现代风格的厨房装饰画。
相关推荐
科技那些事儿9 小时前
一眸科技 | 情感认知智能,让AI更懂人心
人工智能·科技
无心水9 小时前
【Harness:全局认知】3、Harness 如何改写软件交付规则?从 52.8% 到 66.5% 的跨越背后
人工智能·性能优化·openclaw·养龙虾·harness·hermes·honcho
放下华子我只抽RuiKe59 小时前
React 从入门到生产(五):状态管理选型
前端·javascript·人工智能·深度学习·react.js·前端框架·ecmascript
前端若水9 小时前
使用 IndexedDB 在客户端存储对话记录
java·前端·人工智能·python·机器学习
Flittly9 小时前
【日常小问】Spring Cloud Gateway 5.x 跨域和路由配置踩坑实录
java·spring boot·spring cloud
未来智慧谷9 小时前
汉中首家OPC社区正式成立!未来智慧谷联合京东科技(汉中)数字经济产业园打造“一人公司”企业新生态
大数据·人工智能·科技
HIT_Weston9 小时前
89、【Agent】【OpenCode】glob 工具提示词(参数内容)
人工智能·agent·opencode
Omics Pro9 小时前
前沿学科:量子生物学!
大数据·数据库·人工智能·windows·redis·量子计算
MY_TEUCK9 小时前
【Java 后端 | 微服务远程调用实战】Nacos + OpenFeign 从入门到公共模块抽取
java·开发语言·微服务