一个月前 OpenAI 调整了与 Azure 的独家排他协议,紧接着 GPT-5.5、GPT-5.4 和 Codex 就在 Amazon Bedrock 上正式 GA 了。节奏之快,说明 OpenAI 在分发渠道上不再只押一家——对已经在 AWS 上跑基础设施的团队来说,这意味着不用再跨云调 OpenAI API,模型调用直接纳入 Bedrock 的统一治理和计费体系。
三件事值得注意
定价与 AWS Commitment 打通。 Bedrock 上 GPT-5.5 / 5.4 的 token 价格与 OpenAI 官方直连一致,但消耗计入你的 AWS Compute Savings Plan 或 EDP 承诺额度。如果你已经签了 AWS 大单,这笔钱不会额外"溢出"到 OpenAI 账户——预算管控更简单。
Codex 按量计费,取消席位费。 之前 Codex 是按 seat 收费的,对偶尔用代码生成的团队来说成本不友好。现在改成 pay-per-token,和 Bedrock 其他模型一样按输入/输出 token 计量,小团队也能按需用起来。
GPT-5.4 进了 GovCloud。 这是 OpenAI 模型首次出现在 AWS GovCloud(US-East / US-West),面向需要 FedRAMP 合规的美国公共部门客户。如果你的业务受合规约束,这是一个实质性的选择扩展。
用 Bedrock 调用 GPT-5.5 的最小示例
下面用 Python boto3 演示一次完整的 Bedrock Converse API 调用。前提是你已经在 AWS Console 里为 Bedrock 启用了 GPT-5.5 模型访问权限(Bedrock Model Access 页面勾选 OpenAI 提供的模型并提交审批)。
import boto3
import json
client = boto3.client("bedrock-runtime", region_name="us-east-1")
model_id = "openai.gpt-5-5" # Bedrock 中的模型 ID,以实际 Console 显示为准
response = client.converse(
modelId=model_id,
messages=[
{
"role": "user",
"content": [{"text": "用 Python 写一个读取 S3 CSV 并返回前 5 行的函数,要求处理缺失值。"}],
}
],
inferenceConfig={
"maxTokens": 2048,
"temperature": 0.3,
},
)
# 提取回复文本
reply = response["output"]["message"]["content"][0]["text"]
print(reply)
# 查看用量
usage = response["usage"]
print(f"输入 token: {usage['inputTokens']}, 输出 token: {usage['outputTokens']}")
几点实操提醒:
model_id的确切格式以 Bedrock Console 模型目录页显示为准,OpenAI 模型上线初期 ID 可能带版本后缀(如openai.gpt-5-5:v1)。- 如果你的 IAM Role 没有
bedrock:InvokeModel权限,调用会直接报 AccessDenied。最小权限策略只需允许该 Action 并限定 Resource 为对应模型 ARN。 converseAPI 是 Bedrock 统一的多模型对话接口,不需要适配 OpenAI 原生的/v1/chat/completions格式——换模型只改modelId。
Codex 按量计费的成本估算
Codex 在 Bedrock 上按 token 计费后,你可以用下面的方式快速估算一次代码生成任务的成本:
# 假设 Codex 输入 $0.03 / 1K tokens,输出 $0.12 / 1K tokens(以 Bedrock 公布价格为准)
# 一次典型的代码补全:输入 prompt ~500 tokens,输出代码 ~800 tokens
INPUT_TOKENS=500
OUTPUT_TOKENS=800
INPUT_PRICE=0.03 # 每 1K tokens,美元
OUTPUT_PRICE=0.12 # 每 1K tokens,美元
cost=$(echo "scale=4; ($INPUT_TOKENS/1000)*$INPUT_PRICE + ($OUTPUT_TOKENS/1000)*$OUTPUT_PRICE" | bc)
echo "预估单次调用成本: \$${cost}"
运行前把 INPUT_PRICE 和 OUTPUT_PRICE 替换为 Bedrock 价格页上的实际数字。相比旧模式每月 $20/seat,一个每周调 50 次的小团队按量付费大概率更便宜;但如果你的开发者每天高频调用上千次,就要仔细对比总量了。
迁移决策清单
从 OpenAI 直连 API 迁移到 Bedrock 调用,或者在新项目里做选型,可以按这个清单逐条判断:
| 决策点 | 选 Bedrock 的理由 | 继续直连的理由 |
|---|---|---|
| 计费归属 | 已有 AWS 承诺额度,想统一账单 | OpenAI 账户余额够用,不想增加 AWS 依赖 |
| 合规要求 | 需要 GovCloud 或 AWS IAM 治理 | 业务不受 FedRAMP/SOC 约束 |
| 模型切换 | 同时用 Anthropic/Meta 等多模型,统一接口省适配成本 | 只用 OpenAI 模型,不需要跨厂商编排 |
| 延迟敏感 | Bedrock 路径多一层代理,延迟略增(通常 <50ms) | 对延迟极度敏感,直连更快 |
| 功能差异 | Bedrock Converse API 目前不支持 OpenAI 的部分高级参数(如 response_format 的 json_schema 细节) | 需要最新 OpenAI 特性,如 structured output 全量支持 |
一句话总结:如果你的基础设施已经在 AWS 上、有承诺额度要消耗、或者需要 GovCloud 合规,Bedrock 是自然选择;如果只是偶尔调 OpenAI 且对最新 API 特性依赖很深,直连仍然更灵活。多云时代,两个入口并存本身就是好消息。