哈喽👋🏻,大家好
我是AI开发爱好者星辰,最近在研究n8n工作流,特别希望用AI自动做一个城市留影回忆录,最终完成一份属于你独一无二的作品。

这个过程当中我们会一起共学,每周线上会议(具体时间群上通知),分享技术实现(从工作流设计到AI图像分析)。

你只需要用手机拍摄3-4张有故事的照片/周在你的城市,之后填表上传即可一键生成专属于你的城市留影集并自动推送至你的邮箱。

我会负责搭建自动化工作流,整合AI视觉处理,生成电子留影集,然后让它自动送达你的邮箱📪。

这不是一次谁教谁使用AI的课程而是一次共创实验🤩。

无论你在哪个城市都可以随时开始,如果你是对AI感兴趣,且想要尝试用它做一个行动项目的,欢迎你跟我一起共学、共创、共享!同时也欢迎与我交流学习ε≡٩(๑>₃<)۶ 


效果预览

这是这么做到的呢?

其实就是先填写飞书表格,再通过飞书表格获取到你上传的图片数据,之后n8n拉取飞书表格的数据,接着通过调用豆包Doubao-Seedream-5.0-lite模型结合你上传的图片数据生成我们的城市留影集最后发送至邮箱。

搭建过程概述

n8n的节点概览

        根据节点概览,首先根据Webhook监听回调地址,当填完基本信息,提交飞书图像数据后,我们首先将获取的文本及图像信息格式化,其中图像还需要转化为url/base64的格式,后面AI才能读取和分析。

        其中最关键的就在于需要有公网回调地址,我采用的是临时的ngrok内网穿透工具

拿到https://f0dc-120-85-125-175.ngrok-free.app地址之后,再结合n8n默认的测试路由

就拿到了我们的https://f0dc-120-85-125-175.ngrok-free.app/webhook-test/c0536f8f-fad0-4069-9809-62e432f43a03公网地址

之后就是填写飞书自动化请求参数(这边跳过了填表)

再之后就是我们第二个核心tenant_access_token获取,有关飞书的每一步操作都是需要这个token的,所以我们首先需要获取tenant_access_token

具体方法的话网上有很多,我就不详细说明了(主要是先创建飞书应用之后通过app_key与app_secret,调用https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal这个接口获取,特别说明这个token有时效性,大概30分钟后会失效)
获取数据之后,就是本项目的一个重难点就是如何从飞书拉取数据?

这个节点的配置信息不多,主要就是通过tenant_access_token在

https://open.feishu.cn/open-apis/bitable/v1/apps/Xwbxxxxxxxxxxxxxxxxx/tables/tbxxxxxxxxxxxxxx/records

这个路由拉取

这个接口就很有学问了,我们拆开看:

https://open.feishu.cn 飞书开放平台 API 统一域名

/open-apis/bitable/v1/ 

意思是:

  • open-apis → 飞书开放接口

  • bitable → 多维表格(Base)

  • v1 → API 版本号

apps/{app_token} apps/Xwbxxxxxxxxxxxxxxxxxx 

👉 多维表格的 app_token
👉 相当于这个“数据库”的 ID

tables/{table_id} tables/tbxxxxxxxxxxxxx

👉 表ID(某一个sheet)

一个多维表格里可以有多个表
每个表都有一个 table_id

/records

👉 获取记录数据(行数据)

等价于:

SELECT * FROM 表

其中最关键的就是多维表格的 app_token如何获取(下面有两种获取方法)

一般创建的多维表都是在wiki中,所以参照文档

获取,而表ID就在上图的路由中(特别提醒)table=之后

获取数据之后,就是将数据按记录id进行整理和划分

进行获取fields中的数据,过滤无关数据

然后就进入我们的循环(因为我们是按记录一条一条的处理,不是一张张图片的识别和生成,也不是一次性拉取所有图片进行生成所以我们是按记录进行循环)

下载该记录的所有图片(先提取所有图片数据)

再提取所有图片链接

再逐个图片下载

为防止高并发被拦截,需要增加1秒延时

你可能会好奇,获取个图片数据为什么要这么复杂?其实这已经是最简单的方法了,因为本项目只是一个兴趣实战项目,数据量不会太大,所以没必要开对象存储(OBS),当然也可以用临时链接,但飞书不行,它为了安全性你所有api请求都需要鉴权,你可以尝试直接打开它的URL,它都会报

Missing access token for authorization

所以不能直接访问,只能下载到n8n再给AI处理

对于下载的图片数据,我们还需要转为base64的格式,AI才能识别和处理

再拉取前面图片的基本信息

根据基本信息生成动态的提示词

最后就是我们留影集相册的生成

关于Doubao-Seedream-5.0-lite这个模型的API调用方法,请参考官方手册

参考代码如下:

{
  "model": "doubao-seedream-5-0-260128",
  "prompt": "{{ $json.dynamicPrompt }}",
  "image": {{ JSON.stringify($json.images.map(i => i.base64)) }},
  "sequential_image_generation": "disabled",
  "response_format": "url",
  "size": "2K",
  "stream": false,
  "watermark": true
}

当然,生成的图片也是需要下载才能发送邮箱的

这里的话就直接GET这个链接下载就行了,不需要鉴权。

之后就是邮箱发送

其中SMTP服务是需要额外开通的,主要就是获取授权码

至此整个工作流就搭建完成了,至于里面配置的细节,模型的选择都需要经验,感兴趣的可以私聊我获取源文件代码,或者入群交流。

我是AI应用开发爱好者星辰,如果你也对AI开发感兴趣的话,欢迎与我多多交流!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐