Amazon Bedrock Runtime API集成指南——从Invoke Model API迁移到Converse API,简化生成式AI应用开发

摘要

Amazon Bedrock 是一项亚马逊云科技在海外区域提供的完全托管服务,通过单个 API 提供来自包括 Amazon 在内的领先人工智能公司的高性能基础模型(FM),并提供通过安全性、隐私性和负责任的人工智能构建生成式人工智能应用程序所需的一系列广泛功能。使用 Amazon Bedrock,您可以轻松试验和评估适合您的使用案例的热门 FM,通过微调和检索增强生成(RAG)等技术利用您的数据对其进行私人定制,并构建使用您的企业系统和数据来源执行任务的代理。由于 Amazon Bedrock 是无服务器的,因此您无需管理任何基础设施,并且可以使用已经熟悉的亚马逊云科技服务将生成式 AI 功能安全地集成和部署到您的应用程序中。

📢限时插播:无需管理基础设施,利用亚马逊技术与生态,快速集成与部署生成式AI模型能力。

✨ 精心设计,旨在引导您深入探索Amazon Bedrock的模型选择与调用、模型自动化评估以及安全围栏(Guardrail)等重要功能。

⏩快快点击进入《多模一站通 ------ Amazon Bedrock 上的基础模型初体验》实验

构建无限, 探索启程!

随着基础模型(FM)的高速发展, Amazon Bedrock 通过模型生命周期管理来不断调整其提供的基础模型。在 2025 年下半年,Amazon Bedrock 将会停止支持一部分版本比较旧的基础模型(FM)。本博客旨在帮助客户评估和/或将 Amazon Bedrock runtime API 从 Invoke Model API 迁移到 Converse API,从而更高效地构建对话式应用。

Amazon Bedrock runtime API 及其支持的推理参数格式

目前,Amazon Bedrock runtime API 主要分为两组:Invoke Model API 和 Converse API(较新)。两组都有 RESTful API 和 streaming API (流式 API),并且同一组内支持的推理参数格式是相同的。

2024 年 5 月,Amazon Bedrock 宣布了新的 Converse API,为开发者提供了一种统一的调用 Amazon Bedrock 模型的方式,消除了因模型特定差异(如推理参数)而带来的复杂度。Converse API 还通过允许开发者以结构化方式在 API 请求中提供对话历史,简化了多轮对话管理。

对于 Invoke Model API,每个基础模型(FM)的推理参数遵循模型提供商的定义,因此参数可能会根据您使用的 FM 而有所不同,提高了业务代码维护的难度。对于 Converse API,Amazon Bedrock 将所有支持的 FM 推理参数抽象为统一的推理参数。Converse API 支持的 FM 详情请参考文档。

请注意:截止至本博客写作时 (2025 年 5 月),Converse API 暂时不支持 embedding 模型(如 Titan Embeddings G1 -- Text)、图像生成模型(如 Stability AI 的 Stable Diffusion)、视频生成模型、或语音模型(如 Amazon Nova Sonic)。

Amazon Bedrock Invoke Model API 接口名称:

  • RESTful:InvokeModel
  • 流式形式:InvokeModelWithResponseStream

Amazon Bedrock Converse API 接口名称:

  • RESTful:Converse
  • 流式形式:ConverseStream

下表列出了 Amazon Bedrock runtime API 的详细信息及其支持的一些参数格式。

请在此处查找 Amazon Bedrock runtime API 支持的模型和模型功能的信息。

模型 API 参数格式 支持 Invoke Model / Invoke ModelWithResponseStream 支持 Converse / ConverseStream
Anthropic Claude Text Completions API 格式 是 是(需少量修改)
Anthropic Claude Messages API 格式 是 是(需少量修改)
Meta Llama API 格式 是 是(提示词格式修改)
AI21Labs Jamba API 格式 是 是(提示词格式修改)
Stability AI model API 是 否
Amazon Titan Embeddings Text API 是(不支持流式) 否
Cohere Embed model API 是(不支持流式) 否

Amazon Bedrock Runtime API 权限管理

Amazon IAM 角色或 IAM 用户访问 Amazon Bedrock runtime API 所需的最小权限:

json 复制代码
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
            "Amazon Bedrock:InvokeModel",
            "Amazon Bedrock:InvokeModelWithResponseStream"
            ],
        "Resource": "*",
        "Effect": "Allow",
        "Sid": "Amazon BedrockRuntimeAPIAccess"
        }
    ]
}

使用 Amazon Bedrock Invoke Model API

推理参数格式

系统提示词 (System Prompts):

Invoke Model API 的系统提示词格式是一个字符串,例如:

"system": "[your system prompts]"

提示词(prompts)格式:

json 复制代码
"messages": [
    "role": "user",
    "content": [
        {
            "type": "text | image", 
            "text": "[Your prompts]"
        } 
]

提示词中的角色名称

一些 Text Completions 格式期望交替出现"\n\nHuman:"和"\n\nAssistant:",但 Messages API 格式使用"user"和"assistant"角色。您可能会看到文档中提到"human"或"user"。这些指的是同一个角色,今后将使用"user"。

例如:

Text completions API 格式提示词为:

swift 复制代码
"prompt ": "\n\nHuman: Explain what is an AI agent?\n\nAssistant:"

上述提示词应转换为 Messages API 格式提示词:

json 复制代码
"messages": [
    "role": "user",
    "content": [
        {
            "type": "text", 
            "text": "Explain what is an AI agent?"
        } 
]

使用 Amazon Bedrock Converse API

2024 年 5 月,Amazon Bedrock 宣布了新的 Converse API,为开发者提供了一种统一的调用 Amazon Bedrock 模型的方式,消除了因模型特定差异(如推理参数差异)而带来的复杂度。该 API 还通过使开发人员能够以结构化方式在 API 请求中提供对话历史记录,从而简化了多轮对话的管理。

此外,Converse API 支持工具使用(函数调用),对于支持的模型,将使开发人员能够执行各种需要访问外部工具和 API 的任务。

Amazon Bedrock Converse API 的系统提示词(system prompts)格式更新为一个 JSON 对象,例如:

json 复制代码
"system": [
    { 
        "text": "[Your system prompts]"
    },
    "guardContent": {
        "text": {
            "text": "[Guard content]"
        }
    }
]

Amazon Bedrock Converse API 的提示词(prompts)格式

示例:

json 复制代码
"messages":
[
    "role": "user",
    "content": [
        {
            "text": "[Your prompts]",
            "image":
            {
                "format": "[image format]",
                "source": {
                "bytes": "[image base64 encoded string]"
            }
        }
    ]
]

从 Amazon Bedrock Invoke Model API 迁移到 Amazon Bedrock Converse API

迁移系统提示词(System Prompts)

Invoke Model API 的系统提示词格式是一个字符串,例如:

示例:

"system": "[your system prompts]"

Converse API 的系统提示词格式是一个 JSON 对象,例如:

json 复制代码
"system": [
    { 
        "text": "[Your system prompts]"
    }
]

因此,您需要将系统提示词转换为 JSON 对象。

Converse API 系统提示还支持一个名为 guardContent 的字段,用来使用 Amazon Bedrock Guardrails 来保护您的生成式 AI 应用。请在文档中查找详细信息。

迁移提示词(Prompts)

Amazon Bedrock Invoke Model API(本例为 Messages API 格式)的提示词格式:

json 复制代码
"message": [
        {
            "role": "user",
            "content": [
               {
                   "type": "text",
                   "text": "Your task is to take the text provided and rewrite it into a clear, grammatically correct version while preserving the original meaning as closely as possible. Here is the text: 'I can haz cheeseburger?'"
               }
            ],
        }
    ]

Amazon Bedrock Converse API 的提示格式与 Invoke Model API 非常相似,但没有内容类型声明语句。例如:

json 复制代码
"message": [
        {
            "role": "user",
            "content": [
               {
                   "text": " Your task is to take the text provided and rewrite it into a clear, grammatically correct version while preserving the original meaning as closely as possible. Here is the text: 'I can haz cheeseburger?'"
               }
            ],
        }
    ]

请注意,Converse API 不需要类型声明语句("type": "text",)。

提示词迁移到 Converse API 前后对比:

结论

Amazon Bedrock 是一项亚马逊云科技在海外区域提供的完全托管服务,通过单个 API 提供来自包括 Amazon 在内的领先人工智能公司的高性能基础模型(FM),并提供通过安全性、隐私性和负责任的人工智能构建生成式人工智能应用程序所需的一系列广泛功能。

Amazon Bedrock Converse API 提供了一种一致的体验,可与 Amazon Bedrock 中提供的模型配合使用,消除了开发者管理特定于某个模型的实现工作,降低复杂度。使用此 API,您只需编写统一的代码,便可以无缝使用 Amazon Bedrock 上的多种基础模型。因此,我们建议您在满足业务要求的情况下迁移到 Converse API。

*前述特定亚马逊云科技生成式人工智能相关的服务目前在亚马逊云科技海外区域可用。亚马逊云科技中国区域相关云服务由西云数据和光环新网运营,具体信息以中国区域官网为准。

本篇作者

本期最新实验《多模一站通 ------ Amazon Bedrock 上的基础模型初体验》

✨ 精心设计,旨在引导您深入探索Amazon Bedrock的模型选择与调用、模型自动化评估以及安全围栏(Guardrail)等重要功能。无需管理基础设施,利用亚马逊技术与生态,快速集成与部署生成式AI模型能力。

⏩️[点击进入实验](https://link.juejin.cn?target=https%3A%2F%2Fdev.amazoncloud.cn%2Fexperience%2Fcloudlab%3Fid%3D6695e4c5e1432f239fae485f%26visitfrom%3D3P_Juejintail_0415%26sc_medium%3Downed%26sc_campaign%3Dcloudlab%26sc_channel%3D3P_Juejintail_0415 "https://dev.amazoncloud.cn/experience/cloudlab?id=6695e4c5e1432f239fae485f&visitfrom=3P_Juejintail_0415&sc_medium=owned&sc_campaign=cloudlab&sc_channel=3P_Juejintail_0415") 即刻开启 AI 开发之旅

构建无限, 探索启程!

相关推荐
lucas_AI几秒前
刚发大模型五天就被英伟达看上:Reflection AI 的 250 亿估值,买的是模型还是站队?
人工智能
用户8314550980315 分钟前
如一 Agent 架构解读(二):上下文工程——为模型构造它唯一的现实
人工智能·架构
揽秀亭长6 分钟前
音频如何转换为乐谱?扒谱流程与关键技术分析
人工智能·音视频
丙亮9 分钟前
ECC:一个Agent操作系统的深度拆解
人工智能
财迅通Ai10 分钟前
开拓全球合作新机遇 科兴制药亮相CPHI Milan 2026
大数据·人工智能·科兴制药
kaixin_啊啊13 分钟前
【零基础学AI】第 7 章课后练习与答案
人工智能
AI日报派送佬20 分钟前
Ultralytics YOLO 模型训练技巧与最佳实践
人工智能·python·深度学习·yolo·机器学习·计算机视觉
2501_9139817822 分钟前
Semtech与国产LoRa芯片对比:SX1276/SX1262/LR2021与ASR6601解析
人工智能·lora芯片
刻、苦铭心`22 分钟前
Tare使用:如何在虚拟环境中调试,(小白教程)
人工智能
高频因子挖掘机28 分钟前
历史 K 线突然少一天?用交易日历、停牌信息和数据校验逐步排查
后端·github·api