凭证管理(API密钥管理)
本指南介绍如何在TensorZero Gateway中管理凭证(API密钥)。
通常情况下,TensorZero网关会通过标准环境变量查找API密钥等凭证信息。网关在启动时会从环境变量加载凭证,您的应用程序无需直接访问这些凭证。
也就是说,您可以通过为每个提供商设置替代凭证位置来自定义此行为。 例如,您可以在推理时动态提供凭证,或为每个提供商设置替代静态凭证(例如为同一提供商使用多个API密钥)。
默认行为
默认情况下,TensorZero Gateway会从以下环境变量中查找凭证:
模型提供商 | 默认凭证 |
---|---|
Anthropic | ANTHROPIC_API_KEY |
AWS Bedrock | 使用AWS SDK凭证 |
AWS SageMaker | 使用AWS SDK凭证 |
Azure | AZURE_OPENAI_API_KEY |
Deepseek | DEEPSEEK_API_KEY |
Fireworks | FIREWORKS_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 |
Hyperbolic | HYPERBOLIC_API_KEY |
Mistral | MISTRAL_API_KEY |
OpenAI | OPENAI_API_KEY |
OpenAI-Compatible | OPENAI_API_KEY |
SGLang | SGLANG_API_KEY |
文本生成推理 (TGI) | 无 |
Together | TOGETHER_API_KEY |
vLLM | 无 |
XAI | XAI_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)