跳至主要内容

ChatBedrockConverse

Amazon Bedrock Converse 是一款完全托管的服务,可通过 API 提供来自领先 AI 初创公司和亚马逊的 Foundation Models (FM)。您可以从各种 FM 中进行选择,找到最适合您的用例的模型。它为 Bedrock 模型提供统一的对话界面,但尚未实现所有功能的完全对等性,因为在更早的 Bedrock 模型服务 中。

这将帮助您开始使用 Amazon Bedrock Converse 聊天模型。有关所有 ChatBedrockConverse 功能和配置的详细文档,请转至 API 参考

概述

集成详细信息

本地可序列化PY 支持包下载包最新版
ChatBedrockConverse@langchain/awsNPM - DownloadsNPM - Version

模型功能

有关如何使用特定功能的指南,请参阅下方表头中的链接。

工具调用结构化输出JSON 模式图像输入音频输入视频输入令牌级流式传输令牌使用情况Logprobs

设置

要访问 Bedrock 模型,您需要创建一个 AWS 帐户,设置 Bedrock API 服务,获取访问密钥 ID 和密钥,并安装 @langchain/community 集成包。

凭据

转至 AWS 文档 注册 AWS 并设置您的凭据。您还需要为您的帐户启用模型访问权限,您可以通过 按照这些说明 进行操作。

如果您想自动跟踪您的模型调用,您还可以通过取消下方注释来设置您的 LangSmith API 密钥

# export LANGCHAIN_TRACING_V2="true"
# export LANGCHAIN_API_KEY="your-api-key"

安装

LangChain ChatBedrockConverse 集成位于 @langchain/aws 包中

yarn add @langchain/aws @langchain/core

实例化

现在,我们可以实例化我们的模型对象并生成聊天补全。

有几种不同的方法可以使用 AWS 进行身份验证 - 下面的示例依赖于环境变量中设置的访问密钥、密钥和区域。

import { ChatBedrockConverse } from "@langchain/aws";

const llm = new ChatBedrockConverse({
model: "anthropic.claude-3-5-sonnet-20240620-v1:0",
region: process.env.BEDROCK_AWS_REGION,
credentials: {
accessKeyId: process.env.BEDROCK_AWS_ACCESS_KEY_ID!,
secretAccessKey: process.env.BEDROCK_AWS_SECRET_ACCESS_KEY!,
},
});

调用

const aiMsg = await llm.invoke([
[
"system",
"You are a helpful assistant that translates English to French. Translate the user sentence.",
],
["human", "I love programming."],
]);
aiMsg;
AIMessage {
"id": "f5dc5791-224e-4fe5-ba2e-4cc51d9e7795",
"content": "J'adore la programmation.",
"additional_kwargs": {},
"response_metadata": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "f5dc5791-224e-4fe5-ba2e-4cc51d9e7795",
"attempts": 1,
"totalRetryDelay": 0
},
"metrics": {
"latencyMs": 584
},
"stopReason": "end_turn",
"usage": {
"inputTokens": 29,
"outputTokens": 11,
"totalTokens": 40
}
},
"tool_calls": [],
"invalid_tool_calls": [],
"usage_metadata": {
"input_tokens": 29,
"output_tokens": 11,
"total_tokens": 40
}
}
console.log(aiMsg.content);
J'adore la programmation.

链式调用

我们可以使用提示模板将我们的模型进行 链式调用,如下所示

import { ChatPromptTemplate } from "@langchain/core/prompts";

const prompt = ChatPromptTemplate.fromMessages([
[
"system",
"You are a helpful assistant that translates {input_language} to {output_language}.",
],
["human", "{input}"],
]);

const chain = prompt.pipe(llm);
await chain.invoke({
input_language: "English",
output_language: "German",
input: "I love programming.",
});
AIMessage {
"id": "c6401e11-8f85-4a71-8e15-4856d55aef78",
"content": "Here's the German translation:\n\nIch liebe Programmieren.",
"additional_kwargs": {},
"response_metadata": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "c6401e11-8f85-4a71-8e15-4856d55aef78",
"attempts": 1,
"totalRetryDelay": 0
},
"metrics": {
"latencyMs": 760
},
"stopReason": "end_turn",
"usage": {
"inputTokens": 23,
"outputTokens": 18,
"totalTokens": 41
}
},
"tool_calls": [],
"invalid_tool_calls": [],
"usage_metadata": {
"input_tokens": 23,
"output_tokens": 18,
"total_tokens": 41
}
}

工具调用

使用 Bedrock 模型进行工具调用与 其他模型 类似,但请注意,并非所有 Bedrock 模型都支持工具调用。有关更多信息,请参阅 AWS 模型文档

API 参考

有关所有 ChatBedrockConverse 功能和配置的详细文档,请转至 API 参考:https://api.js.langchain.com/classes/langchain_aws.ChatBedrockConverse.html


此页面是否有帮助?


您也可以在 GitHub 上留下详细的反馈 在 GitHub 上.