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

发布时间:2024 年 5 月 31 日
Amazon Bedrock
生成式 AI
软件开发
javascript
亚马逊云科技
亚马逊云科技
Olawale Olaleye
亚马逊云科技使用经验
100 - 初级
前提条件

海外区域: 注册 / 登录 亚马逊云科技

完成所需时间
10 分钟
上次更新时间
2024 年 6 月 19 日
相关产品

简介

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 份提示词

在接下来的步骤中,您将学习如何使用 JavaScript 版 Amazon Bedrock Runtime 客户端向基础模型发送一条消息,并打印模型响应。

前提条件

在开始前,确保满足所有前提条件。您需要:

步骤 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,并学习如何维护对话历史记录和处理多轮对话。