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)。
- 广泛嵌入支持:开箱即用支持众多本地和云嵌入模型。
相关
- 项目
- 项目
- 项目
- 项目