AI知识库开发,向量数据库怎么选?

B站影视 电影资讯 2025-09-17 05:36 2

摘要:向量数据库就是存储一些浮点数组的数据库,简单理解为能保存数据和根据一个相似数据进行查询即可,传统数据库开发者可以轻松上手,sql数据库和文档数据库用户都可以无缝衔接。比如MySQL 9支持了vector字段类型,postgresql通过pgvector插件实现

AI大模型开发中,有一个重要技术那就是向量检索,如果需要搭建AI知识库系统,向量数据库是不可不知的技术。

向量数据库就是存储一些浮点数组的数据库,简单理解为能保存数据和根据一个相似数据进行查询即可,传统数据库开发者可以轻松上手,sql数据库和文档数据库用户都可以无缝衔接。比如MySQL 9支持了vector字段类型,postgresql通过pgvector插件实现向量数据库功能,而原生AI向量数据库则更类似于MongoDB类似的文档数据库,比如Milvus、Qdrant等。

注意了,MySQL 9虽然支持了vector类型字段,但是目前官方不支持相似度搜索,尽管可以通过增加一些余弦函数自定义计算算法函数实现检索功能,但是这种做法不推荐,未来版本99.99%会实现,或者和pgsql一样第三方插件实现,但目前真不行。

目前有很多开源免费的向量数据,甚至可以在原sql数据库基础上使用向量功能,不过各有优缺点,新手很难挑选自己需要的数据库,本人经过大量踩坑,学习对比,从一个新人角度为你解惑,该怎么选向量数据库。

如果你是Postgresql用户,首选pgvector插件(https://github.com/pgvector/pgvector),开源免费的,可以在官方仓库找到具体的安装方法,同时也支持直接使用官方docker镜像使用(https://hub.docker.com/r/pgvector/pgvector)。不过需要注意的是,很多第三方orm工具就不支持向量查询方法了,得手动实现你的sql语法。

如果你是sqlite用户,或需要在本地应用内嵌向量数据库,可以使用LibSQL(https://turso.tech/libsql),这是一个Rust重构的sqlite增强版本,原生支持向量数据类型和向量检索。成功案例有CherryStudio这个AI工具,就是使用LibSQL搭建,CherryStudio自己也是开源的,你完全可以通过查看源代码查看CherryStudio的本地知识库是怎么实现的,或者直接把源代码fork下来自行修改成自己需要的知识库软件。https://github.com/kangfenmao/cherry-studio/ LibSQL提供主流编程语言的SDK(Javascript/Typescript、Rust、Go、Python、PHP、Ruby、Android、Swift、C、Flutter/Dart),支持本地部署也支持http远程,即使不使用向量数据,也完全可以作为sqlite的替代品。

如果不明确自己需要什么向量数据库,我推荐Qdrant,是类似MongoDB的文档向量数据库,优点有几个,安装部署简单,可以docker快速部署,也可以使用官方提供的免费云版本进行入门学习,支持主流编程语言的SDK(python、Rust、Go、Java、.NET、Javascript/Typescript)。

有可视化的Web UI控制台可以方便管理服务器数据。

如果你需要专业的,功能最强的向量数据库,且你是Python用户,可以看看Milvus,这个是中国公司开发的,官方中文文档完善,有单机版、集群版和云版本。目前支持Python、Go、Java、Nodejs几个语言的SDK,其它语言需要自己请求http接口实现。

不过经过我的使用,想本地部署Milvus Lite版本在我的Windows11系统居然安装失败,原来是我看文档没看仔细,Milvus Lite本地版本不支持Windows系统,只支持Ubuntu和MacOS,这样挑环境的软件包很容易被我排除选项内,除非没有替代品。

为了研究这个数据库还得单独开辟一个虚拟机环境,且只支持Python通过pip安装,嵌入到自己的Python程序,如果不是Python语言使用者,增加了使用门槛,所以我不太推荐这个数据库,我觉得Qdrant更方便不同语言的开发者使用。

来源:安浪

相关推荐