使用 Amazon Bedrock 的 Converse API 与模型进行交互




简介
Converse API 是 Amazon Bedrock Runtime 推出的一项新功能,旨在简化与基于文本的生成式 AI 模型的交互。无论您想选择哪种基础模型,该 API 均能够基于支持强类型的通用请求格式为您提供一套连贯的功能。
在本教程中,我们将深入探索 Converse API,并学习如何利用其功能构建引人入胜的交互式应用。无论您是 AI 新手,还是经验丰富的开发者,本指南都将引导您完成向生成式 AI 模型发起第 1 个请求的整个过程。
这一版教程使用了 JavaScript。准备了一个 Java 版本,还上传了使用 Python、C# 等语言编写的示例代码。
教程系列概览
- 在《第 1 部分:入门指南(本文章)》中,您将学习如何发起第 1 个请求。
- 在《第 2 部分:对话式 AI》中,我将向您展示如何实现多轮对话。
- 在《第 3 部分:自定义 AI 行为》中,我们将使用系统提示词和其他推理参数来配置模型。
在后续的文章中,介绍如何提取调用指标和元数据、如何发送和接收针对特定模型的参数和字段,如何实时处理模型响应,以及工具使用的新功能等内容。
分步指南:调用 Converse API 发送您的第 1 份提示词
前提条件
步骤 1:安装 Amazon Bedrock Runtime 客户端
首先,安装 AWS SDK JavaScript v3 版提供的 Amazon Bedrock Runtime 客户端。
npm install @aws-sdk/client-bedrock-runtime
步骤 2:导入所需的模块
新建一个 JavaScript 文件,导入所需的模块:
import {
BedrockRuntimeClient,
ConverseCommand,
} from "@aws-sdk/client-bedrock-runtime";
步骤 3:创建一个 BedrockRuntimeClient 实例
创建一个 BedrockRuntimeClient 实例,并指定该 模型 可用的亚马逊云科技区域。
const client = new BedrockRuntimeClient({ region: "us-east-1" });
步骤 4:指定模型 ID
指定您希望使用的模型 ID。在本例中,我们使用了 Claude 3 Haiku 模型。
const modelId = "anthropic.claude-3-haiku-20240307-v1:0";
您可以在该文档中找到支持 Amazon Bedrock Converse API 的完整模型列表和包含所有可用 模型 ID 的列表。
步骤 5:发送您的第 1 条消息
准备第一条用户消息并将其添加到新会话数组中:
const userMessage = "What is 'rubber duck debugging'";
const conversation = [
{
role: "user",
content: [{ text: userMessage }],
},
];
对话数组用于存放对话历史,其中每个数组元素包含一个角色(例如,“用户”或“助手”)和至少一个包含消息文本的内容块。
调用 ConverseCommand 函数将对话发送到模型:
const response = await client.send(
new ConverseCommand({ modelId, messages: conversation }),
);
ConverseCommand 会将对话发送到指定的模型并返回响应。
打印模型响应:
const responseText = response.output.message.content[0].text;
console.log(responseText);
开始运行程序
代码完成了,现在就运行它,看看 AI 如何进行多轮对话吧!
以下是完整代码,仅供参考:
import {
BedrockRuntimeClient,
ConverseCommand,
} from "@aws-sdk/client-bedrock-runtime";
const client = new BedrockRuntimeClient({ region: "us-east-1" });
const modelId = "anthropic.claude-3-haiku-20240307-v1:0";
const userMessage = "What is 'rubber duck debugging'";
const conversation = [
{
role: "user",
content: [{ text: userMessage }],
},
];
const response = await client.send(
new ConverseCommand({ modelId, messages: conversation }),
);
const responseText = response.output.message.content[0].text;
console.log(responseText);
运行代码时:
- 保存代码并将代码文件命名为bedrock_first_message.js
- 在终端中,切换至 bedrock_first_message.js 文件所在的目录
- 运行以下命令:
$ node bedrock_first_message.js
Rubber duck debugging is the process of explaining your code to
a rubber duck (or any inanimate object) to identify and fix bugs.
后续步骤
恭喜您成功向 Amazon Bedrock Converse API 发起了第 1 个请求!仅需几行代码,您已成功与生成式 AI 模型进行了互动。
以下是一些值得继续探索的想法:
- 尝试不同模型,比较不同模型的响应。以下是所有支持 Amazon Bedrock Converse API 的 模型列表。
- 挑战使用另一种编程语言重写此程序。此处提供了 Python、Java、C# 等 多种语言的示例。
- 参阅 Amazon Bedrock 用户指南,深入了解更多有关 Converse API 的内容。
在本系列教程的第 2 部分中,我们将更深入地探讨 Converse API,并学习如何维护对话历史记录和处理多轮对话。