“小米,你说的LangChain4j到底能不能看图?”

“DashScope 能接图像,但怎么配 LangChain4j 啊?”

“我想让用户上传图片,然后用大模型理解图里的内容,比如识别图中有几个猫、猫在干嘛,这能实现吗?”

朋友们,最近这类问题简直刷爆了我的微信。于是我决定:干脆用一个周末时间,把这事儿全捋清楚,搭个能理解图片的LangChain4j小项目!

今天的这篇文章,就是我的完整探索过程——从一张图片开始,到LangChain4j结合 DashScope 实现视觉理解的全过程。

准备好了吗?小米带你冲!

LangChain4j 是什么?它为什么火?

我们从头说起,别担心,小米风格的技术解释保证你能听懂!

1、LangChain4j 是谁?

LangChain4j 是 LangChain 的 Java 版本,你可以把它看作是一个 Java 世界的“大模型编排框架”。它能帮你:

  • 把大模型接入到 Java 项目中(支持 OpenAI、DashScope 等多种模型)
  • 支持 Agent、多模态输入、工具调用等高级玩法
  • 把 prompt 写成 Annotated Java 接口(是不是很 Spring

2、为什么要用 LangChain4j?

Java 程序员终于不用羡慕 Python 了!

LangChain4j 把复杂的 Prompt 和模型封装成“Annotation + 接口”形式,超级优雅:

“看图说话”的AI来了!用LangChain4j+DashScope搞定视觉理解!_上传

看到没?一句话就能让模型“看图说话”。是不是很心动?

但现实不是这么美——光有 LangChain4j,还不能直接“看图”,我们还得靠DashScope 的视觉模型来“解锁视觉理解”。

DashScope 的图像理解到底能做什么?

阿里达摩院出品的 DashScope(灵积)其实已经支持多模态了。我们关注的核心功能是:图片+文字输入,大模型给出语言理解

我测试了一下他们的多模态 API,可以处理这些场景:

  • 上传一张猫猫照片,问它“这是什么猫”
  • 上传一张 UI 截图,问它“这个页面能做什么操作”
  • 上传一张流程图,问它“这个流程的核心逻辑是什么”

换句话说:你给图,它讲故事。

而且,它已经在 LangChain4j 中内置支持了!

打造一个“视觉问答助手”的完整项目

下面我们就一起动手,实现这个项目:用户上传一张图,我来回答这张图说了什么!

技术栈清单

“看图说话”的AI来了!用LangChain4j+DashScope搞定视觉理解!_Java_02

开始编码啦,LangChain4j + DashScope 多模态实践!

1、添加依赖

首先,在 pom.xml 中加上 LangChain4j 和 DashScope 支持:

“看图说话”的AI来了!用LangChain4j+DashScope搞定视觉理解!_模态_03

记得申请 DashScope 的 API Key 哦:https://dashscope.console.aliyun.com/

2、编写接口:让模型看图说话!

“看图说话”的AI来了!用LangChain4j+DashScope搞定视觉理解!_上传_04

是不是很像 Spring 的 @RequestMapping?LangChain4j 的 @UserMessage 就是 Prompt,@Image 就是告诉模型“这个参数是图片”。

3、初始化模型:接入 DashScope 多模态模型

“看图说话”的AI来了!用LangChain4j+DashScope搞定视觉理解!_Java_05

运行这段代码,你会看到:

“看图说话”的AI来了!用LangChain4j+DashScope搞定视觉理解!_Java_06

是不是超棒!

上传图片 + LangChain4j 调用,SpringBoot 完整打通!

上面只是控制台演示,但我还用 Spring Boot 做了一个“前端上传图片 → 后端理解”的完整流程:

控制器:接收上传图片

“看图说话”的AI来了!用LangChain4j+DashScope搞定视觉理解!_Java_07

前端用 Vue、React 甚至 Postman 都能上传图,马上得到解释文字。

实战测试场景

我用这个项目做了几个真实测试,结果超出预期!

场景1:识别 UI 界面

上传一个 App 页面截图,问 DashScope:

“这个页面能做什么?”

回答:

这是一个支付确认界面,用户可以输入金额、备注,并点击“确认”按钮完成支付。

——准得离谱!

场景2:看懂漫画对话

上传一张小漫画,模型能分辨角色位置、情绪、文字气泡,还能总结剧情!

场景3:流程图自动摘要

上传一张流程图,问它:

“这个流程的核心思路是什么?”

模型回答:

此流程展示了用户注册、身份验证、数据库存储和成功跳转等步骤。

居然分析得头头是道!

幕后细节揭秘

这个项目看起来简单,其实背后还藏了不少技术细节:

1、图片 URL 的限制

DashScope 目前要求图片必须为公网可访问的 URL。所以不能直接传 base64。

我采用的方案:

  • 后端上传到阿里云 OSS
  • 返回 URL,传给 DashScope

当然,你也可以用别的图床,只要支持 HTTPS 外链就行。

2、模型选择:qwen-vl vs qwen-vl-plus

  • qwen-vl 是基础视觉模型,轻量但速度快
  • qwen-vl-plus 支持更复杂的视觉推理,更适合“流程图”“漫画”这种任务

3、线程安全和会话状态

LangChain4j 的 @Conversational 注解会默认管理对话上下文。如果你用的是 Spring Boot,推荐用 @Scope("prototype") 保证每次请求都是独立 session。

最后的话:视觉大模型,未来已来!

以前我们总说“大模型只能聊天”,现在它已经能看图说话、理解流程、分析视觉内容,这让我们离“AI 理解世界”更进一步。

对我们 Java 开发者来说,LangChain4j + DashScope 多模态,是真正意义上——从‘能对话’走向‘能观察’

我真心希望这篇文章能帮到你,也欢迎把它转发给所有正在研究多模态 AI 的小伙伴们。

END

觉得这篇文章不错?点个 “在看” + “转发”,支持一下写了整整一个周末的小米吧!

我是小米,一个喜欢分享技术的31岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货!