首頁 > AI工具教程 > Weaviate怎麼用 開源AI向量資料庫教程

Weaviate怎麼用 開源AI向量資料庫教程

更新時間:2026-10-16 14:07:38 釋出時間:8天前 閱讀:27 views次

Weaviate是一個開源的AI原生向量資料庫,整合了向量搜尋和生成式AI,可以給應用快速加語義檢索能力。它把文字等資料與向量嵌入一起儲存,查詢時按含義找相近內容,而不只依賴關鍵詞。下面用Docker和Python走一遍本地入門流程:啟動服務、建集合、匯入資料,再用自然語言檢索。示例面向開發測試環境,正式部署前還要配置認證、網路和持久化。

第一步:Docker部署Weaviate

先安裝Docker與Docker Compose,在電腦上新建專案目錄。建立docker-compose.yml,寫入Weaviate服務配置;本例用本地Model2Vec推理服務自動生成向量,避免先依賴外部嵌入API。配置包含資料庫埠、模型服務地址和模組名稱。映像版本可以根據專案需要調整,兩個容器要處在同一個Compose網路中,資料庫才能訪問模型服務。

啟動前檢查YAML縮排,再在專案目錄執行docker compose up -d。首次啟動會下載映像,稍等片刻後執行docker compose ps檢視容器狀態。Weaviate的HTTP介面預設對映到本機8080埠,gRPC介面對映到50051埠;瀏覽器或命令列可訪問本機8080埠的v1/.well-known/ready路徑,確認服務就緒。若啟動失敗,先看docker compose logs weaviate輸出。

測試完成後可用docker compose down停止服務。需要保留資料時,在配置裡給Weaviate新增命名卷,並把持久化目錄設為卷掛載點;否則刪掉容器或卷可能導致資料丟失。這個入門示例啟用了本地匿名訪問,只適合可信的開發環境,不要直接暴露到公網。對外部署要開啟身份認證、限制網路訪問,並妥善管理金鑰和資料備份。

第二步:建立類和資料物件

安裝Python客戶端:執行pip install -U weaviate-client。新建Python指令碼,透過weaviate.connect_to_local()連線本地例項;連線成功後建立名為Article的collection,並設定content為文字屬性。集合可以理解為一類資料的容器,屬性則是每條記錄的欄位。若集合已經存在,重複建立可能報錯,開發時可先檢查集合是否存在,或刪除測試集合後重新執行。

拿到Article集合後,用data.insert_many()批次寫入字典物件,例如把幾段文章摘要放入content欄位。由於集合配置了向量化器,匯入時Weaviate會把文字傳送給模型服務生成向量,並與原始屬性一起儲存。若批次資料較多,建議分批匯入並觀察日誌;出現模型連線錯誤時,檢查Compose服務名、埠和API地址是否一致。

Python指令碼執行完,檢查返回結果或查詢集合物件,確認資料已經寫入。實際專案裡可給物件補充標題、來源、釋出時間等屬性,方便後續篩選和展示。匯入前最好統一文字編碼並去掉無用空白;同一條記錄還可以設定穩定的業務ID,便於更新、去重和刪除。不要把所有內容塞進單個超長欄位,按文件或段落切分通常更容易檢索到準確片段。

配置向量化和模組

向量化配置決定文字如何轉換成向量。此例使用text2vec-model2vec,且Compose中要啟用對應模組並配置推理服務地址;集合的vector_config也必須選擇匹配的向量器。模組未啟用或名稱不匹配時,建立集合或寫入資料可能報錯。若已有嵌入向量,也可以配置為自帶向量模式,並在插入物件時一併提交向量,適合需要控制模型的場景。

如果改用雲端模型提供商,通常要選擇相應模組、配置模型引數,並透過環境變數傳入API金鑰,避免把金鑰硬編碼進指令碼或提交到程式碼倉庫。更換嵌入模型後,向量空間可能不同;不要把不同模型生成的向量混在同一集合裡直接比較。修改配置後若要重建向量,可建立新集合再重新匯入資料,先小規模驗證效果和延遲。

第三步:語義搜尋查詢

連線客戶端並獲取Article集合後,呼叫query.near_text()執行語義檢索,把自然語言問題作為query引數,再用limit限制返回條數。例如搜尋“如何用機器學習把文字變成向量”,即使庫內文章沒有完全相同的詞,也可能返回討論文字嵌入的內容。讀取結果物件的properties即可拿到原文;還可以檢視距離或相似度資訊,幫助判斷結果是否足夠相關。

檢索效果不好時,先確認集合裡確有相關內容,再檢查向量器、匯入文字質量和分段方式。長文件可按段落或固定長度切片,並保留文件標題、來源等後設資料;查詢時可結合過濾條件縮小範圍。也可以嘗試混合搜尋,將關鍵詞匹配與向量相似度結合,處理專有名詞、編號等語義模型不易理解的詞。每次調整後用一組真實問題比較結果。

客戶端使用完要呼叫close()釋放連線。若要把搜尋接入問答應用,可先取回最相關的若干段文字,再將它們作為上下文交給生成模型,這就是常見的檢索增強生成流程;資料庫檢索與模型生成是兩步,需分別設定。國內專案也可評估火山引擎等雲服務,比較模型、部署方式、延遲與費用;相關入口:volcengine.cgref.cn。潤滅整理的教程同樣建議先用小資料集驗證效果。

標籤:
微信        
微信號runmie