Weaviate v1.37 發佈:內置 MCP 服務器、可擴展分詞器、多樣性搜索與查詢分析預覽
Weaviate v1.37 正式發佈,帶來多項預覽功能:內置 MCP 服務器(與 AI 代理和 IDE 原生集成)、可擴展分詞器(支持變音摺疊與自定義停用詞)、基於最大邊際相關性(MMR)的多樣性搜索、查詢分析(按分片顯示耗時)。此外還新增增量備份、Gemini 音頻支持(multi2vec-google 模塊)和 BlobHash 屬性類型。
Weaviate v1.37 現已開源發佈,並可在 Weaviate Cloud 上使用。本次更新專注於擴展 Weaviate 的能力,涵蓋與 AI 代理的交互、文本分析以及大規模操作的處理。四個新的預覽功能加入此版本:內置的 MCP 服務器,讓 LLM 和 IDE 能夠原生地與數據庫通信;可擴展分詞器,支持變音摺疊和自定義停用詞預設;多樣性搜索(MMR),減少向量結果的冗餘;以及查詢分析,提供按分片的耗時分解。此外,增量備份使得大規模集合的備份變得實用;Gemini 音頻支持加入 multi2vec-google 模塊;新的 BlobHash 屬性類型只存儲哈希而非完整 blob。
MCP 服務器(預覽)
Weaviate v1.37 引入了內置的模型上下文協議(MCP)服務器,作為預覽提供。MCP 是一個開放標準,允許大型語言模型和 AI 代理安全地與外部系統交互。通過在 Weaviate 中直接實現它,你可以將數據庫連接到兼容的客户端——包括 Claude Code、Claude Desktop、Cursor、VS Code 以及其他任何支持 MCP 的工具——而無需編寫任何膠水代碼。這使 Weaviate 從被動的檢索引擎轉變為代理工作流的主動長期記憶:LLM 可以檢查集合模式、運行混合搜索並將數據寫回你的實例,所有這些都受 Weaviate 標準認證和授權的約束。該服務器作為流式 HTTP 端點實現,位於 REST API 相同端口的 /v1/mcp 上。默認情況下禁用,通過單個環境變量啓用。啓用後,服務器暴露四個工具:檢查集合模式、列出多租户集合的租户、運行混合搜索以及插入或更新對象。如果使用 RBAC,MCP 訪問由三個新權限控制。你可以通過掛載 YAML 或 JSON 配置文件來自定義 LLM 看到的工具描述。
可擴展分詞器(預覽)
關鍵詞搜索質量在 BM25 運行計算之前就已決定——由將文本轉換為標記的分析器決定。新增三個功能:變音摺疊(textAnalyzer.asciiFold 標誌將帶變音符號的拉丁字符規範化為 ASCII 等效字符,索引和查詢時均適用)、自定義和按屬性停用詞(可聲明命名的停用詞預設並分配給不同屬性,適用於多語言集合),以及 tokenize 端點(兩個新的 REST 端點使分詞過程透明,返回包括索引標記和查詢標記的結構化響應)。
基於 MMR 的多樣性搜索(預覽)
標準向量搜索的一個已知副作用是它聚集了近重複項。Weaviate v1.37 引入了最大邊際相關性(MMR)作為一個新的查詢時重新排序步驟,作為預覽提供。MMR 迭代地選擇最相關的項目,然後懲罰與已選擇項目過於相似的候選者——因此每個新結果必須通過添加新內容來贏得其位置。通過在 Python 客户端中添加 selection 參數來使用。MMR 在查詢時應用,在現有向量索引之上進行,無需重新索引或模式更改。
查詢分析(預覽)
當查詢緩慢時,第一個問題總是“時間花在哪裏了?” Weaviate v1.37 通過查詢分析輕鬆回答這個問題——作為預覽提供,它將按分片的耗時分解附加到任何搜索請求上。通過設置 query_profile=True 來請求分析數據。分析按分片和搜索類型(向量、關鍵詞、對象)結構化,包含如 vector_search_took、filters_ids_matched、knn_search_layer_N_took 等指標。對於混合搜索,每個分片同時包含向量和關鍵詞部分。對於多節點集羣,協調器彙總所有分片的計時,每個條目包括執行它的節點,從而容易發現性能不平衡。
增量備份
每晚備份 100GB 的集合成本高昂,當只有少量數據發生變化時。Weaviate v1.37 引入了增量備份:自上次備份以來未更改的文件作為引用存儲,而不是再次複製。結果是備份體積大幅減小,備份時間顯著加快。備份運行時,Weaviate 將大文件分割成塊。在增量備份期間,每個塊與基礎備份進行比較——如果未更改,則存儲指針而非文件。恢復時,Weaviate 自動遍歷鏈並從較早的備份中拉取引用的文件。創建增量備份需要先有一個完整備份作為基礎。你還可以鏈式創建增量備份,每個引用前一個,以廉價地構建較長的歷史記錄。恢復增量備份與恢復完整備份完全相同——Weaviate 解析鏈並根據需要從較早備份中獲取文件。請注意,基礎備份(以及鏈中的任何中間增量備份)必須保持可用,只要你需要從依賴它們的增量備份中恢復。另外,在 v1.37 中,INACTIVE(COLD)租户現在也包含在備份中,直接從磁盤讀取而無需激活。
Gemini 音頻支持
multi2vec-google 模塊現在支持音頻作為第四種模態,除了文本、圖像和視頻。通過新的 audioFields 設置配置音頻屬性,與 imageFields 或 videoFields 相同。音頻支持僅通過 Gemini API(Google AI Studio)可用——Vertex AI 目前不支持音頻嵌入。這使得 Gemini API 路徑對於任何需要將文本、視覺和音頻內容統一到單個向量空間的多模態用例具有吸引力。
BlobHash 屬性類型
如果你使用像 multi2vec-google 這樣的模塊來向量化媒體,向量化器在導入時只需要原始字節——之後,blob 就只是佔用存儲空間。v1.37 中的新 blobHash 數據類型直接解決了這個問題:它接受 base64 編碼的輸入(像 blob 一樣),但在磁盤上僅持久保存 SHA-256 哈希。原始的 base64 數據仍然流經向量化管道,因此模塊可以嵌入實際的媒體內容。僅在向量化之後,Weaviate 才用其哈希替換負載。在後續更新中,傳入數據被哈希並與存儲的哈希比較,以決定是否需要重新向量化。這非常適合那些你希望向量存在於 Weaviate 中但規範媒體存在於對象存儲(如 S3)中的工作流——哈希讓你能夠關聯回原始文件,而無需支付重複存儲的磁盤成本。
多項性能改進與修復
Weaviate v1.37 還包含許多較小的功能和改進。亮點包括:集合導出(預覽):新的 /v1/export API 允許將集合導出到 S3、GCS、Azure 或本地文件系統,格式為 Apache Parquet;HFresh 改進:多項優化減少了內存使用、磁盤寫入並改進了備份期間的出隊;DEFAULT_SHARDING_COUNT 環境變量:覆蓋新單租户集合的默認 desiredCount;S3 assume role 用於備份:備份-s3 模塊現在支持 AWS assume role 身份驗證;Google AI Studio 在 multi2vec-google 中:Google AI Studio API 密鑰現在可與 multi2vec-google 模塊一起使用;IPv6 集羣:Weaviate 現在支持用於內部集羣通信的 IPv6 地址;內部集羣 gRPC:副本通信從 REST 遷移到 gRPC,改進了連接管理和摘要響應的二進制編碼;Reranker-cohere v2:Cohere 重排序模塊從 v1 升級到 v2 重排序端點;OIDC 不安全 TLS 跳過:新的 AUTHENTICATION_OIDC_INSECURE_SKIP_TLS_VERIFY 環境變量用於開發和測試環境中的自簽名或不受信任證書的 OIDC 頒發者;性能:HNSW 稀疏訪問列表、預計算平均屬性長度、延遲量化直到緩存預填充、備份期間的非阻塞壓縮、更好的段搜索位圖處理等;錯誤修復:最終一致性改進、RBAC 恢復競爭條件、向量索引錯誤處理、IPv6 地址解析、過濾器邊緣情況等。
社區貢獻
Weaviate 是一個開源項目,我們總是很高興看到來自社區的貢獻。本次發佈特別感謝首次貢獻者 @junjieqi,他為集羣貢獻了 IPv6 支持。
總結
Weaviate v1.37 拓寬了你的數據與堆棧其餘部分的集成方式——從 AI 代理和 IDE 到分析管道和多語言工作負載。關鍵亮點包括 MCP 服務器、可擴展分詞器、MMR 多樣性搜索、查詢分析、增量備份、Gemini 音頻支持和 BlobHash 屬性類型。此版本現已開源,並可在 Weaviate Cloud 上用於新的 Sandbox。