
























上一篇文章通过all-MiniLM-L6-v2模型结合FAISS实现了简单的RAG检索功能,但FAISS运行于内存中,无法持久化保存向量数据,重启后又得重新对文本做向量化,比较浪费算力资源。本文就来介绍如何使用向量数据库来持久保存向量数据。
Chroma是一个本地向量数据库,专门用来保存 RAG 知识库,并且快速检索相关内容。Chroma与FAISS之间的区别如下:
1、只做检索,不做保存;Chroma既支持检索,也支持保存。
2、FAISS运行于内存,速度快;Chroma需要从磁盘加载数据,启动稍慢。
3、FAISS适合临时检索,多用于简单RAG;Chroma支持长期使用,尤其是资料较多的RAG。
总而言之,Chroma属于本地 + 简单 + 自带持久化的 RAG 专用数据库,可以理解为给大模型用的本地知识小仓库。
Python代码里的Chroma主要完成三件事:创建数据库与数据表、保存知识向量、在用户提问时检索知识,如下代码所示:
可见Chroma的使用步骤与FAISS一一对应,如下所示:
1、FAISS的第一步是建立内存索引,而Chroma的第一步是创建数据库与数据表。
2、FAISS的第二步是把知识向量放入内存索引,而Chroma的第二步是把知识向量保存到数据表。
3、FAISS的第三步是从内存索引查找相关知识,而Chroma的第三步是从数据表查找相关知识。
接下来演示如何使用all-MiniLM-L6-v2与Chroma实现RAG检索功能。在编写Python代码前,要先在命令行执行下面的pip安装命令:
然后编写下面的Python检索测试代码:
运行上面的Python代码,根据提示输入问题“AI是什么?”,输出日志结果如下:
可见即使问题文本与知识库不是完全的字符串匹配(“AI是什么?”对“什么是AI”),all-MiniLM-L6-v2模型结合Chroma也能正确识别出问题意图,并给出准确的回答。
本系列的AI应用开发文章目录为《15天学会AI应用开发全目录(零基础小白,零Token消耗)》。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。