AWS Transform:一键扫描代码库,把第三方 AI SDK 调用迁移到 Bedrock
如果你的项目里散落着各种 AI SDK 调用——这里一个 OpenAI 的 chat.completions.create,那里一个第三方模型的调用,可能还有直连 Anthropic API 的代码——想统一迁到 Bedrock 上,最头疼的不是写代码,而是先搞清楚"到底有多少地方要改"。
AWS Transform 新出了一个模型迁移评估功能,干的就是这件事:
- 扫描你的代码库,找出所有 AI SDK 和模型调用
- 把每个调用映射到 Bedrock 上的等效模型
- 给出成本对比
- 生成可以直接用的代码改动
支持迁移的来源
| 来源 | SDK/框架 | 覆盖范围 |
|---|---|---|
| OpenAI | openai Python/Node SDK | chat, embeddings, assistants |
| 第三方模型 SDK | google-generativeai 等 | generate, embed, chat |
| Anthropic 直连 | anthropic SDK | messages API |
| LangChain | langchain + 各种 LLM wrapper | 所有 provider |
| LlamaIndex | llama_index | 所有 LLM/embed |
| CrewAI | crewai agent 定义 | agent/tool 层 |
| LangGraph | langgraph node 定义 | graph 中的 LLM 调用 |
| LiteLLM | litellm router | 多 provider 路由 |
| Ollama | 本地模型 | 迁移到 Bedrock 托管 |
怎么用
安装 ATX CLI
pip install aws-transform-cli
# 配置 AWS 凭证(需要 Bedrock + Transform 权限)
aws configure
扫描代码库
# 对当前项目运行模型迁移评估
atx transform run \
--transformation mke-genai-model-migration \
--source ./my-project \
--output ./migration-report
交互式问答
CLI 会问你几个问题来确定迁移策略:
? What is your primary migration goal?
> Cost optimization
> Security & compliance (VPC isolation, IAM)
> Vendor consolidation
> Performance improvement
? Do you have latency requirements?
> P99 < 500ms (recommend provisioned throughput)
> P99 < 2s (standard on-demand)
> No strict requirement
? Are you open to model substitution for cost savings?
> Yes, suggest cheaper alternatives where quality is comparable
> No, map to exact equivalent models only
输出示例
扫描完会生成一份迁移报告:
{
"summary": {
"total_ai_calls_found": 47,
"providers_detected": ["openai", "anthropic", "other-providers"],
"frameworks_detected": ["langchain", "direct-sdk"],
"estimated_monthly_savings": "$340 (23%)",
"migration_complexity": "medium"
},
"model_mappings": [
{
"source": {
"provider": "openai",
"model": "gpt-4o",
"usage": "chat completion",
"files": ["src/agent/planner.py:42", "src/agent/reviewer.py:18"]
},
"target": {
"provider": "bedrock",
"model_id": "anthropic.claude-sonnet-4-20250514-v1:0",
"rationale": "Similar capability, lower cost, supports tool_use",
"monthly_cost_comparison": {
"current": "$180",
"after_migration": "$142",
"savings": "21%"
}
}
},
{
"source": {
"provider": "openai",
"model": "text-embedding-3-small",
"usage": "embeddings",
"files": ["src/rag/indexer.py:15"]
},
"target": {
"provider": "bedrock",
"model_id": "amazon.titan-embed-text-v2:0",
"rationale": "Comparable quality, native AWS integration"
}
}
],
"code_changes": [
{
"file": "src/agent/planner.py",
"line": 42,
"before": "client = OpenAI()\nresponse = client.chat.completions.create(model='gpt-4o', ...)",
"after": "client = boto3.client('bedrock-runtime')\nresponse = client.converse(modelId='anthropic.claude-sonnet-4-20250514-v1:0', ...)"
}
]
}
零代码迁移路径
对于 OpenAI SDK 的项目,有一条更简单的路:Bedrock 提供了 OpenAI 兼容端点,不改代码,只改环境变量:
# 原来的代码不用动
from openai import OpenAI
client = OpenAI() # 会读 OPENAI_BASE_URL 环境变量
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello"}]
)
# 只改环境变量
export OPENAI_BASE_URL="https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1"
export OPENAI_API_KEY="unused" # Bedrock 用 IAM 认证,这个字段随便填
# 模型名映射
export OPENAI_MODEL_ID="anthropic.claude-sonnet-4-20250514-v1:0"
Transform 工具会自动识别哪些调用可以走这条零改动路径,哪些需要代码重写。
迁移到 Bedrock 的好处
为什么要从直连各家 API 迁到 Bedrock:
| 维度 | 直连各家 API | 通过 Bedrock |
|---|---|---|
| 认证 | 每家一个 API Key | 统一 IAM |
| 网络 | 公网调用 | VPC Endpoint 内网 |
| 审计 | 各家日志格式不同 | CloudTrail 统一 |
| 成本 | 各家计费不透明 | Cost Explorer 统一看 |
| 安全 | Key 泄露风险 | IAM Role,无硬编码密钥 |
| 限流 | 各家 rate limit 不同 | Provisioned Throughput 按需 |
| 护栏 | 自己实现 | Bedrock Guardrails |
| 缓存 | 各家方案不同 | Bedrock Prompt Caching |
注意事项
- 不是所有模型都有等效替代 —— 如果你用了 OpenAI 的 DALL-E 或 Whisper,Bedrock 上的替代方案功能可能不完全一致
- Framework 迁移有坑 —— LangChain/LlamaIndex 版本迭代快,确认 Transform 支持你的版本
- 成本对比是估算 —— 基于当前用量模式,实际迁移后可能不同(特别是 provisioned throughput 的场景)
- 先在 dev 环境跑 —— 不要在 prod 代码库上直接执行迁移
上手步骤
# 1. 安装
pip install aws-transform-cli
# 2. 扫描(只看不改)
atx transform run \
--transformation mke-genai-model-migration \
--source ./your-project \
--output ./report \
--dry-run
# 3. 看报告,确认映射合理
cat ./report/migration-summary.json | python -m json.tool
# 4. 生成代码改动(不自动应用)
atx transform run \
--transformation mke-genai-model-migration \
--source ./your-project \
--output ./patches
# 5. Review 后手动应用
cd your-project && git apply ../patches/*.patch
文档:https://docs.aws.amazon.com/transform/latest/userguide/custom.html
博客:https://aws.amazon.com/blogs/migration-and-modernization/migrate-your-ai-workloads-to-amazon-bedrock-with-aws-transform/

浙公网安备 33010602011771号