spring-ai-alibaba 1.0.0.2 学习(十六)——多模态

踩坑记录

在spring-ai-alibaba的官方文档中,多模态章节与spring-ai基本一样,主要是以下代码:

java 复制代码
ChatClient.create(chatModel).prompt()    
.user(u -> u.text("Explain what do you see on this picture?")            
.media(MimeTypeUtils.IMAGE_PNG, new ClassPathResource("/multimodal.test.png")))    
.call()    
.content();

但是调用会报如下错误:

org.springframework.ai.retry.NonTransientAiException: HTTP 400 - {"request_id":"64359c98-f67d-94de-90fc-83f4df8a4572","code":"InvalidParameter","message":"url error, please check url!"}

修复建议

实际在使用spring-ai-alibaba时需要有一些调整

java 复制代码
chatClient.prompt()
                .user(u -> {
                    try {
                        u.text(input).media(
                                MediaType.IMAGE_PNG,
                                URI.create("图片网址").toURL()
                        );
                    } catch (MalformedURLException e) {
                        throw new RuntimeException(e);
                    }
                })
                .options(DashScopeChatOptions.builder().withModel("qwen-vl-max").withMultiModel(true).build())
                .call()
                .content();

1.需要调整使用的模型,具体可用模型可以参考百炼模型文本生成模型下的多模态模型(大模型服务平台百炼控制台),例如qwen-vl-max

2.需要打开多模态开关 withMultiModel(true)

3.如果是视频还需要在metadata中添加messageFormat(默认是按图片处理)

java 复制代码
message.getMetadata().put(DashScopeApiConstants.MESSAGE_FORMAT, MessageFormat.VIDEO);

之后就可以正常使用了,比如让大模型描述图片中的内容等

扩展知识

曾想尝试着上传图片和视频之外的种类,例如pdf文档等,发现走不通

每个模型支持的多模态

每一个大模型平台支持哪些格式可以查看其ChatModel的实现类,一般call方法都会调用一个createRequest方法,在里面会对UserMessage进行转换

比如DashScopeChatModel,转换时支持video和image两种格式

spring-ai的Deepseek包中,转换只取了text,说明并不支持多模态

spring-ai的ZhiPuAiChatModel中,转换时则只支持image。

当然,这只是spring-ai或者spring-ai-alibaba的扩展包,具体大模型本身是否支持其他种类,还是要查看官方文档或使用官方sdk。

相关推荐
千匠网络1 天前
破局出海壁垒,千匠网络新能源汽车跨境出海解决方案
人工智能
三品吉他手会点灯1 天前
C语言学习笔记 - 20.C编程预备计算机专业知识 - 变量为什么必须的初始化【重点】
c语言·笔记·学习
马丁聊GEO1 天前
解码AI用户心智,筑牢可信GEO根基——悠易科技深度参与《中国AI用户态度与行为研究报告(2026)》发布会
人工智能·科技
nap-joker1 天前
Fusion - Mamba用于跨模态目标检测
人工智能·目标检测·计算机视觉·fusion-mamba·可见光-红外成像融合·远距离/伪目标问题
sakiko_1 天前
UIKit学习笔记1-创建项目(使用UIKit)、使用组件
笔记·学习
一只幸运猫.1 天前
2026Java 后端面试完整版|八股简答 + AI 大模型集成技术(最新趋势)
人工智能·面试·职场和发展
Promise微笑1 天前
2026年国产替代油介损测试仪:油介损全场景解决方案与技术演进
大数据·网络·人工智能
深海鱼在掘金1 天前
深入浅出 LangChain —— 第三章:模型抽象层
人工智能·langchain·agent
生信碱移1 天前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
workflower1 天前
具身智能行业应用-生活服务业
大数据·人工智能·机器人·动态规划·生活