
1.简介
多模态性是指模型同时理解和处理来自各种来源的信息的能力,包括文本、图像、音频和其他数据格式。
Spring AI Message API提供了支持多模态 LLM 所需的所有抽象。
其核心为Spring AI提示词Prompt类中的Message接口,有关其UML类图及源码级详细解析请参考博主的另一篇文章:Spring AI开发跃迁指南(第二章:急速上手3——Spring AI 提示词及提示词模版核心原理及使用实例)。
UserMessage的content字段主要用于文本输入,而可选的media字段允许添加一个或多个不同形式的附加内容,如图像、音频和视频。MimeType指定了模态类型。根据所使用的LLM, Media数据字段可以是作为Resource对象的原始媒体内容,也可以是内容的URI。
media字段目前只适用于用户输入消息(例如UserMessage)。它对系统消息没有意义。包含LLM响应的
AssistantMessage仅提供文本内容。要生成非文本媒体输出,应使用专用的单模态模型。
2.使用实例
其他基础的配置如pom、application等请参考博主的另一篇文章Spring AI开发跃迁指南(第二章:极速上手1——Spring AI ChatClient 20行代码构建人工智能应用),本章节主要演示多模态消息类型的使用代码:
- controller:
@GetMapping("/ai/generate-image")
public String generateImage() {
return service.generateStream4();
}
- service:
public String generateImage() {
var imageResource = new ClassPathResource("./test.jpeg");
String res = chatClient.prompt()
.user(u -> u.text("图片中的明星是谁?").media(MimeTypeUtils.IMAGE_JPEG, imageResource))
.call()
.content();
System.out.println(res);
return res;
}
- resource:
放一张图片到resource目录下,本次放一张图片:

- 运行测试

不好意思,本次使用的模型是文本类模型,大家换成支持多模态的模型就好了,嘻嘻。
863

被折叠的 条评论
为什么被折叠?



