Chroma 向量数据库入门:从 Embedding 到最小 RAG 问答

导读:这篇要带你做什么? 如果你听说过 RAG(检索增强生成) 但不知道数据到底存在哪——答案就是向量数据库。它不存普通的文本或表格,而是把文字转成一串数字坐标点(叫作 Embedding / 嵌入向量),然后通过"距离近就相似"的规则找到最相关的文档片段。 本文将围绕 Chroma 这款开源向量数据库展开——它只需几行 Python 就能跑起来,不需要 Docker、不需要外部服务。我们从"向量到底是什么"的白话讲起,一步步完成安装 → Collection CRUD(增删改查)→ Embedding 自定义 → 相似检索,最终拼出一个最小 RAG 问答系统:用户提问 → 在向量库里找到相关文档 → 喂给大语言模型 → 得到答案。 💡 本文示例默认使用本地免费模型做 Embedding,零配置即可跑通全文代码。如果你后面需要 LLM 能力来回答用户问题(RAG 部分),可以接入任何 OpenAI 兼容的云端 API——脚本里会提供配置引导。 一、向量是什么?白话版 想象你有一堆书。你想找"如何做番茄炒蛋"的食谱。 传统搜索方式是关键词匹配——你的查询里有"番茄"和"炒蛋"吗?有就返回。但如果一篇教程写的是"西红柿鸡蛋做法",因为字不一样就没命中。 向量搜索的思路完全不同: 把每段文字通过一个模型(Embedding 模型)变成一组数字。比如:“如何做番茄炒蛋” → [0.12, -0.35, 0.87, ..., 0.04](通常 384 维或更高)。 这组数字就是这段文字的"坐标点"(也叫向量)。语义相近的文字,生成的坐标点在空间里也会挨得很近。 当用户问"西红柿怎么做菜"时,同样把它变成向量,然后计算它和库里所有向量的距离——离得最近的那几条就是你想要的结果。 "番茄炒蛋" "西红柿鸡蛋做法" ●──────────────● ← 这两个语义接近,距离近 ● ● ← "机器学习入门"距离很远 这就是向量数据库要做的事:存向量、查最近邻。 ⚠️ 术语速记 Embedding / 嵌入向量:把文字变成坐标点的过程及其结果。 Collection(集合):Chroma 中数据的容器,类似数据库中的"表"。 Query(检索):传入一段文字,返回语义最相似的 N 条记录。 二、安装 Chroma Chroma 是一个 Python 库,直接 pip 即可安装(Python 3.9+): ...

2026-08-26 · 12 min · AIGestalt

LangChain RAG 实战:三小时给自己的 AI 装上"知识库"(零基础 Python 教程)

📌 新手提示:本文结尾提供了一键部署脚本(Windows / macOS / Linux 通用),会自动装好全部依赖、配置 API Key、生成一个可直接运行的知识库问答 Demo,动手党直接拉到文末。 前言 一个扎心的事实:大模型(ChatGPT、Claude、DeepSeek 这类 AI 的大脑)并不知道你的私有资料。你的公司规章、产品手册、个人笔记,模型一概没学过——你问它,它只能靠"编"来回答,这就是著名的"一本正经地胡说八道"(AI 圈叫"幻觉")。 RAG(Retrieval-Augmented Generation,检索增强生成) 就是解决这个问题的标准方案。一句话解释: 给 AI 塞一个你专属的资料库,每次提问先从这个库里"检索"相关片段,再让 AI 基于检索到的内容回答。 效果是:AI 只依据你的资料作答,不乱编、不认错人,还永远跟得上资料的最新版本(资料更新,答案自动变)——因为它每次都是"现查现答"。 官方对 RAG 的定义是:在推理(回答)时把外部文档作为上下文喂给模型,避免幻觉与过时信息。 本教程基于 LangChain 官方 RAG 教程编写(https://docs.langchain.com/oss/python/langchain/rag),面向零基础读者,一步步跑通一个"公司制度问答机器人"。 一、RAG 的五步流水线(先看懂再动手) 把整个过程想象成"图书馆查资料": 入库(加载文档):把你的资料搬进系统——Document 对象,每个文档带"来源"标签(哪个文件/网页) 切分(拆成块):长文档切成 1000 字一块的小段——图书馆把书拆成一页页,检索才知道翻哪页 向量化(编号上架):每一段文字变成一串数字(叫"向量"),语义相近的文字,数字也相近——检索"迟到怎么处理"能找到"考勤制度"那段 检索:用户提问→把问题也变成向量→找出库里最相近的前几段 回答:把"问题 + 检索到的片段"一起发给大模型,让模型只依据这些片段回答 五步里,1-4 是"资料库",5 用到了大模型能力。我们一步步来。 二、准备工作(三样东西) Python 3(终端执行 python3 --version 确认;Windows 建议用 WSL) 一把 OpenAI 兼容的 API Key——本文代码按 OpenAI 格式写(这也是整个 AI 生态里最通用的格式:DeepSeek、Ollama、各种中转站都兼容)。还没 Key 的同学先注册一个(国内推荐 DeepSeek 官方平台 https://platform.deepseek.com,注册即送少量体验额度;或者运行文末一键脚本,脚本会带你把 Key 配好) 一个文本资料(随便拿一个 .txt 文件:公司制度、产品说明、学习笔记都行) 三、安装依赖 mkdir rag-demo && cd rag-demo python3 -m venv .venv && source .venv/bin/activate pip install "langchain[openai]" langchain-text-splitters requests numpy python3 -m venv .venv:建虚拟环境(独立目录装依赖,不污染系统) langchain[openai]:LangChain 主包 + OpenAI 兼容适配([openai] 是"附加组件"标记,一次装齐) langchain-text-splitters:切分文档的官方组件 requests:发 HTTP 请求(抓网页用);numpy:向量计算底层依赖 pip 慢或失败:加 -i https://pypi.tuna.tsinghua.edu.cn/simple。 ...

2026-08-25 · 10 min · AIGestalt