Repolode
philippgille

philippgille/chromem-go

面向 Go 的可嵌入向量数据库,接口类似 Chroma,无第三方依赖,可选持久化。

可替代:Pinecone

Star
1,075
Fork
78
未关闭 Issue
22
最近提交
2个月前

这是什么?

chromem-go 是一个可以直接嵌入 Go 程序运行的向量数据库,类似应用里的 SQLite,无需单独部署或维护服务端。它会把文档和对应的向量一起存储,既可以由它调用 OpenAI、Ollama、Cohere、Mistral 等服务生成向量,也可以直接传入已有的向量。

它面向检索增强生成(RAG)、语义搜索等中小规模场景,而不是百万级文档。搜索方式为基于余弦相似度的精确最近邻搜索,查询时可按元数据精确匹配,或按文档内容是否包含某字符串进行过滤。数据默认保存在内存中,也可以选择即时写入磁盘,并支持整库导出与导入用于备份。

API 沿用了 Chroma 的核心方法(添加、查询、获取、创建和删除集合),同时提供了更符合 Go 习惯的替代方法。项目目前处于 beta 阶段,在 v1.0.0 之前可能出现不兼容的变更。

核心功能

  • 01以嵌入方式运行在 Go 应用中,无需外部依赖或服务端。
  • 02支持通过 OpenAI、Azure OpenAI、Ollama、Cohere、Mistral 等生成向量,也可直接传入已有向量。
  • 03基于余弦相似度的精确搜索,支持元数据和文档内容过滤。
  • 04数据默认存于内存,可选即时写入文件持久化。
  • 05支持整库导出与导入,可选压缩和 AES-GCM 加密。

适用场景

  • 在 Go 服务中实现基于 RAG 的问答,无需部署独立的向量数据库。
  • 在命令行或桌面工具中对中小规模文档集进行语义搜索。
  • 在选择更大型数据库之前,用 Go 原型验证基于向量的功能。

快速上手

  1. 1

    使用 go get 安装该库

    go get github.com/philippgille/chromem-go@latest
  2. 2

    导入 chromem-go,创建内存数据库和集合,然后添加文档并查询(参见 minimal 示例)

使用前须知

  • 项目处于测试阶段,在 v1.0.0 之前可能引入破坏性变更。
  • 设计目标是简单和中小规模数据,不适合数百万级文档。
  • 默认嵌入使用 OpenAI,除非配置其他提供商,否则需要 API 密钥。

收录于专题

标签

常见问题

chromem-go 是什么?
面向 Go 的可嵌入向量数据库,接口类似 Chroma,无第三方依赖,可选持久化。 chromem-go 是一个可以直接嵌入 Go 程序运行的向量数据库,类似应用里的 SQLite,无需单独部署或维护服务端。它会把文档和对应的向量一起存储,既可以由它调用 OpenAI、Ollama、Cohere、Mistral 等服务生成向量,也可以直接传入已有的向量。
chromem-go 可以免费使用吗?用的什么许可证?
chromem-go 以 MPL-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
chromem-go 还在维护吗?
半年内有更新。chromem-go 最近一次提交是在 2026年9月6日。
chromem-go 适合用来做什么?
在 Go 服务中实现基于 RAG 的问答,无需部署独立的向量数据库。 在命令行或桌面工具中对中小规模文档集进行语义搜索。 在选择更大型数据库之前,用 Go 原型验证基于向量的功能。
chromem-go 怎么安装和运行?
使用 go get 安装该库: go get github.com/philippgille/chromem-go@latest 导入 chromem-go,创建内存数据库和集合,然后添加文档并查询(参见 minimal 示例)
在哪里获取 chromem-go?
源代码和安装说明在 GitHub 上:https://github.com/philippgille/chromem-go

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目