AWS SageMaker 入门指南
本指南展示如何设置一个最小化部署,以便通过AWS SageMaker API使用TensorZero Gateway。
AWS SageMaker模型提供程序是对其他TensorZero模型提供程序的封装,专门处理AWS SageMaker相关逻辑(例如身份验证)。例如,您可以使用它来推断部署在AWS SageMaker上的自托管模型提供程序(如Ollama)。
设置
对于这个最小化配置,您的项目目录中只需要两个文件:
Directoryconfig/
- tensorzero.toml
- docker-compose.yml
关于生产环境部署,请参阅我们的部署指南。
您还需要为您的LLM模型部署一个SageMaker终端节点。 在本示例中,我们使用的是运行Ollama的容器。
配置
创建一个最小化的配置文件,定义模型和一个简单的聊天功能:
[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 SDKhosted_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-1AWS_SECRET_ACCESS_KEY=...
或者,您可以使用AWS SDK支持的其他认证方法。
部署 (Docker Compose)
创建一个最小化的Docker Compose配置:
# 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?" } ] } }'