你有沒有試過,只想幫自己一個小專案加個「語意搜尋」,結果查教學查到一半,發現第一步竟然是叫你先用 Docker 起一台 Qdrant,或者跑一隻 Chroma server。功能還沒寫,先要養一隻背景程式。
阿里巴巴這次悄悄丟上 GitHub 的 zvec,就是來把這一步拆掉的。它不是又一個要你架伺服器的向量資料庫,而是一個「塞進你 app 裡面就能跑」的東西。上架半年多,星數已經破萬、往 1.3 萬衝,還在漲。
一句話結論:zvec 是阿里開源的「行程內(in-process)」向量資料庫,pip install 就能直接嵌進你的 app,不用開伺服器、不用設定連線,本地就能做 RAG 和語意搜尋,10 億筆向量也是毫秒級。
zvec 到底是什麼?
zvec 是一個「跑在你程式裡面」的向量資料庫,不是一台要另外開的伺服器。你 import 它、開一個 collection(其實就是硬碟上一個資料夾)、把向量塞進去、然後查詢。沒有 daemon 要顧、沒有 port 要設、沒有連線池要管。
如果你熟資料庫,最貼切的類比是:zvec 之於向量資料庫,就像 SQLite 之於一般關聯式資料庫。SQLite 當年讓開發者可以把一個正經的資料庫直接嵌進任何 app,不用另外裝一台 MySQL;zvec 想做的是同一件事,只是換成專門存「向量」這種 AI 時代的資料。連官方自己都用「向量資料庫界的 SQLite」來定位。
它不是週末玩具。阿里說 zvec 在集團內部多條產線已經跑了一段時間,才拿出來開源,底層包的是 Proxima——阿里自研、在生產環境跑了好幾年的向量搜尋引擎。換句話說,你接手的不是一個沒被驗證過的實驗,而是一套已經被大流量捶打過的東西。授權是 Apache 2.0,原始碼在 github.com/alibaba/zvec,核心 8 成是 C++,外面再包 Python、Node.js、Go、Rust、Flutter 的 SDK。
為什麼「行程內」這件事值得你停下來看?
差別在摩擦力。市面上多數紅的向量資料庫,像 Qdrant、Weaviate、Milvus、server 模式的 Chroma,都要你先跑一隻獨立程式。有專職維運的團隊無所謂,但對這幾種情況就很煩:
- 本地開發:還沒寫第一行檢索的 code,就要先開 Docker 或起一隻 daemon。
- 邊緣裝置和手機:要把一台 server 塞進 Android 或 iOS,基本上不切實際。
- CLI 工具、Jupyter notebook:為了跑一個小 script 去架一整套基礎設施,太過頭。
- Serverless 函式:環境用完即丟,每次去連外部服務又貴又慢。
zvec 把這些摩擦全部省掉。它就是一個函式庫,你的程式一啟動它就在,程式結束它就乾淨收工。這點對散戶級的開發者特別友善:你不用先變成半個維運工程師,才寫得出一個能用的 AI 檢索功能。
一分鐘上手長怎樣?
講那麼多,看 code 最快。以 Python 為例,先 pip install zvec(需要 Python 3.10 到 3.14),然後:
import zvec
# 定義 collection 的 schema(這裡放一個 4 維向量欄位)
schema = zvec.CollectionSchema(
name="example",
vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 4),
)
# 開一個 collection(不存在就自動建,路徑就是硬碟上一個資料夾)
collection = zvec.create_and_open(path="./zvec_example", schema=schema)
# 塞資料
collection.insert([
zvec.Doc(id="doc_1", vectors={"embedding": [0.1, 0.2, 0.3, 0.4]}),
zvec.Doc(id="doc_2", vectors={"embedding": [0.2, 0.3, 0.4, 0.1]}),
])
# 用向量相似度查詢
results = collection.query(
zvec.VectorQuery("embedding", vector=[0.4, 0.3, 0.3, 0.1]),
topk=10,
)
print(results) # 依相關度排好的清單
大概就這樣:定義 schema、開一個 collection、塞資料、查詢。整段沒有一行在連伺服器,因為根本沒有伺服器。Node.js 那邊 npm install @zvec/zvec,API 幾乎一樣;懶得寫 code 想先看資料,官方還有一個叫 Zvec Studio 的視覺化工具可以逛。
zvec 跟 FAISS、Chroma、Qdrant 差在哪?
差在它想同時要「快」又「像一個真的資料庫」。很多人本地做向量搜尋會用 FAISS,它夠快,但它純粹是記憶體裡的索引:程式一關、沒另外存檔就沒了,也不做混合搜尋、不吃稀疏向量。zvec 想補的就是這一塊。直接看表:
| zvec | FAISS | Chroma | Qdrant | |
|---|---|---|---|---|
| 行程內(嵌進 app) | 是 | 是 | 可選 | 否 |
| WAL 持久化 | 是 | 否 | 是 | 是 |
| 混合搜尋 | 是 | 否 | 有限 | 是 |
| 稀疏向量 | 是 | 否 | 否 | 是 |
| 手機支援 | 是(Flutter) | 否 | 否 | 否 |
| 多程序同時讀 | 是 | 否 | 否 | 不適用 |
| DiskANN 硬碟索引 | 是 | 否 | 否 | 否 |
| 要不要架 server | 不用 | 不用 | 可選 | 要 |
我覺得真正拉開差距的是這幾點:
- WAL 持久化:每一筆寫入在回傳前就已經落地,當機、跳電都不會掉資料。這是它跟 FAISS 這種純記憶體庫最大的分界線。
- 混合搜尋:一次查詢裡把向量相似度、關鍵字全文搜尋(FTS)、加上欄位過濾(例如「分類等於科技」)全部揉在一起。真實世界的檢索多數都是這種「又要語意相近、又要符合某個條件」的需求。
- DiskANN:把大部分索引放硬碟,讓你用一台記憶體不多的普通機器,也搜得動十億級的資料。這本來是 Milvus 那種重型系統才有的能力,zvec 直接內建。
- 多程序讀:好幾個程序可以同時開同一個 collection 來讀,只有寫入要獨佔。多 worker 的服務場景用得上。
這對只想搞點副業的普通人有什麼用?
你可能會想:向量資料庫聽起來很工程,關我什麼事?其實這正是把「AI 工具」變成一門小生意的底層零件。幾個接得上的方向:
- 幫小店或個人做一個「文件問答機器人」:把商品說明、FAQ、合約條款餵進 zvec,再接一個 LLM,就是一個會回答自家資料的客服。以前這種東西要嘛用雲端向量服務按月付費,要嘛自己架 server;現在一個 pip install 就能先做出能 demo 的版本。
- 做「個人第二大腦」:把自己這幾年的筆記、剪報、PDF 全部向量化塞進去,用一句話就搜得到「我兩年前存過那篇講穩定幣的東西」。因為是本地、離線,資料不用上傳到別人伺服器,隱私這關天然過了。
- 上架到手機 app:zvec 有 Flutter SDK,能在 Android、iOS 本機做語意搜尋。想做離線筆記或閱讀 app 的人,這是省成本的關鍵,不用替每個用戶養一台後端。
重點是門檻。以前這些點子卡在「我要先會架基礎設施」,現在那道牆矮了一大截。能不能做成生意還是看你的內容和執行,但至少技術這關,不再是藉口。
誰適合用 zvec?誰不適合?
適合的情況:想在本地做向量搜尋、又不想背一整套基礎設施的 Python 或 Node.js 專案;跑在 notebook、script、serverless 裡的 RAG 流程;要在手機上做離線語意搜尋的 app;想要 DiskANN 那種硬碟級十億搜尋、又不想去扛 Milvus 維運複雜度的團隊。
不太適合的情況:要給很多獨立租戶共用同一套向量基礎設施的多租戶 SaaS;需要跨很多台機器做水平寫入擴展的場景;已經深度綁在某個雲端託管向量服務、吃它一堆雲原生功能的團隊。一句話:zvec 是「嵌進去」的思路,不是「連過去」的思路。你的需求偏哪邊,答案就很清楚。
不想用 zvec,有什麼替代方案?
沒有哪個工具是唯一解。如果 zvec 不合你口味:只要最純粹的本地向量索引、不在乎持久化,FAISS 還是老牌可靠;想要一個對新手友善、Python 生態很熟的,選 Chroma;要正經的伺服器級、雲原生功能齊全的,看 Qdrant、Milvus、Weaviate;如果你其實想要的是「SQLite 但加上向量搜尋」,可以看看用 Rust 重寫 SQLite 的 Turso,它也把向量搜尋塞進去了。
新手想試,第一步該做什麼?
不用一開始就想著做產品。給你一條低風險的路:
- 開一個乾淨的 Python 環境,
pip install zvec。 - 照官方那段一分鐘範例,先塞三五筆假資料、查一次,確認整條路跑得通。
- 找一份你自己的真實資料(例如一個資料夾的筆記或 PDF),用任何一個 embedding 模型轉成向量,塞進 zvec。
- 接一個 LLM,讓它先從 zvec 撈相關片段再回答。這就是一個最小的 RAG。
- 跑順了,再想「這個能不能變成給別人用的東西」。
先把 demo 做出來,再談商業化。順序反過來,多數會卡死。
延伸閱讀:另一個最近爆紅的開源專案,用家裡的 WiFi 訊號就「看穿」整間屋——開源 RuView 實測,不用鏡頭也量得到呼吸心跳、GitHub 熱門開源 AI 專案精選。
關於 zvec 的常見問題
zvec 是免費的嗎?
是,Apache 2.0 開源授權,商用也可以,去 GitHub 就抓得到原始碼。
zvec 和 FAISS 該選哪個?
只要記憶體內快速索引、資料掉了無所謂,FAISS 就夠。要持久化、混合搜尋、稀疏向量、手機支援,選 zvec。
用 zvec 一定要會 C++ 嗎?
不用。核心是 C++ 寫的,但你用 Python(pip install zvec)、Node.js、Go、Rust 或 Flutter 的 SDK 就好,寫的是你熟的語言。
zvec 能跑多大的資料?
官方說搭 HNSW 索引可以在十億級向量做毫秒搜尋,搭 DiskANN 還能用有限記憶體撐更大規模。完整基準測試放在 zvec 官方文件。
zvec 適合放進手機 app 嗎?
適合。它有 Dart/Flutter SDK,支援 Android 和 iOS,能在裝置本機做離線語意搜尋,不用替每個用戶連一台後端。
本文為工具介紹與個人使用心得,非投資建議。AI 開源專案更新極快,功能、版本與星數截至 2026 年 7 月,實際請以 zvec 官方 GitHub 與文件為準。







發表迴響