惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Security Blog
Microsoft Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
G
Google Developers Blog
阮一峰的网络日志
阮一峰的网络日志
The Cloudflare Blog
J
Java Code Geeks
Martin Fowler
Martin Fowler
M
MIT News - Artificial intelligence
IT之家
IT之家
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
Google DeepMind News
Google DeepMind News
小众软件
小众软件
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
腾讯CDC
B
Blog

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解
15天学会AI应用开发(九)利用Chroma持久化向量数据
aqi00 · 2026-06-27 · via 博客园_首页

上一篇文章通过all-MiniLM-L6-v2模型结合FAISS实现了简单的RAG检索功能,但FAISS运行于内存中,无法持久化保存向量数据,重启后又得重新对文本做向量化,比较浪费算力资源。本文就来介绍如何使用向量数据库来持久保存向量数据。

一、向量数据库Chroma

Chroma是一个本地向量数据库,专门用来保存 RAG 知识库,并且快速检索相关内容。Chroma与FAISS之间的区别如下:

1、只做检索,不做保存;Chroma既支持检索,也支持保存。
2、FAISS运行于内存,速度快;Chroma需要从磁盘加载数据,启动稍慢。
3、FAISS适合临时检索,多用于简单RAG;Chroma支持长期使用,尤其是资料较多的RAG。

总而言之,Chroma属于本地 + 简单 + 自带持久化的 RAG 专用数据库,可以理解为给大模型用的本地知识小仓库。

二、如何使用Chroma

Python代码里的Chroma主要完成三件事:创建数据库与数据表、保存知识向量、在用户提问时检索知识,如下代码所示:

可见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安装命令:

然后编写下面的Python检索测试代码:

运行上面的Python代码,根据提示输入问题“AI是什么?”,输出日志结果如下:

可见即使问题文本与知识库不是完全的字符串匹配(“AI是什么?”对“什么是AI”),all-MiniLM-L6-v2模型结合Chroma也能正确识别出问题意图,并给出准确的回答。

本系列的AI应用开发文章目录为《15天学会AI应用开发全目录(零基础小白,零Token消耗)》。