一、如何选择【句向量】模型
上一节已经强调过,用于计算知识库向量的模型,与后续提取问题向量的模型,必须是同一款、同一个版本。需要特别注意的是,这类模型并非像 DeepSeek v3 那样的【词向量】模型,而是真正意义上的【句向量】模型。
因此,建议直接在本地部署一个轻量级的句向量模型,完全能够满足日常需求。如果在生产环境中使用,可以优先考虑以下几款热门模型:
- Alibaba-NLP/gte-Qwen2-1.5B-instruct
- intfloat/multilingual-e5-large-instruct
- BAAI/bge-m3
其中 bge-m3 具备一项独家能力——【混合检索】。它能够同时输出常规向量以及类似关键词权重的稀疏向量,非常适合在生产环境中优先尝试。
如果只是本地测试、验证流程,追求极致的轻量化,那么下面这几款模型就足够了:
- BAAI/bge-small-zh-v1.5,约90M,维度512,最大长度512
- moka-ai/m3e-small,约90M,维度768,最大长度512
- jinaai/jina-embeddings-v2-small-zh,约120M,维度512,最大长度8192
除非你对长文本或长切片的处理有较高要求,否则在本地快速上手时,建议优先选择 BAAI/bge-small。本文也以该模型为例进行讲解,后续若有生产环境或长文本需求,完全可以参考本文思路自行扩展。
二、下载【句向量】模型并完成验证
2.1 下载模型
首先,前往 ollama.com 官网下载 ollama 客户端。你可以将 ollama 理解为模型界的 pip 或 npm,专门用于管理和下载模型。下载后可能会自动安装一个GUI桌面应用,暂时忽略它即可。

打开命令行工具(cmd 或 bash),执行:
ollama --version
如果显示 ollama version is 0.15.5 或其他版本号,说明安装成功。
接着执行:
ollama pull quentinz/bge-small-zh-v1.5
注意:上面的模型名称是由
quentinz打包后提供的。

下载完成后,下一步就是测试这个模型是否正常工作。
2.2 测试模型
核心思路是通过 ollama 快速启动一个HTTP服务,将其当作私有的AI API来使用。这里提供两种方式:
- 确保之前被忽略的
ollama GUI正常打开,即使收进系统托盘也没问题。 - 新开一个命令行窗口,执行
ollama serve。
两种方式任选其一,之后就可以通过HTTP接口调用所有通过 ollama 下载的模型。
接下来进行测试。如果使用 cmd 或 PowerShell,执行:
curl https://localhost:11434/api/embeddings -d "{ \"model\": \"quentinz/bge-small-zh-v1.5\", \"prompt\": \"测试文本\" }"
如果使用 bash,则执行:
curl https://localhost:11434/api/embeddings -d '{"model": "quentinz/bge-small-zh-v1.5","prompt": "测试一下"}'

如果看到返回一个包含巨大数组的JSON,说明调用成功了。将这个数组复制出来数一数,会发现它的长度是512,这正是“测试一下”四个字对应的向量。
还记得上一节讲的知识点吗?数组中的每一个浮点数,正是 quentinz/bge-small-zh-v1.5 模型对“测试一下”这四个字在各维度上的特征评估值。
三、下载向量数据库和文本切片器
在 demo 工程中执行 pip 安装依赖:
pip install chromadb ollama langchain-text-splitters
- chromadb:向量数据库本体,用于存储和检索向量。
- ollama:方便在 Python 中调用刚才下载的 bge-small 模型。
- langchain-text-splitters:langchain 是目前应用最广泛的 Agent 开发库,但我们只用到它其中一个很小的功能——文本拆分器,所以暂时只安装这个包即可。
工程中已经生成了 requirements.txt,直接执行 pip install -r requirements.txt 就能安装所有必要的依赖。
下一步预告
下一节课将开始撰写 RAG 系统的核心代码,首当其冲的就是文档切片环节。敬请期待!

