⭕ AI 如何读取 Markdown 中的图片?
---
一位即友在评论区(
m.okjike.com)问到:Obsidian 中图片以内链存在,AI 无法通过内链读取图片内容,怎么办?
---
AI 可以读文本、读图片、读链接,但是无法从 ![[图片.png]] 这样的内链中读出对应的图片内容。而 Obsidian 是 md 纯文本,无法像 Word 格式那样直接插入图片,怎么办呢?
四个思路:无图、读图、读文、读网。
1. 无图
在 Obsidian 中,只用文本写笔记,不插入图片,这样就不需要 AI 读取图片了。我现在的做法就是这样,纯文本写作,最简单。
如果要把图片内容放到笔记中,先提取图片内容或者用 AI 读取图片,再放到笔记中,而不是直接插图进去。
对于我的个人笔记(非工作笔记),图片、音频、视频并不是必须,说到底,只是一种内容形态,要的不是图片本身,是里面的信息。
笔记中出现的图大多是 Mermaid 绘制的流程图,许多软件都能渲染,哪怕不能渲染,代码画图,光看 Mermaid 代码,我也能读懂,AI 也能读懂。
2. 读图
如果笔记中有必要的图片,但数量少,可以让 AI 遇到 ![[图片.png]] 字样时提醒你,然后你手动发送对应的图片给 AI 处理,或者描述图片内容给它,它会根据上下文,把图片内容融合进去。
可以在提示词中说,比如“帮我总结这篇笔记的核心观点。如果遇到内部图片链接(如 ![[...]] ),请告诉我图片的名称,我会为你描述图片内容。”
这个思路,也可以用 AI 编程,做一个小工具,有兴趣的朋友可以试试。其中关键一步,是把 ![[图片.png]] 解析为电脑中对应的真实文件路径,给 AI 权限,根据这个路径去找图,找到图后自动读取,或者把图片转为 base64 编码读取。
3. 读文
如果图片中没有大量文字内容,或者图片在笔记中只是辅助,信息量并不大,那么可以在插入图片后,在 ![[图片.png]] 下方写一段文字注释,简要介绍图片内容。比如:
![[项目架构图.png]]
*(这是一张展示系统前后端分离架构的流程图,前端通过 API 与后端通信,后端连接数据库。)*
除了文字注释,还可以用 Obsidian 支持的 HTML 注释语法,这些描述在阅读视图下不可见,但 AI 处理 md 源文件时能够读取。比如:
![[销售数据图表.jpg]]
<!-- 图片描述:一张折线图,展示了本季度产品A的销售额逐月上升趋势,其中三月销售额达到峰值。 -->
如果主要信息量存在图片里,那么这种思路就不可行了。
4. 读网
读网的思路,就是把图片的电脑链接或笔记内部链接,转换成图片对应的图床链接。AI 无法读取 ![[图片.png]],但可以读取 。
具体怎么操作呢?
- 你在笔记中插入电脑本地的图片
- Obsidian 插件 Image Auto Upload 会监听这个操作,并自动调用 PicGo
- PicGo 将图片上传到你预先配置好的图床
- 图床可以选择免费方案(GitHub/Gitee)或付费方案(Cloudflare R2/七牛云 OSS/腾讯云 COS/阿里云 OSS),付费方案都有免费额度,要注意的是防盗链和流量费用风险
- 具体用什么方案,你到微信搜一下“Obsidian图床”,有许多人写的详细步骤
- 图床返回图片的网络链接
- 插件 Image Auto Upload 自动将笔记中的本地图片路径或附件链接替换为这个网络链接
其中有许多细节,但大的思路就是:
图片→Obsidian内链→插件 Image Auto Upload→PicGo→图床→图床链接→Obsidian
当 AI 处理 Obsidian 写的 md 格式笔记,一部分处理 md 中文本,一部分处理图床链接对应的图片。
这种方案最佳,一方面解决了 AI 处理 md 中图片的问题,另一方面也解决了 Obsidian 移动端显示图片与同步图片的问题。
Obsidian 最被人批评的就是图片问题,最理想的就是以后 Obsidian 能把这个方案内置到软件本体中,省去配置的麻烦。