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

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

踩坑记录

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

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时需要有一些调整

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)

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

扩展知识

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

每个模型支持的多模态

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

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

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

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

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

http://www.xdnf.cn/news/15280.html

相关文章:

  • IP 地址与网络基础全面解析
  • ARC 02 runner scale set chart:对接集群与 Github Action 服务器
  • 在 OCI 生成式 AI 上搭一个「指定地区拉面店 MCP Server」——从 0 到 1 实战记录
  • 基于SpringBoot3集成Kafka集群
  • CSS个人笔记分享【仅供学习交流】
  • Utils系列之内存池(MultiSizePool)
  • 电商系统未来三年趋势:体验升级、技术赋能与模式重构
  • 关于ISO 26262的Single-Point Fault/Residual Fault/Latent Fault/Dual-Point Fault的整理
  • Android 响应式编程完整指南:StateFlow、SharedFlow、LiveData 详解
  • Docker 基于 Cgroups 实现资源限制详解【实战+源码】
  • CAU数据挖掘第四章 分类问题
  • Linux修炼:开发工具
  • 软件开发中的瀑布式开发与敏捷开发
  • 2025湖北省信息安全管理与评估赛项一阶段技能书
  • 在 JetBrains 系列 IDE(如 IntelliJ IDEA、PyCharm 等)中如何新建一个 PlantUML 文件
  • 新手向:使用Python构建高效的日志处理系统
  • Llama系列:Llama1, Llama2,Llama3内容概述
  • Web攻防-PHP反序列化魔术方法触发条件POP链构造变量属性修改黑白盒角度
  • Python爬虫实战:研究xlwings库相关技术
  • Qt 3D模块加载复杂模型
  • CA复习功课
  • 前端进阶之路-从传统前端到VUE-JS(第五期-路由应用)
  • react中为啥使用剪头函数
  • 【Java入门到精通】(三)Java基础语法(下)
  • 博途多重背景、参数实例--(二)
  • 多线程的区别和联系
  • 子数组最大平均数 I
  • Leetcode力扣解题记录--第3题(滑动窗口)
  • WildCard野卡已跑路(包含gpt plus升级方案)
  • 程序改错---字符串