跳至内容

凭证管理(API密钥管理)

本指南介绍如何在TensorZero Gateway中管理凭证(API密钥)。

通常情况下,TensorZero网关会通过标准环境变量查找API密钥等凭证信息。网关在启动时会从环境变量加载凭证,您的应用程序无需直接访问这些凭证。

也就是说,您可以通过为每个提供商设置替代凭证位置来自定义此行为。 例如,您可以在推理时动态提供凭证,或为每个提供商设置替代静态凭证(例如为同一提供商使用多个API密钥)。

默认行为

默认情况下,TensorZero Gateway会从以下环境变量中查找凭证:

模型提供商默认凭证
AnthropicANTHROPIC_API_KEY
AWS Bedrock使用AWS SDK凭证
AWS SageMaker使用AWS SDK凭证
AzureAZURE_OPENAI_API_KEY
DeepseekDEEPSEEK_API_KEY
FireworksFIREWORKS_API_KEY
GCP Vertex AI (Anthropic)GCP_VERTEX_CREDENTIALS_PATH
GCP Vertex AI (Gemini)GCP_VERTEX_CREDENTIALS_PATH
Google AI Studio (Gemini)GOOGLE_API_KEY
HyperbolicHYPERBOLIC_API_KEY
MistralMISTRAL_API_KEY
OpenAIOPENAI_API_KEY
OpenAI-CompatibleOPENAI_API_KEY
SGLangSGLANG_API_KEY
文本生成推理 (TGI)
TogetherTOGETHER_API_KEY
vLLM
XAIXAI_API_KEY

自定义凭证管理

您可以为每个提供商自定义凭证来源。

有关为每个提供商配置凭据的不同方式(例如api_key_location)的更多信息,请参阅配置参考。 另请参阅相关提供商指南,了解如何为每个提供商配置凭据的更多信息。

静态凭证

您可以为每个提供商设置替代的静态凭证。

例如,假设我们希望为OpenAI提供商使用不同的环境变量。可以通过将api_key_location设置为env::MY_OTHER_OPENAI_API_KEY来自定义变量名称。

[models.gpt_4o_mini.providers.my_other_openai]
type = "openai"
api_key_location = "env::MY_OTHER_OPENAI_API_KEY"
# ...

启动时,TensorZero Gateway会查找MY_OTHER_OPENAI_API_KEY环境变量并使用该值作为API密钥。

动态凭证

您可以在推理时动态提供API密钥。

要实现这一点,您可以在供应商配置的相关凭证字段中使用dynamic::前缀。

例如,假设我们需要为OpenAI提供商提供动态API密钥。

[models.user_gpt_4o_mini]
routing = ["openai"]
[models.user_gpt_4o_mini.providers.openai]
type = "openai"
model_name = "gpt-4o-mini"
api_key_location = "dynamic::customer_openai_api_key"

在推理时,您可以在credentials参数中提供API密钥。

from tensorzero import TensorZeroGateway
with TensorZeroGateway.build_http(gateway_url="http://localhost:3000") as client:
response = client.inference(
function_name="generate_haiku",
input={
"messages": [
{
"role": "user",
"content": "Write a haiku about artificial intelligence.",
}
]
},
credentials={
"customer_openai_api_key": "sk-..."
}
)
print(response)