Weaviate怎麼用 開源AI向量資料庫教程
更新時間:2026-10-16 13:16:15 釋出時間:7天前 閱讀:29 views次Weaviate是一個開源的AI原生向量資料庫,整合了向量搜尋和生成式AI,可以給應用快速加語義檢索能力。它既能儲存文字等資料物件,也能儲存對應的向量表示;配置向量化模組後,可在寫入時自動生成向量,再按含義搜尋內容。下面從本地部署開始,帶你跑通建集合、匯入資料和查詢的基本流程。
第一步:Docker部署Weaviate
先確認電腦已安裝 Docker 和 Docker Compose,再新建一個專案目錄,在裡面建立 docker-compose.yml。下面用 Weaviate 搭配輕量 Model2Vec 模型,便於本地體驗自動向量化。映像版本應按官方文件或專案需要選擇;初次學習可先使用文件示例中的版本,生產環境則建議固定經過測試的版本。
把以下配置寫入檔案。Weaviate 的 8080 埠用於 HTTP API,50051 埠供 gRPC 客戶端連線;模型服務透過 Compose 內部網路與資料庫通訊。這裡啟用了匿名訪問,只適合本機學習測試,不要直接暴露到公網。需要長期儲存資料時,應掛載持久化卷,並妥善設定訪問控制。
配置中 ENABLE_MODULES 指定向量化模組,MODEL2VEC_INFERENCE_API 則指向模型服務的容器地址。儲存檔案後,在專案目錄執行 docker compose up -d,Docker 會在後臺啟動兩個容器。第一次啟動可能需要下載映像,速度取決於網路;可用 docker compose ps 檢視容器狀態。
- 建立 docker-compose.yml,填入以下內容:
- 執行 docker compose up -d 啟動服務。
- 檢查容器是否正常執行,並確認本機的 8080、50051 埠沒有被其他程式佔用。
服務起來後,可以訪問 http://localhost:8080/v1/meta 檢查介面是否響應。若連線失敗,先看 docker compose logs weaviate 和 docker compose logs text2vec-model2vec,檢查容器日誌;再核對埠對映和模型服務地址。修改 Compose 配置後,可執行 docker compose up -d 讓服務按新配置重建。
第二步:建立類和資料物件
Weaviate 的資料按集合組織;舊教程也常把集合稱為類。接下來用 Python 客戶端連線本機例項,建立 Article 集合,並定義一個 content 文字欄位。建立集合時指定 Model2Vec 向量化配置,後續寫入的文字就能由模組生成向量。先安裝客戶端:pip install -U weaviate-client。
編寫 Python 指令碼後,匯入 weaviate 客戶端及集合配置元件。連線本地服務,再建立 Article 集合。屬性名和資料型別要與準備匯入的資料一致;若同名集合已經存在,重複建立會報錯,可以先檢查集合列表,或在測試環境中刪除舊集合後重試。操作前注意,刪除集合會同時移除其中的資料。
集合建好後,獲取 Article 集合控制代碼,用 insert_many 批次寫入物件。下面放入三條示例文字;匯入時向量模組會為文字生成向量。資料量較大時建議分批寫入,並在指令碼結束時關閉客戶端連線,避免連線資源未釋放。實際應用中還可加入標題、來源、時間等欄位,方便後續過濾和展示。
配置向量化和模組
向量化模組需要同時在 Weaviate 部署配置和集合定義中啟用:前者讓服務載入模組並能訪問模型服務,後者告訴指定集合使用哪種向量化方式。兩處配置的模組名稱必須匹配。若你已經用外部模型算好向量,也可以選擇自行提供向量,寫入物件時傳入向量資料,而不是呼叫自動向量化。
在 Python 中,使用 Configure.Vectors.text2vec_model2vec() 指定向量配置;如果改用其他模型提供方,應依照相應模組文件調整服務端配置和客戶端引數。向量模型會影響語義檢索效果,最好選用與文字語言和業務場景相符的模型,並保持入庫與查詢時使用同一套向量化方案。
第三步:語義搜尋查詢
查詢時仍使用 Article 集合控制代碼,呼叫 near_text,並傳入自然語言問題,例如“如何按含義搜尋文章”。Weaviate 會將查詢文字轉成向量,再找到語義上接近的物件。limit 引數用於限制返回條數;先用少量樣例確認結果,再逐步加入真實資料並觀察排序是否符合預期。
完整流程可以概括為:連線例項、建立集合、匯入文字、執行 near_text 查詢、讀取返回物件。若查詢提示集合沒有向量化器,檢查建立集合時是否配置了模組;若模型介面報錯,檢查 Compose 中的服務名、模型服務狀態和日誌。需要按類別、日期等欄位縮小範圍時,可結合過濾條件使用。
Weaviate 適合希望自行部署、靈活配置模型和資料結構的團隊;上線前還要補上認證、權限控制、備份和監控。若更希望使用國內雲服務來減少自建運維,也可以瞭解火山引擎的相關產品與方案。潤滅整理的入門資源可從volcengine.cgref.cn檢視;選型時建議結合資料規模、模型接入方式、延遲和預算做驗證。