跳转到主要内容
Chroma 是开源的 AI 应用数据库。Chroma 通过使知识、事实和技能可插入 LLM(大语言模型),让构建 LLM 应用变得简单。

参与贡献

我们欢迎所有的贡献,包括错误报告、Bug 修复、文档改进、功能增强和创意。

快速入门

以下是一些可以帮助您开始为 Chroma 贡献力量的有用链接

贡献代码和创意

功能需求

针对 Chroma 的功能请求和重大更改提案应通过 GitHub Issues 提交。如果您想建议新功能或重大更改,请开启一个 Issue 并选择相关的模板。这能让 Chroma 核心团队和社区直接在 Issue 中进行讨论并提供反馈。对于 Bug 修复或文档更新等较小的更改,您可以照常提交 Issue 或开启 Pull Request。 提案一旦提交,Chroma 团队将进行审核,并在 GitHub 中跟踪其状态。我们使用标签和 Issue 状态来表示提案的进度——例如,它是处于审核中、已接受、正在实施还是已关闭。更多信息请参阅我们的 GitHub Issues 页面和贡献指南。 您可以加入我们的 Discord,并在 #feature-ideas 频道与我们交流。我们非常乐意与社区讨论新的想法和功能。

拉取请求 (Pull Requests)

若要提交对 Chroma 的更改,请针对 Chroma 或文档提交 Pull Request。Pull Request 将由 Chroma 团队审核,获批后将合并到仓库中。我们会尽力及时审核,但由于团队规模较小,请保持耐心。如果您的更改符合项目目标,我们将尽快进行整合。我们要求您在 Pull Request 标题中添加前缀,以指示您提案的更改类型。常用前缀如下:
ENH: Enhancement, new functionality
BUG: Bug fix
DOC: Additions/updates to documentation
TST: Additions/updates to tests
BLD: Updates to the build process/scripts
PERF: Performance improvement
TYP: Type annotations
CLN: Code cleanup
CHORE: Maintenance and other tasks that do not modify source or test files

路线图

您可以在 更新日志 (changelog) 中跟踪 Chroma 项目的进度。 Chroma 由一个小型核心团队构建和维护,因此我们在投入工程力量时非常有针对性。Chroma 有两种部署模式——分布式 Chroma 和单节点本地 Chroma——目前它们依赖于不同的存储子系统。该数据库现在并将永远保持开源(Apache 2.0 协议),我们的云服务运行的也是相同的开源分布式系统。 目前,我们大部分的工程精力集中在分布式 Chroma 和云服务上。因此,本地 Chroma 可能会暂时缺少分布式系统中具备的某些功能或行为。恢复并保持 100% 的功能和 API 一致性仍是我们积极追求的目标,而统一底层存储系统是这项工作的关键部分。

遥测

Chroma 包含一项收集 匿名 使用信息的遥测功能。

为什么?

我们使用这些信息来帮助我们了解 Chroma 的使用方式,帮助我们确定新功能和 Bug 修复的优先级,并帮助我们提高 Chroma 的性能和稳定性。

选择退出

如果您希望退出遥测,可以通过以下两种方式操作。

在客户端代码中

在您的客户端设置中将 anonymized_telemetry 设置为 False
from chromadb.config import Settings
client = chromadb.Client(Settings(anonymized_telemetry=False))
# or if using PersistentClient
client = chromadb.PersistentClient(path="/path/to/save/to", settings=Settings(anonymized_telemetry=False))

在 Chroma 后端服务器中使用环境变量

在您的 shell 或服务器环境中将 ANONYMIZED_TELEMETRY 设置为 False 如果您在本地计算机上使用 docker-compose 运行 Chroma,可以在与 docker-compose.yml 文件位于同一目录的 .env 文件中设置此值:
ANONYMIZED_TELEMETRY=False