philippgille/chromem-go

Embeddable vector database for Go with Chroma-like interface and zero third-party dependencies. In-memory with optional persistence.

解決的問題

chromem-go 是 Go 應用程式的嵌入式向量資料庫。它讓開發者無需運行獨立的資料庫伺服器,即可將檢索增強生成(RAG)、語意搜尋與推薦系統直接整合至應用中(類似於 SQLite 取代完整 SQL 伺服器的使用方式)。

工作原理

資料庫在記憶體中運作,並支援可選的磁碟持久化。它使用餘弦相似度進行完整的最近鄰搜尋(FLAT 索引),以找出相關內容。提供類似 Chroma 的介面,用於管理集合與查詢文件。

在處理嵌入時,本專案支援多種主機提供者(OpenAI、Azure OpenAI、GCP Vertex AI、Cohere、Mistral、Jina、mixedbread.ai)與本地提供者(Ollama、llmman、LocalAI),或允許使用者提供自己的嵌入函數或預先計算的嵌入。

適用對象

需要輕量級、零相依性向量儲存來實現 RAG 或文字搜尋等 AI 功能,且偏好嵌入式方案而非客戶端-伺服器架構的 Go 開發者。

特色亮點

  • 零相依:無需任何第三方函式庫。
  • 可嵌入:無需客戶端-伺服器模型;資料庫直接整合至 Go 二進位檔中。
  • 多執行緒:利用 Go 原生平行處理能力,高效處理文件新增與查詢。
  • 彈性儲存:支援記憶體運作,可選持久化與加密備份(AES-GCM)。
  • 廣泛嵌入支援:開箱即用支援眾多本地與雲端嵌入模型。

相關

  • 專案
  • 專案
  • 專案
  • 專案