...大约 2 分钟
一、本章介绍
为接入 Google ADK 的 Spring AI 扩展图片识别等多模态能力,使智能体在处理文本对话的同时,也能够接收并理解图片内容。
通过这一能力,用户可以将图片作为输入传递给模型,由模型完成图像内容识别、信息提取、场景理解等操作,从而进一步丰富智能体的交互方式和业务应用场景。
二、工程实现
1. 工程结构
在 ai-agent-scaffold-lite-app项目中,resources 目录下新增文件,测试工程多模态能力。
2. 核心模块
2.1 新增文件
将文件放入到 ai-agent-scaffold-lite-app\src\main\resources\file下。

2.2 升级框架
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-dev</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-spring-ai</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.google.adk.samples</groupId>
<artifactId>google-adk-sample-helloworld</artifactId>
<version>1.0.0</version>
</dependency>- 把 Google ADK 升级为稳定版本,1.0.0。
三、测试验证
1.新增测试方法
@Test
public void test_handlerMessage_05() throws IOException {
AiAgentRegisterVO aiAgentRegisterVO = applicationContext.getBean("100003", AiAgentRegisterVO.class);
String appName = aiAgentRegisterVO.getAppName();
InMemoryRunner runner = aiAgentRegisterVO.getRunner();
Session session = runner.sessionService()
.createSession(appName, "cactusli")
.blockingGet();
Content userMsg = Content.fromParts(
Part.fromText("请描述这张图片的主要内容,并说明图中物品的可能用途。"),
Part.fromBytes(resource.getContentAsByteArray(), MimeTypeUtils.IMAGE_PNG_VALUE));
Flowable<Event> events = runner.runAsync("cactusli", session.id(), userMsg);
List<String> outputs = new ArrayList<>();
events.blockingForEach(event -> outputs.add(event.stringifyContent()));
log.info("测试结果:{}", JSON.toJSONString(outputs));
}26-06-08.16:13:56.479 [main ] INFO AiAgentAutoConfigTest - 测试结果:["这张图片的主要内容是:\n\n一只可爱的卡通风格小猫。小猫身体主要是灰色和白色相间,带有深色条纹。它有大大的眼睛,微张的嘴巴,呈现出吃惊或疑惑的表情,脸上有淡淡的腮红。小猫的尾巴微微卷起,整体形象非常萌趣。\n\n图中物品的可能用途:\n\n1. **表情包/聊天表情**:形象生动的表情适合作为聊天中的表情包,用于表达惊讶、疑惑或撒娇等情绪。\n2. **儿童读物/故事书插图**:可用于儿童绘本、故事书,吸引小朋友阅读兴趣。\n3. **文创产品/装饰**:可以作为贴纸、徽章、卡片等文创产品的设计元素。\n4. **教育资料**:用于动物认知教学或课堂演示,帮助学生认识小猫及其情绪。\n5. **游戏角色或应用界面形象**:适合作为卡通游戏中的角色,或手机应用中的吉祥物和互动形象。\n\n整体风格亲和力强,适合面向儿童及喜欢可爱风格大众的多种场景中使用。"] 赞助