這功能太王炸!用 n8n 打造「可視化 RAG」系統,AI 回答不只文字還能帶圖片與文件
By 李哈利Harry
Summary
Topics Covered
- PDF图片与文本提取:可视化RAG新突破
- OCR技术:解锁PDF中的图片与文字信息
- 图片数据处理与Superbase存储
- RAG系统整合:图片与文本的融合查询
Full Transcript
这种的图形啊 这种的图 那一般的rag的话呢 它是无法识别这种图的 而且呢我们在就算它能识别 但是在我们最后抓取的时候呢 它们 它们是无法把这些图片提供给我们的 啊那今天的话呢 给大家演示一下啊 大家可以看到 今天我给大家演示的是呢 呃就是我问他 在这里面如何去这个清理这个dispenser 对吧那这里的话呢 他就可以把整个洗衣机的
这样一个步骤 告诉给我们 然后呢还有这种配图啊 这种配图的话呢 它包括了有这个西班牙语的配图 还有下面的这个英文的配图 它可以非常清楚的在我们这个文件中 啊就是说啊 找到相对应的这个问题 然后呢理解上下文 然后包括跟这个问题 所有的这样一个数据 有关系的 这样一些图片 也会直接抓出来给我们啊 所以呢 今天我就教大家
如何一步一步地 做一个非常完美的可视化的RAG 可以在我们询问我们的RAG的同时呢 同时把有关联的 所有的这些图片也回复给我们 那废话不多说let's go hi guys welcome back 那今天的话呢 我做了一个整个这样一个可视化的RAG 啊那我们一步一步地来跟大家来讲 这里面我都做了什么啊 如何是一步一步实现的
那如果你想要这个模板的话呢 那到最后的话呢 我也是会告诉大家 哪里去下载我的这个免费的模板啊 那这个模板的话呢 呃大家是可以免费下载的 可以去自己去玩一玩OK 那首先的话呢 第一步的话呢 我的逻辑是 我们只要去从把我们的这个文件 就是我们的PDF 上传到我们的Google Drive里以后呢 然后它可以直接通过一系列的分析 最后把所有的数据呢
传到我们的这个Superbase里面 就是我们的这个向量 向量化数据库里面 首先的话呢 我加了一个这个Google Drive的trigger 那这个trigger的话呢 直接选择你已经建立好的 这样一个文件夹 就可以了 然后呢 你只要上传这个文件 到你相对应的这个文件夹里面 就没有问题了 只要拖拽进去就可以 第二步的话呢 我在这边设置了一下 这个我们的Superbase的一些information 就是一些资料啊 首先的话呢
我这边设置的是Superbase the URL啊 等于这是我们Superbase的URL 然后呢Superbase的这个bucket name叫这个 这里的话呢 我们要去Superbase设置两个东西啊 第一的话呢 就是 我们要去到我们的Superbase里 找这两个数据啊 那首先的话呢 我们到我们的Superbase里面呢 找到旁边这有一个storage 然后进来的话呢 呃你进来的话 这边应该是没有任何的store的 你在这边可以加一个store
加完store的话呢 你给你的store起个名字 这个名字你一定要注意 就是说你要记住你的store叫什么名字 你可以跟我起的一样 N8N 横杠image 横杠rag啊 然后呢一定要把它选成public的啊 OK 那我已经建过了 但是呢就 是建立的 这个步骤呢非常容易 基本上打你的名字 然后呢把你你选择的时候 选择只要是这个公开的 这个就可以了 OK
然后这个bucket里面呢 之后的话呢 就会储存我们所有的图片 就是我们PDF里面所有的图片 之后它就会储存在这里 可以看到这里是我们储存的图片 what's up guys welcome back 之前我做了非常多的这个rag系统啊 但是呢现在有很多小伙伴跟我说呢 哎 他们的文件的这个PDF 里面带了非常多的图片啊 比如说一个电视机 一个冰箱啊 或者是一些芯片 或者这种有非常复杂的这种解释的
这样的这种PDF 那如果通过这种方法 我们要如何在我们调RAG的时候呢 可以让我们的RAG系统 直接给我们提供 里面相对应的图片呢 那今天的话呢 我做了一个可视化的rag 它可以在我们询问这个 我们的AI agent的同时呢 它在里面直接找到相对应的图片 来提供给我们 OK呃 我给大家解释一下什么意思啊 OK大家可以看一下啊
这个是一个洗衣机的 这个使用说明书和维护说明书啊 所以呢 你可以看到这里面有非常多的 然后之后的话呢 我们要去到我们的这个旁边 这个setting里面OK 然后呢找到我们这个data API啊 然后这里的话呢你可以看到这个呢 就是我们的这个project URL了 所以你要把这个记下来 在这边可以直接点然后去呃保存下来
OK然后呢你再回到我们的N8N里面啊 然后呢 把刚才我们的这个生成的这个 网址啊放到这里 然后呢把我们的这个bucket那 这样一个名字放到这里就好了 OK然后你就可以看到啊 这边的话呢 就是我们的啊super Bass的这个URL啊 然后呢是这个网址 然后呢bucket name是这个这个名字OK 这样就设置好了 再来就是我们下载文件啊 下载文件的时候呢
我们只要把这个 刚才Google Drive上传的这样一个文件啊 下载下来就可以 可以看到这个是我们刚才上传的文件 在这里下载了 OK 然后呢 下一步就是我们要去上传到OCR了 那OCR的话呢 我们是用的这个mister OCR的 这样一个h t t p的request啊 如果你下载我的模板的话呢 这边全部已经是帮你设置好的OK 那这边的话呢 你如果你之前没有设置过这个呃 他的credential的话呢
你在这边是需要设置 设置他的credential啊 然后它的这个名字就是authorization 然后呢value就是breer空格 然后你的API key啊 那misro的话 你只要去到它的官网点这个try API key 啊然后你就可以进来 你当然你要注册一个账号对吧 进来的话呢直接点这个APIT 然后这边的话直接生成一个APIT 然后呢复制粘贴就可以了 OK 然后这边的话呢就算连接好了
连接好了以后呢 呃下面这里的话呢都不需要动 这边的话呢 呃基本上都是我帮你设置好的啊 因为这边的话呢 我是直接从这个document里面 直接去抓着它的 这样一个 这个这个upload PDF啊 我直接抓的是这个 这里的这些要用http request这样一些curl的指令啊 所以呢我都已经帮你设置好了 OK那如果你自己想好的话也没有问题 你在这里边的话 只要去找到你相应的
你想要的这样一个curl 然后复制粘贴啊 然后呢就可以了 OK那下一步的话呢 就是我们需要找一个sign URL啊 为什么要找一个sign URL呢 这个的话呢 就是说我们要把我们的 我们的刚开始的PDF用OCR的形式啊 直接扫描了以后呢 上传到miss Joe上面 所以呢你在这边的话呢 你能看到 在这边的话呢 你第一步上传上一步的话呢 他会是给你一个ID啊
会是这个ID 那你只要把这个ID的话 只要拖拽到这里的话呢 你就会直接生成一个这个网址 如果你打开的话你就可以看到 我这边就是打开的话 就自动会下载我们刚才上传的URL 这就说明在Misro这个网站上面呢 已经成功的上传到了 我们的刚才的这样想 让他上传的这样一个 我们的这个PDF的文件啊 那再往下来走的话呢 我们看这个是get OCR result 这个时候呢
我们会看到这里的话呢 我们写了一大段的这个代码 Jason的body 这个呢 是我在他的这个documents里面找的啊 这个叫呢 呃annotation啊 annotation是miss Joe他这个呃 大模型独带的这样一个东西 他就是可以完全的去抓取 我们这个图片啊 你可以看到它的这个模式是 它会把一个这样的图片呢
分成文字图形JSON啊 都是可以的 OK所以呢 我是调用了这里 如果你想自己找的话呢 那你在这里就可以找到这我用的代码 当然我是有小改它的一些代码 我把不需要的东西全部都改掉了 当然你下载我的模板的话呢 这边我已经是帮你全部写好的 OK 然后你只要把这个URL放到这里的话 你就可以看到整个出来效果哈 就是一个这个样子 就是说它自动会把这
这边我们的这样一个这个网址啊 直接会抓到这里面 OK 那下一步你就可以去执行了 执行了以后呢 你就可以看到它 这个功能就实现了 它会把它分成很多步啊 就是说我们把刚才的这个 很大的一个PDF文件 里面什么什么都有 比如说图片 文字什么都有的东西 它就会分开啊 就是说文字是什么 图片是什么 对吧
你可以看到图片我们这边是image base 64 对吧这个就是图片的 一个代码了对吧 然后呢还有这个图片的解释啊 这边也是在这里OK 所以呢这基本上呢 就是把我们一个非常完整的 这样一个PDF文件呢 把我们的图片 解释还有文字全部分开了 然后之后的话呢 这边的话我就会到会有两个路径了 我们先看这个路径 这个路径的话呢
因为它出来的时候呢 是一个item对吧 因为是一个整个东西 大家可以看到 这边输出的后是一个item 所以它很长很长 非常的长对吧 那我现在的话呢 把它直接去split out啊 分开了 分开了的话呢 就把它分成47个不同的 大家可以看到 这边有个4747个不同的item了 然后呢在这边的话呢 我又split了一次
把它的文字和它的这个图片又分开了 对吧所以呢 我在这边呢是分开了两次 第一次是把整个一个文件 分成47个不小的不同的文件 当然这个小的不同文件里面有文字 有图片对吧 然后呢我又把它分开了一次啊 就把它图片和文字分开了 之后呢就走这个路径 这里的话呢 我加了文件的名称 就是说这边的话呢 我们的file name是什么
就是我们在上传的时候 每一个文件都会有一个呃 这个名字啊 我们的名字是什么 最后的话呢 这个original ID original ID的话是什么 就是我们每个图片呃都是有一个ID的 然后呢最后的话呢 这个是annotation啊 就是说解释是在这里 所以大家可以看到我们这 边呢有61个item 然后呢这边也有61个item 所以呢每一个item
它都会从这个形式变成这个形式 就是说 我们要的是file的这个名称 对吧文件的名称 还有这个ID是什么 然后下面的这个段啊 解释是什么啊 这是我们想要的OK OK啊这里的话呢 是把分开这个base 64的这样一个名字 分开啊 这个意思是什么呢 就是说大家可以看一下啊 我的这个指令呢是 play out image
这个节点 里面的这个base 64的一些代码 分开为什么呢 大家可以看一下这段代码 这段代码的话呢 其实我们要的只是这个 这一段是我们要的前面这个data 然后呢 image什么 JPEG base 64 这个是我们不需要的东西 OK因为这个呢 才能真正的代表这个图片的数据 所以呢我们要的是这个东西
所以呢我们要写一段小的代码 然后把它直接分开 分成这个样子 OK这个是我们想要的 然后之后的话呢 我们有了这些数据的话呢 我们就可以把刚才这段这么长的 这些代码 直接转换成图片了 这边的话我加一个节点就是convert to file 所以呢 它把这些这么长的这些图片61个item 大家可以看到这边呢也是61 所以呢
用了这个以后呢 他就会把这串代码 全部代码化的这种呃 格式变成一个图片型的格式 这个时候呢 我们就能看到图片了对吧 那下一步的话呢 我们既然有了图片 我们这个时候 就可以上传到Superbase里面了 这个时候呢 我加了一个Superbase h t t p request啊 大家可以看一下 这里我写了一段代码 这里的话呢 我是用了super base INFO 就是说大家 我们一开始在这里赛的一个节点
对吧这个是super base的 这个URL对吧 我把它直接抓过来 放到这里 大家可以看到这边的这个 我们的这个网址和这个网址是一样的 这就是为什么 我们一开始去设置那个节点的原因 就在这里OK 然后呢这边加一个storage啊 然后后面的话呢 再把我们的storage name加上 所以呢 然后后面的话呢 再把我们的这个 就是我们图片的这个文件的名字
加上 所以呢这个时候的话呢 你就会指向一个 这个是我们的super base URL 就是我们的project的名字对吧 从project里面呢 再放到我们的这个bucket 就是我们的这个bucket的名字在这里 对吧N8N Dash image Dash rag 这个 也是我们一开始在这里一起的名字 在我们Superbase里面起的名字也是这个 对吧 然后这个时候呢 后面再加上 我们每一个图片的这样一个file name
所以这个的话呢 是明确的可以指向这个网址的 那如果你打开这个网址的话呢 能看到这是一个图片 那你也就知道这个图片呢 是已经存在了super base里面 OK 现在的话呢 只要确认无误了 以后呢那就这一步的话 你就说就已经说明你 我们刚才把所有的这个文件里面的 这样一个图片 全部已经上传到super base里了 但是这边还要去设置一些东西啊
首先的话呢 这个的话呢 credential credential的话呢 我们要选predefined credential啊 然后呢 这边选择super base API key然后这边的话呢 只要把你的super base的这个API key连到这里 就可以了 OK 然后下面的话呢 somebody是binary file 然后是data OK所以呢 这边的话呢 我们就会得到两个数值 一个是我们的key啊 这个就是我们的key 还有一个呢
是我们这个啊file的ID是什么 OK 那接下来呢 我们在这边就要重新再取一个名字啊 为什么呢 因为大家可以看啊 在Superbase们上传了以后呢 我们会得到一个key是这样的 也就是它前面呢 会加上我们的这个bucket的名字啊 就是N8N Dash image Dash rag 那这个部分是不是我们想要的 我们只想要什么
我们只想要这个我们上传的文件名 对吧所以呢 我就写了一段代码 然后把它去掉 然后后面的话呢 就只显示这个文件名在这里了 那接下来这一步呢 我们就是需要把我们两个节点 一个是这个节点 还有一个刚才的文件名称 两个节点merge在一起 merge起来 OK这里面的话呢 我们需要把这两个数据全部merge起来 然后把它的这个file name起来 因为file name是相同的
所以我们要把里面的数据 全部放在一起 merge到一起对吧 所以呢 因为这边的话 这个路径我们只是做了图片的处理 对吧但是这个地方呢 有我们所有的这个文件的original ID 还有一些解释在里面 文字的解释在里面对吧 所以呢它先放到全部放到一起 你就会发现 这里的话呢 就会变成我们有我们的file name 有original ID 还有这个annotation对吧 annotation的话就是它的解释在这里 所以呢
我们把所有数据都放在一起了 OK 这个时候呢 我们再把它变成一个啊 把因为我们这边有61个item 这个时候 我们把所有的item都放到一起 变成一个item 这个时候你可以看到 变成一起的时候呢 就会变成一个item去输出啊 变成一个item以后呢 再回来到这里去merge 这里去merge什么呢 这里去merge 我们刚才从这里得到的数据 还有一开始OCR在这里的result啊 连过来 所以呢我们在这里的话呢
就会把所有的数据就已经整理好 在一起了 这里的每一个数据呢 有它里面的这个file name是什么对吧 就就是上传到 Superbase的file name啊 就文件名字是什么啊 ID是什么 然后最后的话呢是这个 这个文字解释是什么啊 大家可以看到 这里面 全部都是这样一个格式给我们呈现的 大家这边是排好的 比如说你看image 2是什么 image三四对吧
这都已经每个都排序好了对吧 OK 这边merge好了以后呢 我们这边再继续split out 因为这是一个item对吧 那我们需要把它变成全部 不同的一些item 所以呢这边我们再次去把它split out啊 那这边的话呢 你就可以看到从一个item呢 又变成了47个item 然后这个时候呢 我加了一个这个code啊 这里的这个呃代码是什么意思呢
就是说我这边的话呢设置了几个值啊 一边的话呢 是让它这个是super base URL等于super base info 然后这边的URL 也就是 我们刚才我们一开始设置的这个值 啊这个值 这个值在这里OK 然后第二步呢 是我让它这个bucket name去等于这个 我们的bucket name 也就是这个值啊 也就是这个值 这个值的话
就是我们刚一开始设的这个值 OK 然后呢full base URL就等于啊 super base URL就是这个我们一开始的这个 我们project的这个网站网址连接 再加上这个storage v one object public bucket name 啊然后这样的话呢 它就能非常的准确的去指向 我们要等一下 要找的哪一个 相对应的这个在Superbase
里面我们存储好的 这样一个图片的这样一个指向的网址 啊就可以找到了 那最后的话呢 我们想让它 形成一个什么样的格式呢 就是说 我们最后想让它要生成的格式呢 是先给我们输出original ID 就是我们的ID是什么 然后呢 把我们的这个图片的这个网址的指向 告诉我们 就是full base URL加这个file name 抓出来之后的话呢
再是呃文字解释对吧 然后呢以这个格式输出 最后的话呢 以JSON Markdown的形式啊给我们return 这边的话 你能看到 这边是我们所有输出的一些啊 这个我们想要的数据了 大家可以看到这边的话呢 首先是我们的额这个original ID对吧 这个就是我们刚才想要的 在这里设置的original ID 然后呢这边的话呢 大家可以看到 这边我们指向了一个网址对吧
这个网址就是我们设置的网址 大家可以看一下 这个呢 就是我们一开始我们project URL对吧 没有错对吧 在这里啊 然后后边的话呢 storage v e object public 然后呢这边是 是我们在这儿写的storage v e object public 然后是bucket name对吧 bucket name是我们N8N image rag 这是我们的bucket name对不对
然后呢等于说这一段等于full base URL 所以是在这里的对吧 所以呢整个这里 这一段 都是我们在这里设置的full base URL 所以它放在这里了 这里的话呢 在之后的话再加上这个file name啊所以呢 这个是我们要的file name所以呢 整个这个东西的话呢就是这个一部分 那这个的话呢就是我们的这个page
它现在啊所关联的在super base里面的 这个照片的这样一个关联的 这个网址就在这里了OK 然后之后的话呢再是文字解释 那你可以看到之后的话 这边是文字解释 OK 所以呢这一部分的话呢 就是呃 大家如果很多这个不懂code的小白 可能这里看的比较混乱啊 但是没有关系啊 基本上这个code我已经给你写好了啊
我也是用这个Claude帮我去写的 我跟他提要求他帮我写的 然后我改了几次而已 然后最后就达到我想要的结果了 但是你下载我的模板的话 这个code是直接有的 所以你不用担心自己写这个代码啊 所以呢大家可以看到这边的话呢 就是ID然后呢这个是我们的file name啊 指向的file name 再加上解释对吧 这个是我们要想要的OK 所以这一步的话呢 导出是这样的话呢 就没有问题了啊然后呢 之后的话呢
我们会把这全部的47个item 全部放到super base里面 你可以看到service的话呢 这边我基本上就是啊 放到哪一个 这个我们的table里面 然后呢呃two hundred size 这个我们什么都没弄 都是原厂设置啊 然后你在这边就能看到 它一共chunk得到 从47个变到242个item 然后这个呢就是每一个chunk你可 以看到它在这里面啊 基本上就是把每一个都分开
分成这样子 OK 这样的话呢 它就是一个完美的去呃 已经把这些我们的所有的文件 去镶嵌到我们的 这个向量化数据库里面了 然后这里的a data loader 我这边写的是a data 是用的这个Markdown啊 因为这个是我们要的数据对吧 所以呢我这边的话是用的JSON 直接把这个Markdown直接抓过来啊 就可以了 所以你可以看到它chunk完以后呢 这个是这个样子的 这个样的形式 然后呢这边的话呢
模型 我用的是open AI的这个embedding three small啊 这个模型 这个也是一般来讲我们做这个啊 common最常用的这样一个模型了 这样 整个一个复杂的流程下来了以后呢 我们就可以把完美的 把一个带很多图片的 这样一个复杂的PDF啊 有规律的 然后非常有架构的啊 这样一个 呃文件格式呢
全部放到我们的super base里面了 OK这就是我们的RAG系统 OK 然后 如果我们到我们的super base里面的话呢 你就能看到这里边啊 有很多我们的这样一个数据在里面了 你在这里边的话 可以看到我们刚才上传的数据对吧 这些都是在里面的 非常详细啊 的一些数据都是在里面的 然后当然你也要检查你的storage里面 这个里面当然有没有这些图片在里面 对吧 你要确认这些图片都是在里面的
OK 这样的话呢 最后你达到这一步 恭喜你你就等于说 这个Rex system就已经全部成功了 OK 然后呢上传了以后呢 我们要我们要怎么办呢 上传好了以后 我重新建立一个 非常简单的一个一个RAG啊 等于说就是一个非常简单 当然你之前是用我用过我的这个RAG2.0 或者3.0的这样一个模型的话呢 其实也是可以的 但是你要呃 确认你们是在同一个table里面
也就是说 如果你想用这个部分去调的话呢 也是可以的 没有问题 但是你要确认啊 就是这个里面是同一个table啊 那我们现在回来OK 然后呢这边你可以看到 我选择的是同一个table document 没错 因为我刚才上传的这个PDF的文件 也是在这个documents这个table里面 OK 然后呢这个时候的话呢 基本上很简单 就是一个呃chat 然后加一个rag
然后加一个Victor DATABASE 然后加了一个这个大模型 加了一个非常简单的memory就可以了 这边的话呢 我prompt也是写的蛮简单的 因为我觉得这个东西 不需要很难的prompt啊 但是如果你用之前的这个RAG2.0 和3.0的这个呃 prompt的话 你可能在里面要小改一下 里面的prompt啊 比如说这个provide image if there's any啊 等等这些东西啊 就是说你要让他带图片啊
如果有图片让他带图片对吧 当然这个时候啊 我们用rag的时候呢 这我要说一点啊 就是说我们这个temperature一定要调到0.4 因为我们不想让他去让他大模型 有这种幻觉 或者是自己发挥的这样一个东西 我们是要非常精准的 去抓取我们的数据的OK 所以呢我基本上一般都是调到0.4 这个时候呢你可以把它这个active打开 然后呢
在这里直接把这里的网址复制一下OK 然后呢再把网址复制到这里 基本上啊 你就可以看到 是一个非常完整的这样一个图了OK 那现在的话呢 我再试一个一个问题啊 OK我在这边又问他了啊 how to install dream hosts啊 然后呢他这边的话呢 就会把step全部写出来OK 然后呢这边的话呢 有相应的
这个图也是帮我们展现出来了OK 所以呢这个就是完全没有问题了 那这个就是一个非常完美的 我们如何把我们的 这个带图的文件啊 然后呢 去通过我们的 放到我们的Google Drive里面 让它自动的去加到我们的Superbase里面 然后呢我们再之后去抓取的时候呢 也能非常完美的能抓取到啊 跟这个文件内容相对应的 所有的图片啊 都可以的
那如果你想要得到 我这个免费模板的话呢 我在这边有一个AI agent 大师学院的这样一个群啊 我这个网址在这里了 然后呢我把这个网址呢 也放在我视频的下方的描述栏 跟简介栏里面 那样大家可以去看一下 你进到这个群里面的话呢 然后在这边有个YouTube资源区啊 然后你点进来了以后呢 你只要找到今天的这期视频 然后呢点开 然后这边的话呢
就会有这个Json的模板给你下载了啊 你只要下载这个就可以了 下载了以后呢 你只要回到N8N里面 然后呢点这三个点 然后呢点这个import file啊 就可以了 OK然后呢 也希望大家可以在我这个 我们这个群里面的话呢 大家可以加入到我们这个群里面 这个群里面现在已经3,500人了 然后每天的话呢 我们都会有非常多的 这样一个关于AI自动化工作流啊 关于AI创业啊
关于AI赚钱啊 非常多的相关的话题 大家有兴趣的话呢 可以也一起参与起来 一起互相帮助 一起学习啊 然后一起分享 那如果你想系统性的去学习 如何用AI赚钱 如何用AI创业的话呢 我这边有一个这个啊 VIP群啊这个VIP群的话呢 我把这个链接呢 也放在下面的描述栏里面了 那这个群里面的话呢 有一个非常系统化的 这样一个学习的课程 这里面的话呢 有超过40个小时的
这样一个学习的课程啊 非常多然后呢 每周的话呢 我们还有两次直播的时间啊 我们每次直播的话呢 我会一对一的教你啊 帮你解答所有的问题 OK 然后这个课程的话呢 是90天之内啊 保证你找到第一个客户 如果你跟我的课程 一步一步去学习的话OK 那如果你90天之内找不到客户的话呢 没关系啊 我可以给你退款 这都没有关系的 OK 那如果你有兴趣的话呢 啊
在下面一定要了解一下我这个VIP群 啊那希望今天所有的内容呢 对你有点帮助啊 如果你是在一直困扰 如何抓取这种这么复杂 带图片的这种文件 或者是你在一直在寻找如何去啊 在rag里面抓取 带图片回复的这种功能的话呢 那今天的话呢 这个视频啊 是为你量身定做的 我觉得 其实应该是有会有很多人
会有这方面的这个需求的 所以呢 我希望今天的所有的内容 也会对你有一点点帮助 如果你喜欢今天节目的话呢 一定要在下面点个赞 把视频的赞点烂好吗 然后呢还没有关注我的朋友呢 一定要关注我我的频道 打开那个小铃铛 所以 再不会错过任何发片和直播的时间 今天节目就到这里了 我们下次再见啦拜拜
Loading video analysis...