Hosted Chroma
Chroma Cloud,我们的完全托管托管服务,目前处于早期访问阶段。填写调查问卷以跳过等待名单并获得最佳的检索体验。全面访问将于2025年第一季度到来。
在Docker容器中运行Chroma#
您可以在Docker容器中运行Chroma服务器,并使用HttpClient
访问它。
如果您在生产环境中使用Chroma,请填写此表单,我们将把您添加到一个专门支持生产用户的Slack工作区。我们很乐意帮助您思考系统的设计,或者如果您适合我们即将推出的分布式云服务。
如果您在运行Chroma服务器的容器之外的单独容器中使用客户端,您可能只需要thin-client包。
您可以从Docker Hub或Chroma GitHub容器注册表获取Chroma Docker镜像。
您也可以从Chroma GitHub仓库中的Dockerfile自行构建Docker镜像。
然后,可以将Chroma客户端配置为连接到Docker容器中运行的服务器。
Docker身份验证#
默认情况下,Docker镜像将以无身份验证方式运行。在客户端/服务器模式下,Chroma支持以下身份验证方法:
- RFC 7617 基本认证,使用
user:password
base64编码的Authorization
头。 - 静态认证令牌在
Authorization: Bearer <token>
或X-Chroma-Token: <token>
头中。
您可以在身份验证指南中了解更多关于Chroma身份验证的信息。
加密的用户:密码身份验证#
服务器设置#
生成服务器端凭证#
要生成密码哈希,请运行以下命令:
这将为密码admin
生成bcrypt密码哈希,用于用户admin
,并将其放入当前工作目录中的server.htpasswd
文件中。它将看起来像admin:<password hash>
。
运行服务器#
创建一个.chroma_env
文件,并在其中设置以下环境变量:
然后,运行Chroma容器,并使用--env-file
标志传递您的.chroma_env
:
客户端设置#
在您的客户端环境中,将CHROMA_CLIENT_AUTH_CREDENTIALS
变量设置为用户:密码组合(在此示例中为admin:admin
):
安装python-dotenv
。这将允许我们轻松地从.chroma_env
中读取环境变量:
我们将使用Chroma的Settings
对象在客户端上定义身份验证方法。
静态API令牌认证#
服务器设置#
安全提示
当前的静态API令牌认证实现仅支持基于环境变量的令牌。令牌必须是字母数字的ASCII字符串。令牌区分大小写。
例如,如果您希望静态API令牌为“test-token”,请将以下环境变量添加到您的.chroma_env
中。这将设置Authorization: Bearer test-token
作为您的认证头。
如果您不想使用默认的Authorization: Bearer <token>
头,而是希望使用自定义头,例如X-Chroma-Token: test-token
,您可以设置CHROMA_AUTH_TOKEN_TRANSPORT_HEADER
环境变量:
然后,运行Chroma服务器:
要配置多个令牌并将其用于基于角色的访问控制(RBAC),请使用类似此的文件和以下环境变量:
在这种情况下,您需要设置一个卷以允许Chroma Docker容器使用您的authz.yaml
文件:
客户端设置#
安装python-dotenv
。这将允许我们轻松地从.chroma_env
中读取环境变量:
我们将使用Chroma的Settings
对象在客户端定义认证方法。
如果您使用自定义的CHROMA_AUTH_TOKEN_TRANSPORT_HEADER
(如X-Chroma-Token
),请将其添加到您的Settings
中: