API tương thích OpenAI của Amazon Bedrock: Base URL, xác thực, mô hình và mã (2026)
Có. Amazon Bedrock có API tương thích OpenAI. Trỏ OpenAI SDK tới https://bedrock-runtime.{region}.amazonaws.com/openai/v1, xác thực bằng API key của Bedrock (hoặc AWS SigV4) và truyền ID mô hình Bedrock như openai.gpt-oss-120b-1:0. Theo cách này, Bedrock phục vụ cả Chat Completions API lẫn Responses API. AWS khuyên dùng endpoint bedrock-runtime cho ứng dụng mới và giữ bedrock-mantle làm lựa chọn tương thích. Lưu ý: bedrock-runtime không triển khai GET /models. Mọi thông tin đều lấy từ tài liệu Chat Completions chính thức của Bedrock, kiểm tra ngày 20 tháng 10 năm 2026.
Hướng dẫn này trình bày cả hai endpoint, hai loại API key, ID mô hình, mã curl, Python và Node, Guardrails, giá, các lỗi bạn sẽ gặp và khi nào Bedrock phù hợp hơn một gateway đa nhà cung cấp.
Tra cứu nhanh
| Mục | Giá trị (tính đến 20/10/2026) |
|---|---|
| Base URL khuyến nghị | https://bedrock-runtime.{region}.amazonaws.com/openai/v1 |
| Base URL tương thích | https://bedrock-mantle.{region}.api.aws/v1 (một số mô hình dùng /openai/v1) |
| API OpenAI được hỗ trợ | Chat Completions, Responses (tùy mô hình), cùng Anthropic Messages API |
| Xác thực | API key Bedrock dạng Authorization: Bearer …, hoặc AWS SigV4 |
| Ví dụ ID mô hình | openai.gpt-oss-120b-1:0, openai.gpt-oss-20b-1:0, global.openai.gpt-5.6-sol |
Liệt kê mô hình qua /models |
Chỉ trên bedrock-mantle. Trên bedrock-runtime, dùng ListFoundationModels |
| Phạm vi vùng | Key và endpoint đều theo vùng |
Nguồn: Chat Completions API, Endpoint suy luận, Bắt đầu nhanh.
bedrock-runtime hay bedrock-mantle: nên dùng endpoint nào
AWS cho biết cả hai endpoint "dùng chung một công cụ suy luận Mantle bên dưới". Tên gọi chỉ một bề mặt endpoint, không phải một công cụ khác. Chúng khác nhau ở tính năng:
bedrock-runtime (khuyến nghị) |
bedrock-mantle (tương thích) |
|
|---|---|---|
| Base URL | bedrock-runtime.{region}.amazonaws.com/openai/v1 |
bedrock-mantle.{region}.api.aws/v1 |
| API | InvokeModel, Converse, Chat Completions, Responses, Messages | Chat Completions, Responses, Messages |
GET /models |
Không hỗ trợ (404 UnknownOperationException) |
Có hỗ trợ |
| Guardrails, định tuyến prompt thông minh, suy luận liên vùng | Có | Xem thẻ mô hình |
| Công cụ phía máy chủ (ví dụ tìm kiếm web), suy luận nền, Projects, Workspaces | Không | Có |
| Hạn mức | Hạn mức theo mô hình cho endpoint này | Hạn mức theo mô hình riêng |
Nguyên tắc của AWS: bắt đầu với bedrock-runtime. Chỉ chuyển sang bedrock-mantle khi mô hình hoặc tính năng bạn cần chỉ có ở đó. Trên bedrock-mantle, tiền tố đường dẫn khác nhau theo mô hình. Yêu cầu sai tiền tố sẽ báo lỗi "model … isn't supported on this route", vì vậy hãy xem bảng Programmatic Access trong thẻ mô hình.
Xác thực: API key Bedrock hay SigV4
API key của Bedrock cho phép OpenAI SDK xác thực bằng bearer token thay vì ký yêu cầu bằng thông tin xác thực AWS (tài liệu API key, 20/10/2026):
| Loại key | Thời hạn | Dựa trên | Khuyến nghị của AWS |
|---|---|---|---|
| Ngắn hạn | Tối đa 12 giờ (hoặc bằng thời lượng phiên) | Quyền của IAM principal đã tạo key | Môi trường production |
| Dài hạn | Đến thời điểm hết hạn đã cấu hình | Một IAM user riêng có gắn chính sách | Chỉ để thử nghiệm |
Lưu ý thực tế:
- Tạo key ngắn hạn trong mã bằng
pip install aws-bedrock-token-generator(Python) hoặcnpm install @aws/bedrock-token-generator(Node), và gọi provider trước mỗi yêu cầu. Provider trả về token đã lưu đệm khi token đó vẫn còn hiệu lực. - Key dài hạn chỉ hoạt động trong vùng đã tạo ra nó. Gọi sang vùng khác sẽ lỗi
Credential should be scoped to a valid region. - Giới hạn việc dùng key bằng các hành động IAM
bedrock:CallWithBearerTokenvàbedrock-mantle:CallWithBearerToken. - Các lệnh gọi API được ghi trong CloudTrail. Bản thân key thì không được ghi lại.
- Với boto3, biến
AWS_BEARER_TOKEN_BEDROCKyêu cầu boto3 1.39.0 trở lên (Bắt đầu nhanh).
Mã: gọi Bedrock bằng OpenAI SDK
curl (API key)
export OPENAI_API_KEY="<bedrock-api-key>"
curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{"model": "openai.gpt-oss-120b-1:0",
"messages": [{"role": "user", "content": "Hello from Bedrock"}]}'
curl (SigV4, không cần API key)
curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1/chat/completions" \
-H "Content-Type: application/json" \
--aws-sigv4 "aws:amz:us-east-1:bedrock" \
--user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
-d '{"model": "openai.gpt-oss-120b-1:0", "messages": [{"role": "user", "content": "Hello"}]}'
Python với key ngắn hạn tự làm mới
from aws_bedrock_token_generator import provide_token # pip install aws-bedrock-token-generator openai
from openai import OpenAI
REGION = "us-east-1"
def bedrock_client() -> OpenAI:
# provide_token() returns a cached token or mints a fresh short-term key (<= 12h)
return OpenAI(base_url=f"https://bedrock-runtime.{REGION}.amazonaws.com/openai/v1",
api_key=provide_token())
r = bedrock_client().chat.completions.create(
model="openai.gpt-oss-120b-1:0",
messages=[{"role": "user", "content": "Explain Bedrock API keys in one sentence."}],
)
print(r.choices[0].message.content, r.usage)
Node.js
import OpenAI from "openai";
import { getTokenProvider } from "@aws/bedrock-token-generator";
const provideToken = getTokenProvider();
const client = new OpenAI({
baseURL: "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1",
apiKey: await provideToken(),
});
const r = await client.chat.completions.create({
model: "openai.gpt-oss-20b-1:0",
messages: [{ role: "user", content: "Name two Bedrock endpoints." }],
});
console.log(r.choices[0].message.content);
Liệt kê mô hình
client.models.list() trả về 404 trên bedrock-runtime. Hãy chạy aws bedrock list-foundation-models --region us-east-1, hoặc trỏ SDK tới bedrock-mantle để liệt kê mô hình:
curl -s "https://bedrock-mantle.us-east-1.api.aws/v1/models" -H "Authorization: Bearer $OPENAI_API_KEY"
Thêm Bedrock Guardrail vào yêu cầu kiểu OpenAI
Guardrails được truyền qua các header bổ sung. Một trường tùy chọn trong body bật tính năng gắn thẻ đầu vào:
r = bedrock_client().chat.completions.create(
model="openai.gpt-oss-20b-1:0",
messages=[{"role": "user", "content": "What is the weather like today?"}],
extra_headers={
"X-Amzn-Bedrock-GuardrailIdentifier": "GR12345",
"X-Amzn-Bedrock-GuardrailVersion": "DRAFT",
"X-Amzn-Bedrock-Trace": "ENABLED",
},
extra_body={"amazon-bedrock-guardrailConfig": {"tagSuffix": "xyz"}},
)
Tên header lấy từ ví dụ guardrail chính thức.
Những mô hình nào dùng được với API tương thích OpenAI?
Mức hỗ trợ API khác nhau theo mô hình và theo endpoint, vì vậy hãy kiểm tra từng thẻ mô hình (bảng tương thích API). Ví dụ từ tài liệu AWS tính đến 20/10/2026:
| Mô hình | Chat Completions trên runtime | Responses trên runtime | Ghi chú |
|---|---|---|---|
openai.gpt-oss-120b-1:0 / -20b-1:0 |
Có | Không (Responses chỉ có trên mantle) | GPT OSS trọng số mở |
global.openai.gpt-5.6-sol |
Có | Có | Xuất hiện trong phần Bắt đầu nhanh của AWS, hồ sơ suy luận toàn cầu |
| Dòng GPT-6, GPT-5.x | Theo thẻ mô hình | Theo thẻ mô hình | Liệt kê trong mục OpenAI của bảng tương thích |
| Anthropic Claude | Dùng Messages API (/anthropic) |
n/a | ANTHROPIC_BASE_URL=https://bedrock-runtime.{region}.amazonaws.com/anthropic |
Giá Bedrock cho lệnh gọi tương thích OpenAI
Bạn trả theo đơn giá token thông thường của Bedrock cho mô hình đó. Giao diện tương thích OpenAI không tính phụ phí. Ví dụ từ trang giá Bedrock, 20/10/2026, cho mỗi 1 triệu token:
| Mô hình | Vùng | Đầu vào | Đầu ra |
|---|---|---|---|
| gpt-oss-20b | Châu Á – Thái Bình Dương (Sydney) | $0.0721 | $0.3090 |
| gpt-oss-120b | Châu Á – Thái Bình Dương (Sydney) | $0.1545 | $0.6180 |
| GPT OSS Safeguard 20B | Miền Đông/Tây Hoa Kỳ | $0.07 | $0.20 |
| GPT OSS Safeguard 120B | Miền Đông/Tây Hoa Kỳ | $0.15 | $0.60 |
Đơn giá khác nhau theo vùng, và Bedrock còn có các gói Priority, Flex và Batch. Dùng bộ chọn vùng trên trang giá để xem chính xác mức bạn sẽ trả.
Lỗi thường gặp và cách khắc phục
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
404 UnknownOperationException trên /models |
bedrock-runtime không triển khai Models API |
Dùng ListFoundationModels, hoặc gọi /models trên bedrock-mantle |
model … isn't supported on this route |
Sai tiền tố đường dẫn trên bedrock-mantle |
Kiểm tra thẻ mô hình xem là /v1 hay /openai/v1 |
Credential should be scoped to a valid region |
Dùng key dài hạn ngoài vùng của nó | Tạo key trong vùng đích |
Unable to locate credentials |
boto3 cũ hơn 1.39.0 bỏ qua AWS_BEARER_TOKEN_BEDROCK |
pip install --upgrade boto3 |
| Responses API không hỗ trợ GPT OSS | GPT OSS chỉ hỗ trợ Responses trên bedrock-mantle |
Dùng Chat Completions hoặc đổi endpoint |
AccessDenied |
Thiếu quyền truy cập mô hình hoặc CallWithBearerToken bị từ chối |
Bật quyền truy cập mô hình và rà soát chính sách IAM |
Bedrock, gọi OpenAI trực tiếp hay gateway đa nhà cung cấp
| Nhu cầu | Bedrock tương thích OpenAI | API trực tiếp của nhà cung cấp | Gateway đa nhà cung cấp (ví dụ Flatkey) |
|---|---|---|---|
| Ở trong tài khoản AWS, với IAM và CloudTrail | Tốt nhất | Không | Không |
| Dùng credit AWS hoặc cam kết Enterprise Discount Program (EDP) | Có | Không | Không |
| Guardrails và kiểm soát gần VPC | Có | Tùy nhà cung cấp | Tùy gateway |
| Có mô hình mới nhất ngay ngày ra mắt | Tùy mô hình | Thường có sớm nhất | Tùy trường hợp |
| Một key cho OpenAI, Anthropic, Google, Alibaba, DeepSeek, Moonshot, Zhipu | Chỉ các mô hình Bedrock lưu trữ | Không | Có |
| Quản lý key theo vùng | Bắt buộc | Không | Không |
Nếu bạn dùng AWS toàn diện, API tương thích OpenAI của Bedrock là lựa chọn gọn gàng nhất. Nếu bạn còn cần các mô hình mà Bedrock không lưu trữ, hãy giữ nguyên mã OpenAI SDK và chỉ đổi base URL. Với Flatkey, một key duy nhất tại https://router.flatkey.ai/v1 truy cập được GPT, Claude, Gemini, Qwen, DeepSeek, Kimi và GLM:
import os
from openai import OpenAI
ROUTES = {
"bedrock": OpenAI(base_url="https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1",
api_key=os.environ["AWS_BEARER_TOKEN_BEDROCK"]),
"flatkey": OpenAI(base_url="https://router.flatkey.ai/v1",
api_key=os.environ["FLATKEY_API_KEY"]),
}
def ask(route, model, prompt):
r = ROUTES[route].chat.completions.create(model=model, messages=[{"role": "user", "content": prompt}])
return r.choices[0].message.content
print(ask("bedrock", "openai.gpt-oss-120b-1:0", "hi"))
print(ask("flatkey", "qwen3.8-max", "hi")) # same SDK, different provider
print(ask("flatkey", "claude-sonnet-5-5", "hi"))
Tính đến 20/10/2026, trang gpt-6-sol trên Flatkey ghi $1.20 đầu vào và $6.00 đầu ra cho mỗi 1 triệu token, mức giá khuyến mãi so với giá niêm yết $2 / $10. Hãy so sánh với đơn giá Bedrock của bạn cho cùng mô hình. Đọc thêm: base URL của API tương thích OpenAI, tài khoản trực tiếp với nhà cung cấp hay AI API gateway và checklist AI API gateway cho doanh nghiệp.
Checklist chuyển đổi: từ ứng dụng OpenAI sang Bedrock
- Chọn vùng và xác nhận quyền truy cập mô hình trong bảng điều khiển Bedrock.
- Thay
OPENAI_BASE_URLbằnghttps://bedrock-runtime.{region}.amazonaws.com/openai/v1. - Thay key bằng provider API key Bedrock ngắn hạn. Đừng đưa key dài hạn lên production.
- Ánh xạ tên mô hình sang ID Bedrock, ví dụ
gpt-oss-120b→openai.gpt-oss-120b-1:0. - Xóa các lệnh gọi
client.models.list(), hoặc chuyển chúng sangbedrock-mantle. - Kiểm thử streaming, gọi công cụ và đầu ra có cấu trúc theo thẻ của từng mô hình.
- Thêm header guardrail ở những nơi chính sách yêu cầu.
- Kiểm tra hạn mức của endpoint đã chọn (xử lý giới hạn tốc độ).
- Theo dõi chi tiêu theo mô hình và theo nhóm (phân bổ chi phí).
Câu hỏi thường gặp
Amazon Bedrock có hỗ trợ API OpenAI không?
Có. Bedrock triển khai OpenAI Chat Completions và Responses API tại https://bedrock-runtime.{region}.amazonaws.com/openai/v1, nên mã OpenAI SDK hiện có vẫn chạy được khi bạn đổi base URL, API key và ID mô hình.
Base URL tương thích OpenAI của Bedrock là gì?
URL khuyến nghị là https://bedrock-runtime.{region}.amazonaws.com/openai/v1, ví dụ https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1. Endpoint tương thích là https://bedrock-mantle.{region}.api.aws/v1.
Làm sao xác thực OpenAI SDK với Bedrock?
Dùng API key của Amazon Bedrock làm api_key, gửi dưới dạng Authorization: Bearer. AWS khuyên dùng key ngắn hạn (tối đa 12 giờ) cho production. Ký SigV4 cũng hoạt động trên bedrock-runtime.
Vì sao models.list() lỗi trên Bedrock?
Endpoint bedrock-runtime không triển khai thao tác GET /models của OpenAI và trả về 404 UnknownOperationException. Hãy dùng ListFoundationModels, hoặc gọi /models trên bedrock-mantle.
Có thể dùng GPT OSS với Responses API trên Bedrock không?
Không phải trên bedrock-runtime. Ở đó GPT OSS hỗ trợ Chat Completions, còn Responses API cho GPT OSS chỉ có trên bedrock-mantle.
Endpoint tương thích OpenAI có tính thêm phí không?
AWS không liệt kê khoản phí riêng nào cho giao diện này. Bạn trả theo giá token chuẩn của Bedrock cho mô hình, tùy vùng và gói dịch vụ.
Kết luận
Để dùng OpenAI SDK trên AWS, hãy đặt base URL là bedrock-runtime.{region}.amazonaws.com/openai/v1, dùng API key Bedrock ngắn hạn, ánh xạ ID mô hình và bỏ models.list(). Nếu hệ thống của bạn còn cần mô hình ngoài Bedrock, cùng cách dùng SDK đó vẫn hoạt động với một key duy nhất qua router của Flatkey.
Cập nhật lần cuối: 20/10/2026 · Flatkey Team. Thông tin được trích từ tài liệu chính thức của AWS có liên kết trong bài.


