跳至内容

AWS SageMaker 入门指南

本指南展示如何设置一个最小化部署,以便通过AWS SageMaker API使用TensorZero Gateway。

AWS SageMaker模型提供程序是对其他TensorZero模型提供程序的封装,专门处理AWS SageMaker相关逻辑(例如身份验证)。例如,您可以使用它来推断部署在AWS SageMaker上的自托管模型提供程序(如Ollama)。

设置

对于这个最小化配置,您的项目目录中只需要两个文件:

  • Directoryconfig/
    • tensorzero.toml
  • docker-compose.yml

关于生产环境部署,请参阅我们的部署指南

您还需要为您的LLM模型部署一个SageMaker终端节点。 在本示例中,我们使用的是运行Ollama的容器。

配置

创建一个最小化的配置文件,定义模型和一个简单的聊天功能:

config/tensorzero.toml
[models.gemma_3]
routing = ["aws_sagemaker"]
[models.gemma_3.providers.aws_sagemaker]
type = "aws_sagemaker"
model_name = "gemma3:1b"
endpoint_name = "my-sagemaker-endpoint"
region = "us-east-1"
# ... or use `allow_auto_detect_region = true` to infer region with the AWS SDK
hosted_provider = "openai" # Ollama is OpenAI-compatible
[functions.my_function_name]
type = "chat"
[functions.my_function_name.variants.my_variant_name]
type = "chat_completion"
model = "gemma_3"

hosted_provider字段指定您在AWS SageMaker上部署的模型提供商。例如,Ollama与OpenAI兼容,因此我们使用openai作为托管提供商。或者,如果您部署的是TGI,则可以使用hosted_provider = "tgi"

您可以显式指定端点的region,或使用allow_auto_detect_region = true通过AWS SDK自动推断区域。

查看配置参考了解可选字段。相关字段取决于hosted_provider

Credentials

您必须确保网关具备访问AWS SageMaker的必要权限。 TensorZero网关将使用AWS SDK获取相关凭证。

最简单的方法是在运行网关前设置以下环境变量:

终端窗口
AWS_ACCESS_KEY_ID=...
AWS_REGION=us-east-1
AWS_SECRET_ACCESS_KEY=...

或者,您可以使用AWS SDK支持的其他认证方法。

部署 (Docker Compose)

创建一个最小化的Docker Compose配置:

docker-compose.yml
# This is a simplified example for learning purposes. Do not use this in production.
# For production-ready deployments, see: https://www.tensorzero.com/docs/gateway/deployment
services:
gateway:
image: tensorzero/gateway
volumes:
- ./config:/app/config:ro
command: --config-file /app/config/tensorzero.toml
environment:
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:?Environment variable AWS_ACCESS_KEY_ID must be set.}
- AWS_REGION=${AWS_REGION:?Environment variable AWS_REGION must be set.}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:?Environment variable AWS_SECRET_ACCESS_KEY must be set.}
ports:
- "3000:3000"
extra_hosts:
- "host.docker.internal:host-gateway"

您可以通过docker compose up命令启动网关。

推理

向网关发起推理请求:

终端窗口
curl -X POST http://localhost:3000/inference \
-H "Content-Type: application/json" \
-d '{
"function_name": "my_function_name",
"input": {
"messages": [
{
"role": "user",
"content": "What is the capital of Japan?"
}
]
}
}'