使用生成响应 OpenAI APIs - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用生成响应 OpenAI APIs

Amazon Bedrock 为模型推断提供了OpenAI兼容的 API 端点,该端点由 Mantle 提供支持,Mantle 是一款用于大规模机器学习模型服务的分布式推理引擎。这些终端节点允许您在 Amazon Bedrock 模型中使用熟悉的工具,使您只需更新基本 URL OpenAI SDKs 和 API 密钥即可迁移现有应用程序,只需更新您的基本 URL 和 API 密钥即可。

主要优势包括:

  • 异步推理 — 通过响应 API 支持长时间运行的推理工作负载

  • 状态对话管理 — 自动重建上下文,无需在每个请求中手动传递对话历史记录

  • 简化工具使用 — 简化了代理工作流程的集成

  • 灵活的响应模式 — Support 支持直播和非直播响应

  • 易于迁移 — 与现有 OpenAI SDK 代码库兼容

支持的区域和终端节点

Amazon Bedrock 在以下AWS地区上市:

区域名称 区域 端点
美国东部(俄亥俄州) us-east-2 bedrock-mantle.us-east-2.api.aws
美国东部(弗吉尼亚州北部) us-east-1 bedrock-mantle.us-east-1.api.aws
美国西部(俄勒冈州) us-west-2 bedrock-mantle.us-west-2.api.aws
亚太地区(雅加达) ap-southeast-3 bedrock-mantle.ap-southeast-3.api.aws
亚太地区(孟买) ap-south-1 bedrock-mantle.ap-south-1.api.aws
亚太地区(东京) ap-northeast-1 bedrock-mantle.ap-northeast-1.api.aws
欧洲地区(法兰克福) eu-central-1 bedrock-mantle.eu-central-1.api.aws
欧洲地区(爱尔兰) eu-west-1 bedrock-mantle.eu-west-1.api.aws
欧洲(伦敦) eu-west-2 bedrock-mantle.eu-west-2.api.aws
欧洲地区(米兰) eu-south-1 bedrock-mantle.eu-south-1.api.aws
欧洲地区(斯德哥尔摩) eu-north-1 bedrock-mantle.eu-north-1.api.aws
南美洲(圣保罗) sa-east-1 bedrock-mantle.sa-east-1.api.aws

先决条件

在使用之前 OpenAI APIs,请确保您具备以下条件:

  • 身份验证-您可以使用以下方式进行身份验证:

    • 亚马逊 Bedrock API 密钥(OpenAI软件开发工具包所必需的)

    • AWS凭证(支持 HTTP 请求)

  • OpenAI软件开发工具包(可选)— 如果使用基于 SDK 的OpenAI请求,请安装 Python 开发工具包。

  • 环境变量-设置以下环境变量:

    • OPENAI_API_KEY— 设置为你的 Amazon Bedrock API 密钥

    • OPENAI_BASE_URL— 设置为您所在地区的 Amazon Bedrock 终端节点(例如, https://bedrock-mantle.us-east-1.api.aws/v1

模型 API

模型 API 允许您在由 Mantle 提供支持的 Amazon Bedrock 中发现可用的模型。使用此 API 检索可用于响应 API 和聊天完成 API 的模型列表。有关完整的 API 详细信息,请参阅OpenAI模型文档

列出可用型号

要列出可用型号,请选择首选方法的选项卡,然后按照以下步骤操作:

OpenAI SDK (Python)
# List all available models using the OpenAI SDK # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() models = client.models.list() for model in models.data: print(model.id)
HTTP request

向以下地址发出 GET 请求/v1/models

# List all available models # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables curl -X GET $OPENAI_BASE_URL/models \ -H "Authorization: Bearer $OPENAI_API_KEY"

响应 API

Responses API 提供有状态的对话管理,支持直播、后台处理和多回合互动。如需了解完整的 API 详情,请参阅OpenAI响应文档

基本请求

要创建响应,请选择首选方法的选项卡,然后按照以下步骤操作:

OpenAI SDK (Python)
# Create a basic response using the OpenAI SDK # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() response = client.responses.create( model="openai.gpt-oss-120b", input=[ {"role": "user", "content": "Hello! How can you help me today?"} ] ) print(response)
HTTP request

向以下地址发出 POST 请求/v1/responses

# Create a basic response # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables curl -X POST $OPENAI_BASE_URL/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "openai.gpt-oss-120b", "input": [ {"role": "user", "content": "Hello! How can you help me today?"} ] }'

直播回复

要以增量方式接收响应事件,请选择首选方法的选项卡,然后按照以下步骤操作:

OpenAI SDK (Python)
# Stream response events incrementally using the OpenAI SDK # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() stream = client.responses.create( model="openai.gpt-oss-120b", input=[{"role": "user", "content": "Tell me a story"}], stream=True ) for event in stream: print(event)
HTTP request

向发出 POST 请求/v1/responsesstream设置为true

# Stream response events incrementally # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables curl -X POST $OPENAI_BASE_URL/responses \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "openai.gpt-oss-120b", "input": [ {"role": "user", "content": "Tell me a story"} ], "stream": true }'

聊天完成 API

聊天完成 API 会生成对话回复。如需了解完整的 API 详情,请参阅OpenAI聊天完成文档。

创建聊天补全

要创建聊天完成功能,请选择首选方法的选项卡,然后按照以下步骤操作:

OpenAI SDK (Python)

使用环境变量配置OpenAI客户端:

# Create a chat completion using the OpenAI SDK # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() completion = client.chat.completions.create( model="openai.gpt-oss-120b", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello!"} ] ) print(completion.choices[0].message)
HTTP request

向以下地址发出 POST 请求/v1/chat/completions

# Create a chat completion # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables curl -X POST $OPENAI_BASE_URL/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "openai.gpt-oss-120b", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello!"} ] }'

启用直播

要逐步接收回复,请选择首选方法的选项卡,然后按照以下步骤操作:

OpenAI SDK (Python)
# Stream chat completion responses incrementally using the OpenAI SDK # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() stream = client.chat.completions.create( model="openai.gpt-oss-120b", messages=[{"role": "user", "content": "Tell me a story"}], stream=True ) for chunk in stream: if chunk.choices[0].delta.content is not None: print(chunk.choices[0].delta.content, end="")
HTTP request

向发出 POST 请求/v1/chat/completions stream设置为true

# Stream chat completion responses incrementally # Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables curl -X POST $OPENAI_BASE_URL/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "openai.gpt-oss-120b", "messages": [ {"role": "user", "content": "Tell me a story"} ], "stream": true }'