每次我想要做一些简单的基于检索增强生成(RAG)的智能操作时,都得设置Docker实例和服务器,很快我就意识到像Chrome浏览器中名为IndexedDB的内置数据库存在被浪费的潜力。将它与基于WebAssembly的Transformers.JS相结合,我们就能在浏览器中快速直接地运行自己的嵌入模型,将所有向量嵌入本地存储以进行余弦相似度搜索。我把这些都打包成了一个名为EntityDB的东西,希望你们会喜欢。如果有谁对这个项目感兴趣,可以查看EntityDB的GitHub仓库。祝黑客之年快乐。https://github.com/babycommando/entity - db
讨论总结
原帖作者分享了在浏览器中直接构建向量数据库(EntityDB)而无需设置服务器进行RAG操作的成果,评论者们大多表示认可、惊叹和感谢,部分评论者提出相关技术问题如二进制向量处理、数据安全等进行探讨,也有少数对这种新方式表示疑惑。整体氛围积极,讨论热度较低。
主要观点
- 👍 喜欢本地数据存储,使用带有本地文件路径的Qdrant可生成.db文件*
- 支持理由:未提及
- 反对声音:无
- 🔥 对原帖构建的浏览器向量数据库表示赞赏,提出二进制向量处理的疑问,关注其速度/性能权衡
- 正方观点:原帖构建的数据库成果令人惊叹
- 反方观点:无
- 💡 对在浏览器存储向量的想法表示认可,但担心浏览器数据库的安全性,特别是XSS问题
- 支持理由:用户能完全控制自己的数据,但要确保安全
- 反对声音:无
- 🤔 对新的浏览器向量数据库构建方式的优势表示疑惑,质疑其与使用Python库本地操作的比较优势
- 支持理由:未提及
- 反对声音:无
- 😎 认可原帖作者成果,呼吁他人在Github上给项目加星
- 支持理由:对项目认可
- 反对声音:无
金句与有趣评论
- “😂 这是惊人的,谢谢你。”
- 亮点:简洁表达对原帖成果的惊叹与感谢
- “🤔 I don’t know how things work in JavaScript but my understanding is that for binary vectors, you don’t need cosine distance but you can use a much faster (especially with SIMD) binary one cf Hamming distance.”
- 亮点:提出在JavaScript中二进制向量距离计算的合适方法
- “👀 Ah so it is quite secure and you could encrypt for extra security, i reckon this pattern of storing vectors in database is actually better for some use cases, since the user has full control over their data, they do not have to trust another company’s server.”
- 亮点:在了解IndexedDB安全性后对浏览器存储向量模式的认可
- “😎 if you liked it don’t forget to star it on github XD”
- 亮点:幽默地呼吁大家在Github上给项目加星
- “🤔 so can someone explain to me how this is better than just doing something locally with a python library, etc?”
- 亮点:直接提出对新方式优势的疑惑
情感分析
总体情感倾向为正面,主要分歧点在于对新的浏览器向量数据库构建方式优势的理解,可能原因是部分人对传统本地操作(如Python库)比较熟悉,对新方式持保留或疑惑态度。
趋势与预测
- 新兴话题:EntityDB在长RP场景下的应用可能性。
- 潜在影响:如果这种浏览器构建向量数据库免设服务器的方式被广泛应用,可能会减少服务器设置成本,提高数据的本地可控性。
详细内容:
标题:《在浏览器中构建向量数据库的创新探索》
在 Reddit 上,一则题为“Bye RAG Servers: I made a vector db directly in the browser using webAssembly, indexedDB and Transformers.js so we dont have to set up servers for doing RAG anymore”的帖子引起了广泛关注。该帖子获得了众多点赞和大量评论。
原帖作者介绍了自己的创新成果,即在浏览器中利用 webAssembly、indexedDB 和 Transformers.js 构建了向量数据库 EntityDB,从而无需为进行 RAG 操作设置服务器。帖子还提供了项目的 GitHub 链接https://github.com/babycommando/entity-db 。
这一话题引发了多方面的讨论。有人喜欢本地数据存储,比如有人使用 Qdrant 与本地文件路径结合生成.db 文件;也有人认为原帖的想法更适合不想设置 qdrant 等实例,只想在浏览器内进行向量和余弦相似度搜索的普通用户。
关于技术细节,有用户讨论了 libsql 是否适合本地优先的加密 SQL 数据库以及能否复制到服务器;还有用户探讨了二进制向量的处理方式,如使用哈明距离替代余弦距离以提高性能,以及如何通过特定的操作和数据结构来优化处理。
对于浏览器数据库的安全性和存储空间问题,原帖作者表示 IndexedDB 按网站的源进行访问限制,能有效防止第三方恶意访问,其占用空间取决于浏览器的可用磁盘空间,且在浏览器会话间会持久存储,除非被用户或应用删除。
有人询问这种方式能否用于长期角色扮演场景中的管理工作,作者表示数据库设计适用于搜索大量向量,也能用于 AI 记忆相关的文档和聊天记录。
总之,这一话题引发了关于在浏览器中构建和应用向量数据库的深入探讨,展现了技术创新的多样可能性。
感谢您的耐心阅读!来选个表情,或者留个评论吧!