跳到正文
AWS Machine Learning Blog· Roopesh Ramklass·· 3 小时前AI 评分31

Amazon Bedrock 跨区域推理面向加拿大开放 OpenAI GPT 模型访问

Access OpenAI GPT models on Amazon Bedrock from Canada with cross-Region inference

AI 导读

加拿大用户现可通过 Amazon Bedrock 跨区域推理(CRIS),在 Canada (Central) 和 Canada West (Calgary) 两个区域访问 OpenAI GPT-5.6(Sol、Terra、Luna)、GPT-6(Astra、Sol、Luna)和 GPT-6.1 Sol 模型。

正文 · AI 翻译

在 Amazon Bedrock 上构建生成式 AI 应用的加拿大组织,通常需要从加拿大 AWS 区域访问最新的基础模型(FM),例如 OpenAI GPT-6.1、OpenAI GPT-6 和 GPT-5.6。借助 Amazon Bedrock 跨区域推理(CRIS),您现在可以从加拿大访问这些模型。OpenAI GPT-5.6 模型(Sol、Terra 和 Luna)、GPT-6(Astra、Sol 和 Luna)以及 GPT-6.1 Sol 已在加拿大(中部)和加拿大西部(卡尔加里)区域推出。推理在北美处理,数据驻留控制将在本文稍后介绍。

跨区域推理是一种容量机制。您的应用程序调用源区域中的 Amazon Bedrock Runtime 端点,然后 Amazon Bedrock 会将请求路由到受支持的目标区域进行处理。通过这种方式,您可以访问更大的容量池,帮助您的应用程序在需求高峰期间维持吞吐量。您无需在应用程序中管理目标区域的路由。

在本文中,我们将介绍可从加拿大访问的 GPT-5.6、GPT-6 和 GPT-6.1 模型,以及为它们提供服务的跨区域推理配置文件。然后,我们将展示如何设置权限,并使用 OpenAI Responses API、Chat Completions API 和 Amazon Bedrock Converse API 调用这些模型。对于 Responses API,我们将提供流式传输和工具使用示例。最后,我们将介绍如何申请配额提升、查看源区域中可用的可观测性信号,以及完成后的清理工作。

可从加拿大访问的模型

借助 Amazon Bedrock,您可以通过跨区域推理在加拿大访问三个 OpenAI 模型系列。下表总结了每个模型及其定位。

模型 定位
GPT-6.1 Sol 适用于性能和成本都很重要的任务的强大推理与编程能力
GPT-6 Astra 复杂的端到端推理和智能体任务
GPT-6 Sol 适用于经常性任务的强大推理与编程能力,经济性适合常规使用
GPT-6 Luna 面向高容量重复任务的快速、低成本推理,并可为每次请求调整推理力度
GPT-5.6 Sol 高推理、编程和智能体工作负载
GPT-5.6 Terra 面向日常生产的均衡性能与成本
GPT-5.6 Luna 面向高容量、延迟敏感应用的快速且经济实惠的选择

这些模型接受文本和图像输入,返回文本,并支持 100 万 token 的上下文窗口、推理模式和工具调用。GPT-6.1 Sol 支持相同的上下文窗口和工具调用,其模型卡片中记录了额外的输入和输出模态。GPT-5.6、GPT-6 和 GPT-6.1 还支持 Amazon Bedrock 上的提示词缓存(参见“提示词缓存”一节)。这些模型可通过 OpenAI Responses API、OpenAI Chat Completions API 和 bedrock-runtime 端点上的 Amazon Bedrock Converse API 访问。

有关定价,请参阅 Amazon Bedrock 定价。有关各模型的区域可用性,请参阅 Amazon Bedrock 用户指南中的模型卡片。

来自加拿大的跨区域推理配置文件

Amazon Bedrock 推理配置文件是逻辑标识符,您可以用它替代原始模型 ID。每个配置文件定义一个模型以及 Amazon Bedrock 可以将请求路由到的一组区域。可从加拿大使用两种配置文件类型:

  • 美国地理(前缀为 us.)配置文件会将请求路由到您的加拿大源区域和美国区域。当您的工作负载要求推理处理保留在北美(加拿大和美国)境内时,请选择此配置文件。
  • 全球(前缀为 global.)配置文件会将请求路由到已部署该模型的受支持商用 AWS 区域。这可以在请求时利用更大的容量池。

端点的可用性因模型和源区域而异,如下表所示。

模型 美国地理配置文件 全球配置文件
GPT-6.1 Sol ca-central-1, ca-west-1 ca-central-1, ca-west-1
GPT-6 Astra / Sol / Luna ca-central-1, ca-west-1 ca-central-1, ca-west-1
GPT-5.6 Sol / Terra / Luna ca-central-1, ca-west-1 ca-central-1

配置文件成员资格和模型可用性可能会发生变化。GPT-5.6 模型的全球配置文件仅在 ca-central-1 起可用。从 ca-west-1 开始,请对美国地理配置文件使用 GPT-5.6。在部署之前,请使用 AWS Command Line Interface (AWS CLI) 或在控制台上(参见下一节)验证您的源区域的有效配置文件,或参阅 跨区域推理支持文档。

入门指南

以下各节介绍了从您的加拿大源区域调用这些模型所需的设置和代码。

先决条件

在开始之前,请确认您具备以下条件:

  • 一个已启用加拿大(中部)ca-central-1 或加拿大西部(卡尔加里)ca-west-1 区域作为源区域的 AWS 账户。
  • 一个具有调用推理配置文件权限的 AWS Identity and Access Management (IAM) 角色或用户(参见 设置权限)。
  • 一个允许您源区域中推理配置文件的服务控制策略(SCP)(如果您的组织实施 SCP)(参见 SCP 注意事项)。
  • Python 3.9 或更高版本,并安装了 openai、boto3 和 aws-bedrock-token-generator 软件包。

设置权限

为了快速探索,请附加 AWS 托管策略 AmazonBedrockLimitedAccess。对于具有更严格访问控制的生产工作负载,请使用最小权限的自定义策略。以下示例授予从 ca-central-1 访问 GPT-6 Astra 全球配置文件的权限:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["bedrock:InvokeModel*"],
      "Resource": [
        "arn:aws:bedrock:ca-central-1::inference-profile/global.openai.gpt-6-astra"
      ]
    },
    {
      "Effect": "Allow",
      "Action": ["bedrock:InvokeModel*"],
      "Resource": ["arn:aws:bedrock:*::foundation-model/openai.gpt-6-astra"],
      "Condition": {
        "StringLike": {
          "bedrock:InferenceProfileArn": "arn:aws:bedrock:ca-central-1::inference-profile/global.openai.gpt-6-astra"
        }
      }
    }
  ]
}

如果您通过 API 密钥路径(用于 OpenAI SDK 的持有者令牌)进行身份验证,还需授予 bedrock:CallWithBearerToken。对于 Responses API,请在 arn:aws:bedrock:ca-central-1:*:project/default 上添加 bedrock:InvokeModel。

SCP 注意事项

如果您的组织通过 SCP 限制区域,请使用 bedrock:InferenceProfileArn 条件键来允许 CRIS 流量,同时阻止对未批准区域的直接调用。以下 SCP 会拒绝在您批准的源区域之外进行 Amazon Bedrock 推理,除非该请求使用了 CRIS 推理配置文件:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyBedrockOutsideCanadaUnlessCris",
      "Effect": "Deny",
      "Action": ["bedrock:InvokeModel*"],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": ["ca-central-1", "ca-west-1"]
        },
        "ArnNotLike": {
          "bedrock:InferenceProfileArn": [
            "arn:aws:bedrock:*:*:inference-profile/us.openai.*",
            "arn:aws:bedrock:*:*:inference-profile/global.openai.*"
          ]
        }
      }
    }
  ]
}

有了此条件,即使这些区域被您的 SCP 以其他方式拒绝,Amazon Bedrock 也可以路由到该配置文件的目标区域。您所选配置文件中的每个目标区域都必须被允许,请求才能成功。更多详情,请参阅 在多账户环境中设置跨区域推理。

验证有效的推理配置文件

在调用模型之前,您可以使用 AWS CLI 验证您的源区域中哪些配置文件是有效的。以下命令列出 ca-central-1 中有效的 OpenAI 配置文件。要从卡尔加里运行相同的检查,请将 ca-central-1 替换为 ca-west-1。

aws bedrock list-inference-profiles \
    --region ca-central-1 \
    --type-equals SYSTEM_DEFINED \
    --query "inferenceProfileSummaries[?contains(inferenceProfileId, 'openai')].[inferenceProfileId,status]" \
    --output table

Amazon Bedrock 控制台提供相同的视图。打开控制台,选择 加拿大(中部) 或 加拿大西部(卡尔加里) 作为您的区域,在 推理 下选择 跨区域推理,然后查看可用的配置文件。

以下屏幕截图显示了 Amazon Bedrock 控制台上加拿大(中部)区域列出的处于活动状态的 OpenAI 推理配置文件。

Amazon Bedrock console listing active OpenAI cross-Region inference profiles for the Canada (Central) Region

图 1:Amazon Bedrock 控制台上处于活动状态的 OpenAI 跨区域推理配置文件(加拿大(中部))

通过 Amazon Bedrock Runtime 调用模型

GPT-5.6、GPT-6 和 GPT-6.1 在 bedrock-runtime 端点上支持三种访问路径:OpenAI Responses API、OpenAI Chat Completions API 和 Amazon Bedrock Converse API。OpenAI 兼容 API 通过该端点的 /openai/v1 路径调用。该端点接受 AWS Signature Version 4(SigV4)或 Amazon Bedrock API 密钥。

以下示例使用 Amazon Bedrock token generator for Python 根据您当前的 AWS 凭证创建一个短期 Amazon Bedrock API 密钥,这样您的应用程序就无需存储静态密钥。

OpenAI Responses API

对于已经使用带有 Responses API 的 OpenAI SDK 的应用程序,请将客户端指向区域性的 Amazon Bedrock Runtime 端点,并将推理配置文件 ID 作为模型传入。

from aws_bedrock_token_generator import provide_token
from openai import OpenAI

region = "ca-central-1"  # Use "ca-west-1" for Calgary
client = OpenAI(
    base_url=f"https://bedrock-runtime.{region}.amazonaws.com/openai/v1",
    api_key=provide_token(region=region),
)

response = client.responses.create(
    model="global.openai.gpt-6-astra",
    input="What are the key considerations for AI governance in Canadian financial services?",
    max_output_tokens=1024,
)
print(response.output_text)

对于流式输出,设置 stream=True 并遍历响应事件,在文本到达时打印:

stream = client.responses.create(
    model="global.openai.gpt-6-luna",
    input="List five generative AI use cases for Canadian healthcare.",
    max_output_tokens=512,
    stream=True,
)
for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="", flush=True)

OpenAI Chat Completions API

OpenAI Chat Completions 格式可以通过同一个端点使用。

response = client.chat.completions.create(
    model="global.openai.gpt-5.6-terra",
    messages=[{"role": "user", "content": "Summarize recent AI regulatory trends in Canada."}],
    max_completion_tokens=1024,
    reasoning_effort="low",
)
print(response.choices[0].message.content)

有关支持的参数的完整列表(包括推理力度级别),请参阅 Amazon Bedrock 用户指南中的模型卡片。

Amazon Bedrock Converse API

当您的应用程序通过 AWS SDK 调用 Amazon Bedrock 时,请使用 Converse API。Boto3 通过标准的 AWS 凭证链解析凭证。

import boto3

bedrock = boto3.client("bedrock-runtime", region_name="ca-central-1")
response = bedrock.converse(
    modelId="us.openai.gpt-5.6-terra",
    messages=[{"role": "user", "content": [{"text": "Summarize recent AI regulatory trends in Canada."}]}],
    inferenceConfig={"maxTokens": 1024},
)
# GPT-5.6 and GPT-6 may return a reasoningContent block alongside the text.
# Select the block that contains the text output.
text_output = next(block["text"] for block in response["output"]["message"]["content"] if "text" in block)
print(text_output)

通过更改推理配置文件 ID,同样的调用也适用于 GPT-6 Sol、GPT-6 Luna 和 GPT-6.1 Sol。以下示例对 GPT-6 Sol 使用美国地理配置文件,对 GPT-6 Luna 使用全球配置文件。两者均在 ca-central-1 完成验证。

# GPT-6 Sol, GPT-6 Luna, and GPT-6.1 Sol are called the same way. Swap the inference profile ID, and choose a us. (US geographic) or global. profile to match your data boundary.
# For example, GPT-6.1 Sol via the US geographic profile: modelId="us.openai.gpt-6.1-sol"
# GPT-6 Sol via the US geographic profile: strong reasoning and coding for complex work.
response = bedrock.converse(
    modelId="us.openai.gpt-6-sol",
    messages=[{"role": "user", "content": [{"text": "Summarize recent AI regulatory trends in Canada."}]}],
    inferenceConfig={"maxTokens": 512},
)

# GPT-6 Luna via the global profile: fast, low-cost inference for high-volume tasks such as classification.
response = bedrock.converse(
    modelId="global.openai.gpt-6-luna",
    messages=[{"role": "user", "content": [{"text": "Classify this ticket as BILLING, TECHNICAL, or OTHER: ..."}]}],
    inferenceConfig={"maxTokens": 256},
)

工具使用

这些模型支持客户端工具使用(函数调用)。在 tools 参数中定义工具,模型将返回一个结构化的工具调用请求,供您的应用程序执行。

response = client.responses.create(
    model="global.openai.gpt-6-astra",
    input="What's the current exchange rate from CAD to USD?",
    tools=[{
        "type": "function",
        "name": "get_exchange_rate",
        "parameters": {
            "type": "object",
            "properties": {
                "from_currency": {"type": "string"},
                "to_currency": {"type": "string"}
            }
        }
    }],
)

# The model returns a tool-call request rather than text.
for item in response.output:
    if item.type == "function_call":
        print(f"Tool: {item.name}, Args: {item.arguments}")

提示词缓存

GPT-5.6、GPT-6 和 GPT-6.1 在 Amazon Bedrock 上支持提示词缓存,以降低重复提示词前缀的成本和延迟。隐式缓存无需更改您的代码:Amazon Bedrock 会自动缓存 1,024 个 token 或更长的符合条件的提示词前缀。后续请求中读取的缓存 token 以折扣价计费,且不计入您每分钟 token 配额。缓存 token 会显示在响应的用量对象以及 Amazon CloudWatch 指标中,以便您跟踪使用情况。有关缓存写入定价、最小前缀大小以及对显式缓存断点的支持,请参阅提示词缓存文档和各个模型卡片。

配额管理

bedrock-runtime 端点上的跨区域推理配额按每个模型每分钟 token 数(TPM)计量。每个配额将输入和输出 token 合并计入同一个限制。美国地理配置文件和全球推理配置文件拥有独立的配额分配,因此在两者之间切换会改变您所使用的配额池。

Token 消耗包括输入 token、缓存写入输入 token 和输出 token。输出 token 会乘以模型的 burndown rate(消耗系数),因此输出密集的工作负载消耗配额的速度比原始 token 数量显示的更快。在生产部署之前,请尽早申请配额提升并监控配额使用率。使用具有代表性的提示词、输出长度、流式行为、并发量和峰值流量进行测试。

如需请求提高配额,请按照以下步骤操作:

  1. 在 ca-central-1 或 ca-west-1 中打开服务配额控制台。
  2. 选择 Amazon Bedrock,然后为所需模型找到名为“Cross-Region InvokeModel tokens per minute”的配额。
  3. 选择在账户级别请求提高配额,输入目标值,然后提交请求。

有关令牌用量和成本的追踪方式详情,请参阅在 Amazon Bedrock 中追踪用量和成本。

可观测性

由于这些模型通过 Amazon Bedrock Runtime API 运行,通过推理配置文件发出的请求会与按需请求一样出现在您的可观测性工具中。调用日志和 Amazon CloudWatch 指标记录在您的源区域中。无论请求在何处处理,这一点都成立。您的可观测性数据保持集中在一处。

  • AWS CloudTrail logs every request, recording which destination Region served it in the additionalEventData.inferenceRegion field. For example:
    "additionalEventData": {
      "inferenceProfileArn": "arn:aws:bedrock:ca-central-1:111122223333:inference-profile/global.openai.gpt-6-astra",
      "inferenceRegion": "us-west-2"
    }
  • Amazon CloudWatch 指标按推理配置文件发布,涵盖调用次数、令牌数量、延迟、节流和错误。
  • 模型调用日志记录将完整的请求和响应负载传送到 Amazon Simple Storage Service(Amazon S3)或 Amazon CloudWatch Logs。要在 Amazon Bedrock 控制台上启用它,请选择设置,然后选择模型调用日志记录。您也可以调用 PutModelInvocationLoggingConfiguration API。该功能默认关闭。
  • AWS Data Exports 按模型和配置文件逐项列出支出。

Amazon CloudWatch Coding Agent Insights

如果您使用这些模型为 OpenAI Codex 等 AI 编程助手提供支持,Amazon CloudWatch Coding Agent Insights 可提供专属仪表板。它可展示令牌用量、API 请求次数、活跃用户数,以及按部门、团队和环境等维度的成本归集。要启用它,请将您的编程智能体配置为向 Amazon CloudWatch 导出遥测数据。设置步骤请参阅为 OpenAI Codex 设置 OpenTelemetry。

清理

为避免测试后产生持续费用,请删除您创建的资源:

  1. 关闭模型调用日志记录。在 Amazon Bedrock 控制台上,选择设置,然后选择模型调用日志记录,或者调用 DeleteModelInvocationLoggingConfiguration。这将停止向 Amazon S3 和 Amazon CloudWatch Logs 传送日志。
  2. 删除或分离为测试而创建的 IAM 策略及任何 Amazon Bedrock API 密钥。

推理配置文件本身是系统定义的,在不使用时不会产生费用。

安全与合规

跨区域推理旨在保护传输中和静态的数据。请求通过使用 TLS 1.2+ 加密的 AWS 私有骨干网传输,而非公共互联网。对于加拿大客户,您的静态数据默认保留在源区域中。这包括调用日志、知识库和配置。只有临时性的推理计算发生在目标区域,且默认情况下模型提供商无法访问您的提示词或生成内容。

针对 OpenAI 模型有一项特别注意事项。被自动滥用分类器标记的内容可能会在目标区域保留最长 30 天以供审查。如果您希望将处理范围限制在北美(加拿大和美国),可以选择美国地理配置文件。我们建议与您的合规团队一起审阅Amazon Bedrock 滥用检测。

有关加拿大数据驻留模式的更详细说明,请参阅跨区域推理与加拿大数据驻留:技术架构指南。

结论

在本文中,我们展示了如何从加拿大访问 OpenAI GPT-5.6(Sol、Terra 和 Luna)、GPT-6(Astra、Sol 和 Luna)以及 GPT-6.1 Sol。通过 Amazon Bedrock 上的跨区域推理,这些模型在 Canada (Central) 和 Canada West (Calgary) 区域可用。我们介绍了可用的推理配置文件、如何设置权限和示例 SCP,以及如何使用 Responses、Chat Completions 和 Converse API 调用这些模型。对于 Responses API,我们提供了流式传输和工具使用的示例。我们还展示了如何请求提高配额、查看使用情况以及清理测试资源。

要开始使用,请查看 Amazon Bedrock 用户指南中的 OpenAI 模型卡片,然后打开 Amazon Bedrock 控制台,通过推理配置文件发送测试提示。有关定价,请参阅 Amazon Bedrock 定价页面。

如果您有问题或反馈,请在本文下方留言。


关于作者

来源: AWS Machine Learning Blog · aws.amazon.com