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。

相关推荐
guslegend1 天前
测试工程师驾驭大语言模型的第一步
人工智能·语言模型·自然语言处理
@蔓蔓喜欢你1 天前
React Hooks完全指南:从基础到进阶
人工智能·ai
Agent手记1 天前
生产环节费用智能管控与超支预警方案:基于AGI智能体的精细化治理实践
运维·服务器·人工智能·ai·agi
中电金信1 天前
中电金信智能数据挖掘助手,让数据分析像聊天一样简单
人工智能
AI浩1 天前
UAV-DETR:面向反无人机目标检测的 DETR 框架
人工智能·目标检测·无人机
byte轻骑兵1 天前
【LE Audio】CAP精讲[8]:CCID绑定术,打通音频流与控制的任督二脉
网络·人工智能·音视频·le audio·音视频控制
晚霞的不甘1 天前
CANN ATB 加速库深度解析:Transformer 模型的加速引擎
人工智能·pytorch·transformer
Gradpaper41 天前
做PPT?不存在的。AI,上!
人工智能·论文·答辩
梵得儿SHI1 天前
(第四篇)Spring AI 架构设计与优化:真实生产环境复盘,从 100ms 到 10ms 的响应提速全流程
人工智能·缓存·性能优化·milvus·向量检索·rag·spring ai
Swift社区1 天前
当 Agent 可以自主协作:系统如何避免彻底混乱?
人工智能·agent·多智能体