Antfly:Go語言開發的分散式多模態搜尋、記憶與圖形資料庫
各位HN網友,我很興奮向大家介紹Antfly:這是一個用Go語言編寫的分散式文件資料庫與搜尋引擎,整合了全文檢索、向量搜尋和圖形搜尋功能。您可以用它來進行分散式多模態搜尋與記憶,或用於本地開發和小型部署。我開發這個專案是為了讓開發者能夠透過單一二進位檔部署,並內建機器學習推論功能(透過內建服務Termite),這意味著除非您需要,否則進行向量搜尋時無需呼叫外部API。以下是可能讓這個社群感興趣的幾個特點:功能特色:支援多模態索引(圖片、音訊、影片)、MongoDB風格的原地更新,以及串流式RAG。分散式系統:基於etcd函式庫建構的Multi-Raft架構,底層使用Pebble(CockroachDB的儲存引擎)。元資料和資料分片各自擁有獨立的Raft群組。單一二進位檔:antfly swarm提供單一進程部署,所有功能都在其中運行。非常適合本地開發和小型部署。需要時可透過增加節點來擴展規模。生態系統:附帶Kubernetes運算元和MCP伺服器,供LLM工具使用。原生機器學習推論:Antfly內建Termite服務。您可以把它想像成內建的Ollama,也支援非生成式模型(嵌入、重新排序、分塊、文字生成)。無需外部API呼叫,但也支援外部服務(OpenAI、Ollama、Bedrock、Gemini等)。授權條款:我選擇了Elastic License v2,這不是OSI認可的開源授權。我知道這是個容易引發激烈討論的話題。實際影響是:您可以使用、修改、自行託管、基於它開發產品,但不能將Antfly本身作為託管服務提供。我認為這是在可持續發展和開放原始碼之間取得平衡的妥協方案。很樂意回答關於架構、Raft實作或任何其他問題。歡迎提供回饋意見!
- API 平台
- 大型語言模型
- 整合功能
✨ AI 摘要
Antfly是一個用Go語言編寫的分散式文檔數據庫和搜索引擎,結合了全文、向量和圖形搜索功能。它以單一二進制部署為特色,內建機器學習推理功能,用於嵌入和其他任務。
適合誰
需要為多模態數據(圖像、音頻、視頻)提供統一搜索解決方案的開發者, 尋找自託管、分散式搜索和記憶系統以用於RAG應用的團隊, 需要本地開發或小型部署且無需外部API依賴的項目
為何值得關注
它提供了一個單一、自包含的多模態搜索系統,具備原生機器學習推理功能,消除了對外部API調用的需求,同時支持分散式擴展。
核心功能
- 結合全文、向量與圖形搜尋於單一分散式資料庫中
- 內建機器學習推論服務,用於嵌入、重新排序與分塊,無需外部API
- 支援圖像、音訊及視訊文件的多模態索引
- 單一二進制部署,適用本地開發,並可輕鬆擴展至分散式叢集
使用場景
- 一家媒體公司希望建立內部檔案搜尋系統,讓記者能透過自然語言查詢尋找影片片段、音訊訪談和圖片。他們的工程團隊不再為不同媒體類型維護獨立資料庫並依賴外部AI服務,而是將Antfly作為單一二進位檔案部署在內部伺服器上。記者現在可以同時搜尋所有媒體格式,系統會利用素材中提到的人物、事件和主題之間的圖形關聯,自動推薦相關內容。
- 一家開發AI研究助理的新創公司需要實作記憶系統,以記住跨會話的使用者互動、文件和網頁。他們的開發人員使用Antfly的本地部署模式進行原型設計,利用其內建的嵌入模型將內容向量化而無需API成本。隨著規模擴大,他們將資料庫分散到多個節點,同時保持對過去對話和檢索文件進行語義搜尋的能力,使助理能提供情境相關的答案。
- 一家電商平台希望透過允許客戶使用圖片或模糊描述進行搜尋來增強商品發現功能。他們的後端團隊實作Antfly來索引商品圖片、描述和客戶評論情感。當用戶上傳所需物品的照片時,系統會找到視覺相似的商品,並根據購買圖形模式推薦互補商品,同時透過MongoDB風格的操作處理即時庫存更新。