前言从前面工作[[从0开始构建简单RAG]]已经得到了一个基本的rag结构,但是对图片并没有进行处理,主要需要解决的问题在于
我的知识库文档是带有图片的,我希望RAG能理解图片并在我需要的时候回答有些希望做知识库的文档是PDF格式,并非markdown格式有些文档中的图片是没有意义的配图,知识库里面不需要这些我希望回答能直接给出相关的图片而不是路径或者别的什么
解决思路引入VLM模型传统对于图片的解决方案是使用ocr,但是我希望能对于图片有更好的理解方便召回,同时能抛去无意义图片,并对于复杂的图片(代码,图表等)有更好的效果,于是可以选择VLM
使用方式在导入文档的时候,如果是markdown格式的文档,图片会给出位置,我们获取图片位置的base64调用VLM模型让其描述图片,将描述的内容直接作为一个chunk进行嵌入,更进一步的,我们可以将其base64或者其文件位置(统一用绝对路径防止出错)作为元数据在嵌入时一并存入数据库进行保存
排除无关图片在引入VLM模型后,更进一步可以将上下文一并传递给VLM,让其判断该图片是否是一个有意义的图片,还是一个无意义的配图等
参考promp ...
前言使用了很多开源的RAG方案,包括Dify,coze,cherry-studio等等,但是真正要了解RAG或者随着需求的升级,不可避免要自己开始搓RAG现在RAG方向的发展很快,graphrag、lightrag等新方法我们暂且按下不表,先学习使用langchain完成一个标准流程的rag结构
了解RAG流程做之前先了解RAG的基本流程,由于已经确定了使用langchain去开发,可以通过AI整理信息归纳出整体流程
整体流程
数据准备阶段
文档加载 📌 工具:LangChain Document Loaders 📄 支持格式:PDF/TXT/HTML/Markdown/数据库等
文本分块 🔧 方法:递归分块/固定窗口重叠分块 🛠️ 工具:RecursiveCharacterTextSplitter
向量化处理 🤖 模型:BGE、sentence-transformers
存储阶段 🗄️ 数据库选择:
轻量级首选:ChromaDB(内存/持久化模式)
生产级方案:
Elasticsearch(支持 ...
一次OBD dongle漏洞挖掘来源阅读了一篇讲无线OBD dongle安全问题的文章,文章中分享了攻击思路和研究成果并给出了工具,我购买市面上某一销量不错的产品试图按照文章给出思路进行攻击但是失败,最后用自己的方法进行挖掘,发现了部分问题。
文章内容对无线检测仪安全检测攻击面广播阶段:无线检测仪通过wifi或者蓝牙连接使用者,在连接前需要将自己信息广播 此时攻击者发现并尝试连接
连接阶段:与无线检测仪建立连接 根据无线检测仪的不同可能需要密码PIN码等验证 不需要验证既可以任意连接
传输阶段:建立连接后通过与无线检测仪通信再与OBD接口交互 根据无线检测仪的通信协议 可能需要绕过身份验证步骤 之后可以将CAN总线消息发送到目标设备
漏洞种类V1 没有连接层或应用层认证没有连接层身份验证,可以任意连接无线检测仪
没有应用层认证,建立连接后可以尝试直接注入CAN总线消息进行通信
不同的无线检测仪可能有不同的身份验证方法,如使用WPA2-PSK验证连接,或者通过按钮使检测仪进入可发现模式
V2 连接使用者设备后仍可被连接对于多数设备,一次只能连接一个设备,但是对于部分使用wifi的检测仪, ...