极客前沿

一步步换掉 OpenAI 嵌入模型,用 Ollama 跑通本地向量搜索

2026-07-15 01:47
DEV Ollama
查看原文

手把手教你更换嵌入模型、重算向量、重建索引,零基础也能跑通本地向量搜索。

准备环境:装好 Ollama 和数据库

在开始之前,你需要先安装两个工具:

  • Ollama:一个让你在本地电脑上运行 AI 模型的工具,免费、无需联网。去 ollama.com 下载安装。
  • Supabase(或其他支持向量的数据库):用来存向量数据。你可以用 Supabase 的免费套餐,或者用 PostgreSQL + pgvector 插件。

装好 Ollama 后,在终端运行 ollama pull nomic-embed-text 下载嵌入模型。嵌入模型的作用是把文字变成一串数字(向量),方便计算机做相似度比较。

Tutorial Image

安装步骤:改数据库、换模型、重算向量

  1. 改数据库列:原来用的是 OpenAI 的嵌入,维度是 1536。现在要改成 768 维。在 Supabase 里执行 SQL:ALTER TABLE your_table ADD COLUMN embedding_new vector(768); 注意,旧列不要马上删,留着做备份。
  2. 清空旧数据:把旧向量清掉,避免新老数据混在一起。可以新建一个表,或者把旧数据移到另一个表。
  3. 重算向量:写一个脚本,遍历所有笔记(比如 1605 条笔记,切分成 5383 个块),对每个块调用 Ollama 的 nomic-embed-text 模型,生成 768 维的向量,存入新列。
  4. 重建索引:为了让搜索更快,需要为新的向量列创建 HNSW 索引。在 Supabase 里执行:CREATE INDEX ON your_table USING hnsw (embedding_new vector_cosine_ops);
  5. 改查询代码:搜索时,查询也要用同样的模型生成 768 维向量,然后去新列里找相似结果。

常见坑提醒:一定要保证“入库用的模型”和“搜索时用的模型”是同一个,否则向量空间不一致,搜出来的结果不准。

验证是否成功:跑几个已知查询

改完后,用几个你知道答案的问题来测试。比如:

Tutorial Image
  • 查询“AgentGuard”,期望返回对应的笔记,相似度在 0.69 左右。
  • 查询“Raspberry Pi researcher”,期望返回部署说明,相似度 0.67。

如果每个查询都能把最相关的文档排第一,说明迁移成功。如果结果不对,检查维度是否一致,或者索引是否建好。

下一步可以做什么

你现在已经跑通了本地向量搜索,接下来可以:

  • 把搜索集成到你的聊天机器人里,让它能根据笔记回答问题。
  • 换其他嵌入模型(比如 BGEE5),但记住每次换模型都要重新算向量。
  • RAG(检索增强生成)技术,让 AI 回答更准确。

内容来源

DEV Ollama

发布时间

2026-07-15 01:47

返回 AI技术