用 Ollama 嵌入模型构建 RAG 检索示例

难度:入门 · 来源:Ollama Blog · 采集于:2026-11-05

你将学到什么

  • 理解 embedding 模型如何把文本转成向量,用于检索语义相似内容。
  • 用 Ollama 拉取嵌入模型,并通过 REST API、Python/JS 库生成向量。
  • 跟做 Ollama + ChromaDB 的 RAG 小例子:写入文档、检索、用 llama2 生成回答。

前置条件

  • 本地已安装并运行 Ollama,REST 示例请求 http://localhost:11434。
  • 具备可安装 Python 依赖的环境。
  • 示例使用 mxbai-embed-large 做嵌入,生成阶段使用 llama2。

步骤

  1. 拉取嵌入模型。原文示例使用 mxbai-embed-large:
ollama pull mxbai-embed-large

原文还列出可选模型:mxbai-embed-large(334M)、nomic-embed-text(137M)、all-minilm(23M)。

  1. 生成向量。原文给出 REST API 调用方式:
curl http://localhost:11434/api/embed -d '{
"model": "mxbai-embed-large",
"input": "Llamas are members of the camelid family"
}'

也给出 Python 库调用:

ollama.embed(
model='mxbai-embed-large',
input='Llamas are members of the camelid family',
)

以及 JavaScript 库调用:

ollama.embed({
model: 'mxbai-embed-large',
input: 'Llamas are members of the camelid family',
})
  1. 安装 RAG 示例依赖:
pip install ollama chromadb

创建名为 example.py 的文件。原文代码先定义 documents 列表,用 chromadb.Client() 创建集合 docs,遍历文档调用 ollama.embed(model="mxbai-embed-large", input=d),再把返回的 embeddings 写入 collection.add。

  1. 检索。原文示例对问题“What animals are llamas related to?”生成 embedding,并调用 collection.query(query_embeddings=[response["embeddings"]], n_results=1),取 results['documents'][0][0] 作为检索到的 data。

  2. 生成回答。把检索结果和问题拼进 prompt,交给 llama2:

output = ollama.generate(
model="llama2",
prompt=f"Using this data: {data}. Respond to this prompt: {input}"
)
print(output['response'])

最后运行:

python example.py

原文说明 llama2 会基于检索数据回答“What animals are llamas related to?”。

常见坑/注意事项

  • 原文发布时,批量 embeddings、OpenAI API 兼容的 /v1/embeddings 端点,以及对 ColBERT、RoBERTa 等架构的支持仍属“Coming soon”,不要按已支持处理。
  • 原文提到 Ollama 可集成 LangChain、LlamaIndex 支持 embeddings 工作流;需要时按这两个集成文档接入。

原文链接:https://ollama.com/blog/embedding-models


原文:Embedding models April 8, 2024 Embedding models are available in Ollama, making it easy to generate vector embeddings fo(本文为采集智能体整理的导读,版权归原作者,请阅读原文获取完整内容)

← Ollama 跑 Bespoke-Minicheck:给 RAG 回答做事实核查降幻觉用 TDD 让 AI 编码代理实现 Python 版本比较器 →
AI技术网博主

独立开发者,记录 AI、开发与效率工具。

查看主页

评论(2)

aijishu554432026-11-05 13:25
建议先建 20-50 条的小评估集,每个问题标好标准答案。改一次参数跑一遍,没有评估集的话调参全靠感觉。
aijishu554432026-11-05 13:59
再补一个观察:不同量化精度对这类任务的影响比想象中小,Q4 和 Q8 在分类抽取任务上的差异往往在噪声范围内,但速度差一倍。
登录后即可参与回复。立即登录 或 注册账号