OpenAI 模型与 Codex 登陆 Amazon Bedrock:正式可用,可直接投产

2026-06-02 33 预计阅读时间:1 分钟
来源:aws.amazon.com AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:8 分钟

过去想在 AWS 上跑 OpenAI 模型,要么自建代理层转发 API,要么把流量引到 OpenAI 自己的端点——两种方式都增加了运维复杂度和数据合规风险。现在 GPT-5.5、GPT-5.4 以及 Codex 在 Amazon Bedrock 上正式 GA(Generally Available),意味着你可以用 Bedrock 的统一推理引擎直接调用这些模型,把它们塞进生产应用和 Agent 里,不需要额外的中间层。

三款模型各自定位

Bedrock 上可用的三款 OpenAI 模型覆盖了不同场景:

  • GPT-5.5——旗舰级通用模型,适合复杂推理、长文档理解、多步骤 Agent 编排。
  • GPT-5.4——平衡性能与成本,适合日常对话、内容生成、结构化提取等中等复杂度任务。
  • Codex——专为代码生成与执行设计,能理解项目上下文、写出可运行代码,适合开发辅助和自动化流水线。

三款模型共享 Bedrock 的高性能推理引擎,延迟和吞吐表现由 Bedrock 底层管控,不需要你自己操心模型服务化。

用 boto3 调用:从零到第一次请求

下面给出一个最小可运行的 Python 示例,使用 boto3 通过 Bedrock 调用 GPT-5.4。前提是你已经在 AWS 控制台里为 Bedrock 启用了 OpenAI 模型的访问权限(Bedrock 控制台 → Model access → 勾选 OpenAI 提供的模型 → Enable)。

import boto3
import json

# 创建 Bedrock Runtime 客户端(region 选你启用模型访问的区域)
client = boto3.client("bedrock-runtime", region_name="us-east-1")

# 模型 ID 格式:提供方前缀 + 模型名
# 实际模型 ID 请以 Bedrock 控制台显示为准,此处为示意格式
model_id = "openai.gpt-5-4"

# 构造请求体——OpenAI 在 Bedrock 上的请求格式与原生 API 类似
body = {
    "messages": [
        {"role": "system", "content": "你是一位资深后端工程师,用中文回答。"},
        {"role": "user",   "content": "用 Python 写一个读取 S3 文件内容的函数,要求处理异常并返回字节。"}
    ],
    "max_tokens": 1024,
    "temperature": 0.2,
}

response = client.invoke_model(
    modelId=model_id,
    contentType="application/json",
    accept="application/json",
    body=json.dumps(body),
)

result = json.loads(response["body"].read())
print(result["choices"][0]["message"]["content"])

运行前需要:

  1. 安装依赖:pip install boto3
  2. 配置 AWS 凭证(aws configure 或环境变量 AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY
  3. 在 Bedrock 控制台启用对应模型的访问权限

注意:模型 ID 的具体字符串以 Bedrock 控制台 Model catalog 页面显示为准。上面 openai.gpt-5-4 是示意格式,实际可能是 openai.gpt5-4 或包含版本号后缀。部署前先在控制台确认。

Codex 实战:让模型写代码并执行

Codex 的核心能力是理解代码上下文、生成可运行代码。下面演示一个 Agent 场景——把 Codex 嵌入自动化流水线,让它根据需求描述生成脚本:

import boto3
import json

client = boto3.client("bedrock-runtime", region_name="us-east-1")

# Codex 模型 ID(以控制台为准)
codex_model_id = "openai.codex"

task_description = """
写一个 Shell 脚本,功能如下:
1. 接收一个目录路径参数
2. 找出该目录下所有超过 7 天未修改的 .log 文件
3. 将这些文件压缩为 .tar.gz 并删除原文件
4. 输出压缩后的文件列表
"""

body = {
    "messages": [
        {"role": "system", "content": "You are Codex, a code generation assistant. Output only runnable code."},
        {"role": "user",   "content": task_description},
    ],
    "max_tokens": 2048,
    "temperature": 0.0,  # 代码生成用低温度,减少随机性
}

response = client.invoke_model(
    modelId=codex_model_id,
    contentType="application/json",
    accept="application/json",
    body=json.dumps(body),
)

result = json.loads(response["body"].read())
generated_code = result["choices"][0]["message"]["content"]
print(generated_code)

# 可选:把生成结果写入文件直接执行
# with open("cleanup_logs.sh", "w") as f:
#     f.write(generated_code)

temperature 设为 0 是代码生成的实用选择——你希望输出稳定、可复现,而不是每次跑出不同风格的脚本。

Bedrock Agent 配置示例

如果你的场景是构建一个多步骤 Agent,Bedrock 的 Agent 服务可以直接挂载 OpenAI 模型作为推理核心。以下是一个最小化的 Agent 创建 YAML 配置思路(通过 AWS CLI 或 SDK 部署):

# 用 AWS CLI 创建 Bedrock Agent,指定 OpenAI 模型作为 foundation model
aws bedrock-agent create-agent \
  --agent-name "log-cleanup-agent" \
  --foundation-model-id "openai.codex" \
  --instruction "你是一个运维自动化助手。用户描述清理需求后,生成对应的 Shell 脚本并解释每一步。" \
  --region us-east-1

创建 Agent 后,还需要关联 Action Group(定义 Agent 可调用的工具)和 Knowledge Base(注入项目文档或运维手册),这些步骤在 Bedrock 控制台里可视化完成比纯 CLI 更直观。

投产前的几件事

把 OpenAI 模型搬上 Bedrock 不等于直接甩给生产流量,有几个点值得提前想清楚:

考虑项 建议
模型 ID 确认 Bedrock 控制台 → Model catalog → 找到 OpenAI 提供的模型,复制精确的 model ID,别靠猜
区域可用性 不是所有 AWS 区域都上线了 OpenAI 模型,先查 Bedrock 区域支持列表
定价模型 Bedrock 按 token 计费,不同模型价格不同;Codex 可能按输入/输出 token 分级计价,投产前用 Price calculator 估算
延迟与并发 Bedrock 支持 Provisioned Throughput(预留吞吐),高 QPS 场景建议提前预留,避免突发限流
数据合规 通过 Bedrock 调用,数据留在 AWS 体系内,不经过 OpenAI 端点;对有数据驻留要求的团队这是关键优势
模型切换 Bedrock 的统一 API 让你可以在 OpenAI 和其他提供方(Anthropic、Meta 等)之间一行代码切换模型,方便做 A/B 对比

一句话总结:如果你已经在用 Bedrock 做模型推理,现在可以直接把 OpenAI 的三款模型加入你的模型池,不用改架构,不用加代理层。如果你之前是直接调 OpenAI API,现在有了数据留在 AWS 内、推理引擎统一管理的替代路径。先在控制台启用模型访问,跑一个 boto3 请求验证连通性,再决定是否把流量切过来。


相关推荐