OpenAI Amazon Bedrock
Amazon Bedrock在AWS管理的基础设施上运行受支持的OpenAI模型。本页对照OpenAI API能力,并介绍OpenAI SDK连接方式;部署设置由所链接的AWS文档说明。模型及API兼容性决定应用能力,AWS管理模型访问、区域、路由、账单和运维控制。
Bedrock可用性如何确定
OpenAI模型通过bedrock-runtime和bedrock-mantle两个端点提供;对支持的模型,两者均兼容Responses和Chat Completions,但能力范围不同,例如托管网页搜索目前需要Mantle。应按所需能力选择,见AWS端点比较。
来源列出GPT-6 Sol、Luna可通过Runtime及us-east-1(弗吉尼亚北部)的Mantle使用;GPT-6 Astra可通过Runtime及us-west-2(俄勒冈)的Mantle使用。本页示例为us-east-2的GPT-5.6 Terra,换模型前需同步选择受支持区域。参见模型端点可用性和端点说明。
发起Responses API请求
示例使用OpenAI SDK连接Mantle。具备Bedrock提供程序的JavaScript、Python、Go、Java客户端根据区域推导基址;本页使用https://bedrock-mantle.us-east-2.api.aws/openai/v1。Ruby显式设置该路径,因为提供程序默认/v1路由不支持示例模型。
Mantle模型ID带openai.前缀。使用GPT-6 Sol/Luna时,把模型改为openai.gpt-6-sol或openai.gpt-6-luna,区域也改为us-east-1;Ruby还需修改显式base_url。Runtime使用美国推理配置ID us.openai.gpt-6-sol、us.openai.gpt-6-luna,或全球ID global.openai.gpt-6-sol、global.openai.gpt-6-luna。Runtime基址与配置见AWS Responses说明。
第一组使用环境变量AWS_BEARER_TOKEN_BEDROCK中的Bedrock API密钥。Java示例需先安装可选Bedrock提供程序:
来源示例 1(xml):
<!-- [中文] 安装/配置Bedrock可选提供程序和依赖;保留来源区域、模型及版本,未安装。 -->
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java-bedrock</artifactId>
<version>4.57.0</version>
</dependency>
通过Bedrock发送请求:
来源示例 2(javascript):
// [中文] 通过Amazon Bedrock发送Responses请求;按示例选区域及openai.模型ID,不能只更换模型不更换区域。本组使用Bedrock API密钥。
import OpenAI from "openai";
import { bedrock } from "openai/providers/bedrock";
const client = new OpenAI({
provider: bedrock({
region: "us-east-2",
apiKey: process.env.AWS_BEARER_TOKEN_BEDROCK,
}),
});
const response = await client.responses.create({
model: "openai.gpt-5.6-terra",
input: "Write a haiku about cloud infrastructure.",
});
console.log(response.output_text);
来源示例 3(python):
## [中文] 通过Amazon Bedrock发送Responses请求;按示例选区域及openai.模型ID,不能只更换模型不更换区域。本组使用Bedrock API密钥。
import os
from openai import OpenAI
from openai.providers import bedrock
client = OpenAI(
provider=bedrock(
region="us-east-2",
api_key=os.environ["AWS_BEARER_TOKEN_BEDROCK"],
)
)
response = client.responses.create(
model="openai.gpt-5.6-terra",
input="Write a haiku about cloud infrastructure.",
)
print(response.output_text)
来源示例 4(go):
// [中文] 通过Amazon Bedrock发送Responses请求;按示例选区域及openai.模型ID,不能只更换模型不更换区域。本组使用Bedrock API密钥。
package main
import (
"context"
"fmt"
"os"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/bedrock"
"github.com/openai/openai-go/v3/responses"
)
func main() {
client, err := bedrock.NewClient(context.Background(), bedrock.Config{
AWSRegion: "us-east-2",
APIKey: os.Getenv("AWS_BEARER_TOKEN_BEDROCK"),
})
if err != nil {
panic(err)
}
response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{
Model: "openai.gpt-5.6-terra",
Input: responses.ResponseNewParamsInputUnion{
OfString: openai.String("Write a haiku about cloud infrastructure."),
},
})
if err != nil {
panic(err)
}
fmt.Println(response.OutputText())
}
来源示例 5(java):
// [中文] 通过Amazon Bedrock发送Responses请求;按示例选区域及openai.模型ID,不能只更换模型不更换区域。本组使用Bedrock API密钥。
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.BedrockOpenAIOkHttpClient;
import com.openai.models.responses.ResponseCreateParams;
public final class AmazonBedrockCreateResponseExample {
private AmazonBedrockCreateResponseExample() {}
public static void main(String[] args) {
OpenAIClient client =
BedrockOpenAIOkHttpClient.builder()
.awsRegion("us-east-2")
.apiKey(System.getenv("AWS_BEARER_TOKEN_BEDROCK"))
.build();
ResponseCreateParams params =
ResponseCreateParams.builder()
.model("openai.gpt-5.6-terra")
.input("Write a haiku about cloud infrastructure.")
.build();
client.responses().create(params).output().stream()
.flatMap(item -> item.message().stream())
.flatMap(message -> message.content().stream())
.flatMap(content -> content.outputText().stream())
.forEach(text -> System.out.println(text.text()));
}
}
来源示例 6(csharp):
// [中文] 通过Amazon Bedrock发送Responses请求;按示例选区域及openai.模型ID,不能只更换模型不更换区域。本组使用Bedrock API密钥。
using System.ClientModel;
using OpenAI.Responses;
#pragma warning disable OPENAI001
string key = Environment.GetEnvironmentVariable("AWS_BEARER_TOKEN_BEDROCK")!;
ResponsesClient client = new(
new ApiKeyCredential(key),
new ResponsesClientOptions
{
Endpoint = new Uri("https://bedrock-mantle.us-east-2.api.aws/openai/v1"),
}
);
CreateResponseOptions options = new()
{
Model = "openai.gpt-5.6-terra",
};
options.InputItems.Add(
ResponseItem.CreateUserMessageItem("Write a haiku about cloud infrastructure.")
);
ResponseResult response = await client.CreateResponseAsync(options);
Console.WriteLine(response.GetOutputText());
来源示例 7(ruby):
## [中文] 通过Amazon Bedrock发送Responses请求;按示例选区域及openai.模型ID,不能只更换模型不更换区域。本组使用Bedrock API密钥。
require "openai"
client = OpenAI::Client.new(
provider: OpenAI::Providers.bedrock(
region: "us-east-2",
base_url: "https://bedrock-mantle.us-east-2.api.aws/openai/v1",
api_key: ENV.fetch("AWS_BEARER_TOKEN_BEDROCK")
)
)
response = client.responses.create(
model: "openai.gpt-5.6-terra",
input: "Write a haiku about cloud infrastructure."
)
puts(response.output_text)
来源示例 8(bash):
## [中文] 通过Amazon Bedrock发送Responses请求;按示例选区域及openai.模型ID,不能只更换模型不更换区域。本组使用Bedrock API密钥。
curl "https://bedrock-mantle.us-east-2.api.aws/openai/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK" \
-d '{
"model": "openai.gpt-5.6-terra",
"input": "Write a haiku about cloud infrastructure."
}'
长期运行应用更适合标准AWS凭证链。JavaScript、Python、Go、Java、Ruby提供程序会获取新凭证,并对每次请求尝试进行SigV4签名。凭证可来自aws login、共享配置、工作负载角色、实例或容器。
先安装相应可选依赖:
来源示例 9(shell):
## [中文] 安装/配置Bedrock可选提供程序和依赖;保留来源区域、模型及版本,未安装。
npm install @aws-sdk/credential-provider-node @smithy/hash-node @smithy/signature-v4
pip install 'openai[bedrock]'
go get github.com/openai/openai-go/v3/bedrock
bundle add aws-sdk-core
.NET目前没有同等Bedrock提供程序或AWS SigV4认证策略;可用Bedrock API密钥,或在需要凭证链时通过支持AWS签名的客户端发送HTTP请求。
来源示例 10(javascript):
// [中文] 通过Amazon Bedrock发送Responses请求;按示例选区域及openai.模型ID,不能只更换模型不更换区域。本组使用AWS凭证链与SigV4,由提供程序刷新凭证;不会创建AWS权限。
import OpenAI from "openai";
import { defaultProvider } from "@aws-sdk/credential-provider-node";
import { bedrock } from "openai/providers/bedrock/aws";
const client = new OpenAI({
provider: bedrock({
region: "us-east-2",
endpoint: "mantle",
credentialProvider: defaultProvider(),
}),
});
const response = await client.responses.create({
model: "openai.gpt-5.6-terra",
input: "Write a haiku about cloud infrastructure.",
});
console.log(response.output_text);
来源示例 11(python):
## [中文] 通过Amazon Bedrock发送Responses请求;按示例选区域及openai.模型ID,不能只更换模型不更换区域。本组使用AWS凭证链与SigV4,由提供程序刷新凭证;不会创建AWS权限。
from openai import OpenAI
from openai.providers import bedrock
client = OpenAI(
provider=bedrock(
region="us-east-2",
api_key=None,
)
)
response = client.responses.create(
model="openai.gpt-5.6-terra",
input="Write a haiku about cloud infrastructure.",
)
print(response.output_text)
来源示例 12(go):
// [中文] 通过Amazon Bedrock发送Responses请求;按示例选区域及openai.模型ID,不能只更换模型不更换区域。本组使用AWS凭证链与SigV4,由提供程序刷新凭证;不会创建AWS权限。
package main
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/bedrock"
"github.com/openai/openai-go/v3/responses"
)
func main() {
awsConfig, err := config.LoadDefaultConfig(context.Background())
if err != nil {
panic(err)
}
client, err := bedrock.NewClient(context.Background(), bedrock.Config{
AWSRegion: "us-east-2",
AWSCredentialsProvider: awsConfig.Credentials,
})
if err != nil {
panic(err)
}
response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{
Model: "openai.gpt-5.6-terra",
Input: responses.ResponseNewParamsInputUnion{
OfString: openai.String("Write a haiku about cloud infrastructure."),
},
})
if err != nil {
panic(err)
}
fmt.Println(response.OutputText())
}
来源示例 13(java):
// [中文] 通过Amazon Bedrock发送Responses请求;按示例选区域及openai.模型ID,不能只更换模型不更换区域。本组使用AWS凭证链与SigV4,由提供程序刷新凭证;不会创建AWS权限。
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.BedrockOpenAIOkHttpClient;
import com.openai.models.responses.ResponseCreateParams;
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
public final class AmazonBedrockCreateResponseWithAwsCredentialsExample {
private AmazonBedrockCreateResponseWithAwsCredentialsExample() {}
public static void main(String[] args) {
OpenAIClient client =
BedrockOpenAIOkHttpClient.builder()
.awsRegion("us-east-2")
.awsCredentialsProvider(DefaultCredentialsProvider.create())
.build();
ResponseCreateParams params =
ResponseCreateParams.builder()
.model("openai.gpt-5.6-terra")
.input("Write a haiku about cloud infrastructure.")
.build();
client.responses().create(params).output().stream()
.flatMap(item -> item.message().stream())
.flatMap(message -> message.content().stream())
.flatMap(content -> content.outputText().stream())
.forEach(text -> System.out.println(text.text()));
}
}
来源示例 14(ruby):
## [中文] 通过Amazon Bedrock发送Responses请求;按示例选区域及openai.模型ID,不能只更换模型不更换区域。本组使用AWS凭证链与SigV4,由提供程序刷新凭证;不会创建AWS权限。
require "openai"
client = OpenAI::Client.new(
provider: OpenAI::Providers.bedrock(
region: "us-east-2",
base_url: "https://bedrock-mantle.us-east-2.api.aws/openai/v1",
api_key: nil
)
)
response = client.responses.create(
model: "openai.gpt-5.6-terra",
input: "Write a haiku about cloud infrastructure."
)
puts(response.output_text)
Responses API能力可用性
能力取决于模型与端点,支持某个API不意味着支持其所有工具或响应模式。
| 能力 | OpenAI API | Amazon Bedrock |
|---|---|---|
| 文本生成 | 支持 | 支持 |
| 图像输入 | 支持 | 支持 |
| 文件输入 | 支持 | 支持 |
| 结构化输出 | 支持 | 支持 |
| 函数调用 | 支持 | 支持 |
| 异步工具调用 | 受支持模型可用 | 不支持 |
| 流式响应 | 支持 | 支持 |
| WebSocket连接 | 支持 | 不支持 |
| 轮次中引导 | 受支持模型可用 | 不支持 |
| 上下文窗口 | 依模型 | 依模型 |
| 推理力度 | 支持 | 支持 |
| 推理配置更新 | 受支持模型可用 | 不支持 |
| Pro模式 | 受支持模型可用 | 不支持 |
| 持久推理 | 受支持模型可用 | 受支持模型可用 |
| 提示缓存 | 支持 | 支持 |
| 程序化工具调用 | 受支持模型可用 | 不支持 |
| 多智能体 | 受支持模型Beta | 不支持 |
| 自定义工具 | 支持 | 支持 |
| 客户端tool_search | 支持 | 支持 |
| 托管网页搜索 | 支持 | 仅Mantle |
| 托管文件搜索 | 支持 | 不支持 |
| 计算机使用 | 支持 | 支持 |
| Shell工具 | 支持 | 不支持 |
| 图像生成工具 | 支持 | 不支持 |
| 远程MCP服务器 | 支持 | 不支持 |
Bedrock不支持async:true异步工具或configuration_update推理更新。轮次中引导依赖WebSocket,因此两种端点均不可用。客户端工具搜索与托管工具、远程MCP不同。计算机使用可用于两端点的受支持模型,由应用执行操作并回传结果,不需要Bedrock托管执行环境。
来源列出的Bedrock上下文窗口:GPT-5.4、5.5为100万词元;GPT-5.6 Sol、Terra、Luna和GPT-6 Astra为1,050,000词元。具体见AWS模型卡。
端点差异
| 能力 | Runtime | Mantle |
|---|---|---|
| GPT-6 Astra | 可用 | us-west-2可用 |
| GPT-6 Sol/Luna | 美国与全球配置 | us-east-1可用 |
| 计算机使用 | 受支持模型可用 | 受支持模型可用 |
| 流式响应 | 支持 | 支持 |
| background:true | 不支持 | 受数据保留设置限制 |
| 托管网页搜索 | 不支持 | 受支持模型可用 |
| previous_response_id续接 | 每次仍需model | 可继承上一响应模型 |
后台模式与流式、异步函数调用是不同能力。完整约定见AWS Responses文档,网页搜索权限见AWS搜索指南。
可用性与运维
AWS维护Bedrock部署及可用性:模型ID/API见模型卡,区域见模型区域列表及端点区域列表,路由见跨区域推理,提额见Bedrock配额。
AWS区域不是OpenAI数据驻留司法区域。有位置要求时,应核对推理配置的实际目标区域及AWS条款,而非只看端点URL。
数据访问与保留
- 零运维人员访问(ZOA):AWS运维人员没有技术途径登录Mantle底层计算系统或访问其中客户数据,见设计说明。
- 零数据保留(ZDR):有效保留模式为
none时,请求/响应不写入持久存储。
store:false本身不保证ZDR。有效模式为none时,Responses拒绝store:true且不可用后台模式。OpenAI模型在Bedrock的有效保留模式为default或none时,AWS不向OpenAI共享请求/响应内容。模式、资格、账户设置见AWS数据保留,例外见滥用检测。
如果图像疑似包含儿童性虐待材料(CSAM),AWS可能将被标记的输入或输出移出ZOA环境,仅为确认是否为CSAM而存储和审查,并可能向国家主管机关报告。
认证与运维
AWS管理员控制账户、模型及功能权限。凭证生命周期见API密钥,身份权限见IAM。本页SDK示例仅传入凭证,不配置AWS权限。
价格
Bedrock由AWS计费,商业区域同等服务价格与OpenAI直连对应;区域特定服务按OpenAI区域处理对应价格计费,适用Amazon商业条款。OpenAI价格见API定价,Bedrock费率、层级及选项见AWS定价和模型卡。
Bedrock Managed Agents
AWS托管智能体会话见Bedrock Managed Agents。
后续阅读
ChatGPT Work及Codex配置见Amazon Bedrock设置。

TRAE-AI编程


更多建议: