
Chroma是一个本地向量数据库专门用来保存 RAG 知识库并且快速检索相关内容。Chroma与FAISS之间的区别如下1、只做检索不做保存Chroma既支持检索也支持保存。2、FAISS运行于内存速度快Chroma需要从磁盘加载数据启动稍慢。3、FAISS适合临时检索多用于简单RAGChroma支持长期使用尤其是资料较多的RAG。总而言之Chroma属于本地 简单 自带持久化的 RAG 专用数据库可以理解为给大模型用的本地知识小仓库。二、如何使用ChromaPython代码里的Chroma主要完成三件事创建数据库与数据表、保存知识向量、在用户提问时检索知识如下代码所示import chromadb # 创建数据库指定本地的数据库路径 client chromadb.PersistentClient(path./chroma_db) # 创建数据表 collection client.get_or_create_collection(knowledge_base) # 把 文本向量 一起存进去 collection.add(documentsknowledge, embeddingsvectors, idsids) # 提问 → 自动检索最相似的 results collection.query(query_embeddingsq_vec, n_results1)可见Chroma的使用步骤与FAISS一一对应如下所示1、FAISS的第一步是建立内存索引而Chroma的第一步是创建数据库与数据表。2、FAISS的第二步是把知识向量放入内存索引而Chroma的第二步是把知识向量保存到数据表。3、FAISS的第三步是从内存索引查找相关知识而Chroma的第三步是从数据表查找相关知识。三、结合all-MiniLM-L6-v2与Chroma实现RAG接下来演示如何使用all-MiniLM-L6-v2与Chroma实现RAG检索功能。在编写Python代码前要先在命令行执行下面的pip安装命令pip install chromadb sentence-transformers然后编写下面的Python检索测试代码from sentence_transformers import SentenceTransformer import chromadb # 知识库不变 knowledge [ 什么是AI人工智能AI是一门使机器模拟人类智能的技术。, 什么是RAGRAG代表检索增强生成通过检索外部知识提升大模型回答准确性。, 本地RAG消耗Token吗本地RAG不调用云端API不消耗Token完全免费。, FAISS是什么FAISS是Facebook开源的向量检索库用于本地高效检索。, RAG的作用RAG让大模型能引用外部知识避免胡说八道。 ] # 加载本地embedding模型不变 embed_model SentenceTransformer(./all-MiniLM-L6-v2, devicecpu) # 生成向量把知识库向量化 vectors embed_model.encode(knowledge) # Chroma 初始化 # 添加到 Chroma要持久化用 client chromadb.PersistentClient(path./chroma_db) # 创建/获取集合 collection client.get_or_create_collection(nameknowledge_base) ids [fdoc_{i} for i in range(len(knowledge))] collection.add( documentsknowledge, embeddingsvectors.tolist(), # 传入向量也可让Chroma自己embedding idsids ) # RAG 检索逻辑不变 def rag(question): print(\n 问题 question) # 把问题向量化 q_vec embed_model.encode([question]) # 从 Chroma 检索对应的知识 results collection.query( query_embeddingsq_vec.tolist(), n_results1 ) best results[documents][0][0] answer best.split()[-1] print( 答案 answer) print(- * 50) # 运行 if __name__ __main__: print( 本地智能 RAG 系统Chroma版) while True: q input(\n请输入问题q退出) if q.lower() q: break rag(q)运行上面的Python代码根据提示输入问题“AI是什么”输出日志结果如下 本地智能 RAG 系统Chroma版 请输入问题q退出AI是什么 问题AI是什么 答案人工智能AI是一门使机器模拟人类智能的技术。 --------------------------------------------------