使用 Bedrock 提供的 OpenAI-Compatible API 接入第三方模型

本文介绍如何通过 Amazon Bedrock 的 OpenAI 兼容接口(bedrock-mantle endpoint),用标准 OpenAI SDK 或 curl 调用 Bedrock 上的第三方模型,以及几个容易踩的坑。

背景

AWS Bedrock 在 2025 年底推出了 OpenAI-compatible API,允许开发者直接用 OpenAI SDK 调用 Bedrock 上的模型,不再需要适配 Converse/InvokeModel 原生接口。对于已有 OpenAI 集成的项目,迁移成本大幅降低。

Endpoint 选择

Bedrock OpenAI 兼容接口有两个 endpoint:

Endpoint支持 API说明
bedrock-mantle.{region}.api.aws Chat Completions, Responses API 官方推荐,Mantle 推理引擎,支持第三方模型
bedrock-runtime.{region}.amazonaws.com Chat Completions(+ 原生 Converse/Invoke) 主要走原生接口,兼容层有限

⚠️ 限制:Claude / Anthropic 模型不在 bedrock-mantle 上。 如果你要调 Claude,必须用 bedrock-runtime 的原生 Converse API,不能走 bedrock-mantle 的 OpenAI 兼容层。

前置条件

  • AWS 账号,Bedrock 已开启模型访问权限
  • 已创建 IAM User,具备 AmazonBedrockFullAccess 或对应 Bedrock 权限
  • 准备好 Bedrock API Key(见下方生成步骤)

生成 Bedrock API Key

方式一:Console

Bedrock → API keys → Generate long-term API keys

方式二:CLI

aws iam create-service-specific-credential \
  --user-name <iam-user> \
  --service-name bedrock.amazonaws.com

说明:

  • Short-term key:有效期 ≤12 小时
  • Long-term key:可配置过期时间
  • 生产环境建议用 IAM Role + SigV4,避免长期 key 泄露风险

用 OpenAI SDK 调用

export OPENAI_BASE_URL="https://bedrock-mantle.us-west-2.api.aws/v1"
export OPENAI_API_KEY="<bedrock-api-key>"
from openai import OpenAI
client = OpenAI()

# Chat Completions
completion = client.chat.completions.create(
    model="deepseek.v3.1",
    messages=[{"role": "user", "content": "Hello!"}]
)

# Responses API(有状态)
response = client.responses.create(
    model="deepseek.v3.1",
    input=[{"role": "user", "content": "Hello!"}]
)

curl 验证

curl -X POST "https://bedrock-mantle.us-west-2.api.aws/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "deepseek.v3.1",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

可用模型(bedrock-mantle,截至 2026-03)

# 列出所有可用模型
curl "https://bedrock-mantle.us-west-2.api.aws/v1/models" \
  -H "Authorization: Bearer $OPENAI_API_KEY"

当前支持的 provider 及部分代表性模型:

Provider代表性模型
DeepSeekdeepseek.v3.1, deepseek.v3.2
Googlegoogle.gemma-3-4b-it, google.gemma-3-12b-it, google.gemma-3-27b-it
MiniMaxminimax.minimax-m2, minimax.minimax-m2.5
Mistralmistral.mistral-large-3-675b-instruct, mistral.devstral-2-123b
Moonshot (Kimi)moonshotai.kimi-k2.5, moonshotai.kimi-k2-thinking
NVIDIAnvidia.nemotron-nano-3-30b
OpenAIopenai.gpt-oss-20b, openai.gpt-oss-120b
Qwenqwen.qwen3-32b, qwen.qwen3-235b-a22b-2507
ZAIzai.glm-4.6, zai.glm-5

不支持:Claude / Anthropic 系列。

可用 Region

us-east-1, us-east-2, us-west-2, ap-south-1, ap-southeast-3, ap-northeast-1, eu-central-1, eu-west-1, eu-west-2, eu-south-1, eu-north-1, sa-east-1

问题排查

三方工具接入失败(HTTP 404)

部分AI工具调用 bedrock-mantle 会返回 404,原因是工具内部可能调用 /v1/completions(旧 Completions 接口),而 bedrock-mantle 只支持 /v1/chat/completions

直接 curl /v1/chat/completions 是正常的,问题出在工具的路径映射。

临时方案: 在工具和 bedrock-mantle 之间加一层兼容代理(如 LiteLLM),做路径转发。

速查

场景方案
用 OpenAI SDK 调第三方模型bedrock-mantle + Bedrock API Key
调 Claudebedrock-runtime + Converse API
生产环境认证IAM Role + SigV4
列出可用模型GET /v1/models

参考

Next Post Previous Post
No Comment
Add Comment
comment url