Архитектура ИИ-шлюзов20 октября 2026 г.Flatkey Team

OpenAI-совместимый API Amazon Bedrock: base URL, аутентификация, модели и код (2026)

Как вызывать Amazon Bedrock через OpenAI SDK: выбор эндпоинта, краткосрочные и долгосрочные API-ключи, ID моделей, код на curl/Python/Node, Guardrails, цены и решение типичных ошибок.

OpenAI-совместимый API Amazon Bedrock: base URL, аутентификация, модели и код (2026)

Да. У Amazon Bedrock есть OpenAI-совместимый API. Укажите в OpenAI SDK адрес https://bedrock-runtime.{region}.amazonaws.com/openai/v1, авторизуйтесь с помощью API-ключа Bedrock (или AWS SigV4) и передайте ID модели Bedrock, например openai.gpt-oss-120b-1:0. Так Bedrock обслуживает и Chat Completions API, и Responses API. Для новых приложений AWS рекомендует эндпоинт bedrock-runtime, а bedrock-mantle оставляет как вариант для совместимости. Важный нюанс: bedrock-runtime не реализует GET /models. Все сведения взяты из официальной документации Bedrock по Chat Completions и проверены 20 октября 2026 года.

В этом руководстве — оба эндпоинта, два типа API-ключей, ID моделей, код на curl, Python и Node, Guardrails, цены, ошибки, с которыми вы столкнётесь, и случаи, когда Bedrock подходит лучше, чем мультипровайдерный шлюз.

Краткая справка

Параметр Значение (на 20 октября 2026 г.)
Рекомендуемый base URL https://bedrock-runtime.{region}.amazonaws.com/openai/v1
Base URL для совместимости https://bedrock-mantle.{region}.api.aws/v1 (некоторые модели используют /openai/v1)
Поддерживаемые API OpenAI Chat Completions, Responses (в зависимости от модели), а также Anthropic Messages API
Аутентификация API-ключ Bedrock в виде Authorization: Bearer … или AWS SigV4
Примеры ID моделей openai.gpt-oss-120b-1:0, openai.gpt-oss-20b-1:0, global.openai.gpt-5.6-sol
Список моделей через /models Только на bedrock-mantle. На bedrock-runtime используйте ListFoundationModels
Регион Ключи и эндпоинты привязаны к региону

Источники: Chat Completions API, эндпоинты инференса, быстрый старт.

bedrock-runtime или bedrock-mantle: какой эндпоинт выбрать

По словам AWS, оба эндпоинта «используют один и тот же движок инференса Mantle». Название обозначает интерфейс эндпоинта, а не отдельный движок. Различаются они возможностями:

bedrock-runtime (рекомендуется) bedrock-mantle (совместимость)
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 Не реализован (404 UnknownOperationException) Поддерживается
Guardrails, интеллектуальная маршрутизация промптов, межрегиональный инференс Да См. карточку модели
Серверные инструменты (например, веб-поиск), фоновый инференс, Projects, Workspaces Нет Да
Квоты Квоты по моделям для этого эндпоинта Отдельные квоты по моделям

Практическое правило от AWS: начинайте с bedrock-runtime. Переходите на bedrock-mantle, только если нужная модель или функция доступна исключительно там. На bedrock-mantle префикс пути зависит от модели. Запрос с неверным префиксом завершится ошибкой «model … isn't supported on this route», поэтому сверяйтесь с таблицей Programmatic Access в карточке модели.

Аутентификация: API-ключи Bedrock или SigV4

API-ключи Bedrock позволяют OpenAI SDK авторизоваться bearer-токеном, а не подписывать запросы учётными данными AWS (документация по API-ключам, 20 октября 2026 г.):

Тип ключа Срок действия Основан на Рекомендация AWS
Краткосрочный До 12 часов (или длительность сессии) Права IAM-субъекта, который его создал Продакшн
Долгосрочный До заданной даты истечения Отдельный IAM-пользователь с прикреплёнными политиками Только для экспериментов

Практические советы:

  • Генерируйте краткосрочные ключи в коде с помощью pip install aws-bedrock-token-generator (Python) или npm install @aws/bedrock-token-generator (Node) и вызывайте провайдер перед каждым запросом. Пока токен действителен, возвращается кэшированный.
  • Долгосрочные ключи работают только в том регионе, где они созданы. Вызов в другом регионе завершится ошибкой Credential should be scoped to a valid region.
  • Ограничивайте использование ключей IAM-действиями bedrock:CallWithBearerToken и bedrock-mantle:CallWithBearerToken.
  • Вызовы API записываются в CloudTrail. Сами ключи не логируются.
  • В boto3 переменная AWS_BEARER_TOKEN_BEDROCK требует boto3 версии 1.39.0 или новее (быстрый старт).

Код: вызов Bedrock через OpenAI SDK

curl (API-ключ)

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, без API-ключа)

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 с автоматическим обновлением краткосрочных ключей

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);

Список моделей

client.models.list() возвращает 404 на bedrock-runtime. Выполните aws bedrock list-foundation-models --region us-east-1 или направьте SDK на bedrock-mantle, чтобы получить список моделей:

curl -s "https://bedrock-mantle.us-east-1.api.aws/v1/models" -H "Authorization: Bearer $OPENAI_API_KEY"

Как добавить Bedrock Guardrail в запрос в стиле OpenAI

Guardrails передаются через дополнительные заголовки. Необязательное поле в теле запроса включает разметку входных данных:

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"}},
)

Названия заголовков взяты из официального примера guardrail.

Какие модели работают с OpenAI-совместимым API?

Поддержка API зависит от модели и от эндпоинта, поэтому проверяйте карточку каждой модели (таблица совместимости API). Примеры из документации AWS на 20 октября 2026 г.:

Модель Chat Completions на runtime Responses на runtime Примечания
openai.gpt-oss-120b-1:0 / -20b-1:0 Да Нет (Responses только на mantle) GPT OSS с открытыми весами
global.openai.gpt-5.6-sol Да Да Указана в быстром старте AWS, глобальный профиль инференса
Семейство GPT-6, GPT-5.x По карточке модели По карточке модели Перечислены в разделе OpenAI таблицы совместимости
Anthropic Claude Используйте Messages API (/anthropic) н/д ANTHROPIC_BASE_URL=https://bedrock-runtime.{region}.amazonaws.com/anthropic

Цены Bedrock на OpenAI-совместимые вызовы

Вы платите обычную потокенную ставку Bedrock за модель. За OpenAI-совместимый интерфейс доплаты нет. Примеры со страницы цен Bedrock, 20 октября 2026 г., за 1 млн токенов:

Модель Регион Вход Выход
gpt-oss-20b Азиатско-Тихоокеанский (Сидней) $0.0721 $0.3090
gpt-oss-120b Азиатско-Тихоокеанский (Сидней) $0.1545 $0.6180
GPT OSS Safeguard 20B США Восток/Запад $0.07 $0.20
GPT OSS Safeguard 120B США Восток/Запад $0.15 $0.60

Ставки зависят от региона; кроме того, у Bedrock есть уровни Priority, Flex и Batch. Точную ставку смотрите через выбор региона на странице цен.

Типичные ошибки и их решение

Ошибка Причина Решение
404 UnknownOperationException на /models bedrock-runtime не реализует Models API Используйте ListFoundationModels или вызывайте /models на bedrock-mantle
model … isn't supported on this route Неверный префикс пути на bedrock-mantle Проверьте в карточке модели: /v1 или /openai/v1
Credential should be scoped to a valid region Долгосрочный ключ используется вне своего региона Создайте ключ в целевом регионе
Unable to locate credentials boto3 старше 1.39.0 игнорирует AWS_BEARER_TOKEN_BEDROCK pip install --upgrade boto3
Responses API не поддерживается для GPT OSS GPT OSS поддерживает Responses только на bedrock-mantle Используйте Chat Completions или смените эндпоинт
AccessDenied Нет доступа к модели или запрещён CallWithBearerToken Включите доступ к модели и проверьте политики IAM

Bedrock, OpenAI напрямую или мультипровайдерный шлюз

Задача OpenAI-совместимый Bedrock Прямой API провайдера Мультипровайдерный шлюз (например, Flatkey)
Оставаться в аккаунте AWS, с IAM и CloudTrail Лучший вариант Нет Нет
Использовать кредиты AWS или обязательства Enterprise Discount Program (EDP) Да Нет Нет
Guardrails и контроль на уровне VPC Да Зависит от провайдера Зависит от шлюза
Новейшая модель в день релиза Зависит от модели Обычно первым По-разному
Один ключ для OpenAI, Anthropic, Google, Alibaba, DeepSeek, Moonshot, Zhipu Только модели, размещённые в Bedrock Нет Да
Управление ключами по регионам Обязательно Нет Нет

Если вся ваша инфраструктура на AWS, OpenAI-совместимый API Bedrock — самый чистый вариант. Если нужны ещё и модели, которых нет в Bedrock, оставьте тот же код OpenAI SDK и просто смените base URL. С Flatkey один ключ на https://router.flatkey.ai/v1 открывает доступ к GPT, Claude, Gemini, Qwen, DeepSeek, Kimi и 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"))

На 20 октября 2026 г. страница gpt-6-sol на Flatkey указывает $1.20 за вход и $6.00 за выход на 1 млн токенов — это акционная цена при прейскурантной $2 / $10. Сравните её со своей ставкой Bedrock для той же модели. Подробнее: base URL для OpenAI-совместимых API, прямые аккаунты у провайдеров или AI API-шлюз и чек-лист корпоративного AI API-шлюза.

Чек-лист миграции: с OpenAI на Bedrock

  1. Выберите регион и подтвердите доступ к модели в консоли Bedrock.
  2. Замените OPENAI_BASE_URL на https://bedrock-runtime.{region}.amazonaws.com/openai/v1.
  3. Замените ключ на провайдер краткосрочных API-ключей Bedrock. Не используйте долгосрочные ключи в продакшне.
  4. Сопоставьте названия моделей с ID Bedrock, например gpt-oss-120b → openai.gpt-oss-120b-1:0.
  5. Уберите вызовы client.models.list() или перенесите их на bedrock-mantle.
  6. Проверьте стриминг, вызовы инструментов и структурированный вывод по карточке каждой модели.
  7. Добавьте заголовки guardrail там, где этого требует политика.
  8. Проверьте квоты выбранного эндпоинта (обработка лимитов запросов).
  9. Отслеживайте расходы по моделям и командам (распределение затрат).

Частые вопросы

Поддерживает ли Amazon Bedrock API OpenAI?

Да. Bedrock реализует OpenAI Chat Completions и Responses API по адресу https://bedrock-runtime.{region}.amazonaws.com/openai/v1, поэтому существующий код на OpenAI SDK работает после замены base URL, API-ключа и ID модели.

Какой base URL у OpenAI-совместимого API Bedrock?

Рекомендуемый адрес — https://bedrock-runtime.{region}.amazonaws.com/openai/v1, например https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1. Эндпоинт для совместимости — https://bedrock-mantle.{region}.api.aws/v1.

Как авторизовать OpenAI SDK в Bedrock?

Используйте API-ключ Amazon Bedrock в качестве api_key; он отправляется как Authorization: Bearer. Для продакшна AWS рекомендует краткосрочные ключи (до 12 часов). Подпись SigV4 на bedrock-runtime тоже работает.

Почему models.list() не работает в Bedrock?

Эндпоинт bedrock-runtime не реализует операцию OpenAI GET /models и возвращает 404 UnknownOperationException. Используйте ListFoundationModels или вызывайте /models на bedrock-mantle.

Можно ли использовать GPT OSS с Responses API в Bedrock?

Не на bedrock-runtime. Там GPT OSS поддерживает Chat Completions, а Responses API для GPT OSS доступен только на bedrock-mantle.

Есть ли доплата за OpenAI-совместимый эндпоинт?

AWS не указывает отдельной платы за этот интерфейс. Вы платите стандартную потокенную цену Bedrock за модель в своём регионе и на своём уровне.

Итог

Чтобы использовать OpenAI SDK в AWS, задайте base URL bedrock-runtime.{region}.amazonaws.com/openai/v1, используйте краткосрочные API-ключи Bedrock, сопоставьте ID моделей и откажитесь от models.list(). Если вашему стеку нужны и модели вне Bedrock, тот же подход с SDK работает с одним ключом через роутер Flatkey.

Последнее обновление: 20 октября 2026 г. · Flatkey Team. Сведения приведены по официальной документации AWS, ссылки на которую даны в тексте.