我已经设置了一个 Azure WebApp,以便使用 ChromaDB 实例来存储一些数据。我想用python来添加文档,进行查询等
我目前正在做的事情:
import chromadb
from chromadb.config import Settings
client = chromadb.HttpClient(
host=url,
settings=Settings(
chroma_client_auth_provider=CHROMA_SERVER_AUTHN_PROVIDER,
chroma_client_auth_credentials=bearer_token
)
)
我的网址是 https://....azurewebsites.net”,设置参数存储在我的 azure 实例 ENV 变量中。 它似乎不欣赏我的登录参数:
ValueError Traceback (most recent call last)
Cell In[23], line 3
1 import chromadb
2 from chromadb.config import Settings
----> 3 client = chromadb.HttpClient(
4 host=url,
5 settings=Settings(
6 chroma_client_auth_provider=CHROMA_SERVER_AUTHN_PROVIDER,
7 chroma_client_auth_credentials=bearer_token
8 )
9 )
File ~\AppData\Roaming\Python\Python312\site-packages\chromadb\__init__.py:204, in HttpClient(host, port, ssl, headers, settings, tenant, database)
201 settings.chroma_server_ssl_enabled = ssl
202 settings.chroma_server_headers = headers
--> 204 return ClientCreator(tenant=tenant, database=database, settings=settings)
File ~\AppData\Roaming\Python\Python312\site-packages\chromadb\api\client.py:56, in Client.__init__(self, tenant, database, settings)
50 def __init__(
51 self,
52 tenant: str = DEFAULT_TENANT,
53 database: str = DEFAULT_DATABASE,
54 settings: Settings = Settings(),
55 ) -> None:
...
118 "Both credentials file and credentials found."
119 "Please provide only one."
120 )
ValueError: No credentials file or credentials found in [chroma_server_authn_credentials].
我做错了什么?还有其他通过 Python 连接的方法吗?
谢谢你
该错误表明同时定义了 CHROMA_SERVER_AUTHN_CREDENTIALS_FILE 和 CHROMA_SERVER_AUTHN_CREDENTIALS,这导致了冲突。 ChromaDB 一次只需要提供一组凭据。
解决步骤 删除多余的环境变量 您可以使用基本身份验证或基于令牌的身份验证,但不能同时使用两者。根据您的选择:
选项 1:基本身份验证 仅设置这些环境变量:
export CHROMA_SERVER_AUTHN_CREDENTIALS_FILE="<path_to_server.htpasswd>"
export CHROMA_SERVER_AUTHN_PROVIDER="chromadb.auth.basic_authn.BasicAuthenticationServerProvider"
删除以下内容:
unset CHROMA_SERVER_AUTHN_CREDENTIALS
unset CHROMA_AUTH_TOKEN_TRANSPORT_HEADER
选项 2:基于令牌的身份验证 仅设置这些环境变量:
export CHROMA_SERVER_AUTHN_CREDENTIALS="test-token"
export CHROMA_SERVER_AUTHN_PROVIDER="chromadb.auth.token_authn.TokenAuthenticationServerProvider"
export CHROMA_AUTH_TOKEN_TRANSPORT_HEADER="X-Chroma-Token"
删除以下内容:
unset CHROMA_SERVER_AUTHN_CREDENTIALS_FILE
获取您的环境文件 进行这些更改后,确保加载环境变量:
source ~/.bashrc # or ~/.zshrc depending on your shell
验证变量确认仅设置了必要的变量:
echo $CHROMA_SERVER_AUTHN_CREDENTIALS
echo $CHROMA_SERVER_AUTHN_CREDENTIALS_FILE
确保其中只有一个返回值。