Bedrock
Amazon Bedrock 是一款完全托管的服务,可通过 API 提供来自领先的 AI 初创公司和亚马逊的基石模型 (FM)。您可以从各种 FM 中进行选择,以找到最适合您的用例的模型。
这将帮助您使用 LangChain 开始使用 Bedrock 补全模型 (LLM)。有关 Bedrock
功能和配置选项的详细文档,请参阅API 参考.
概述
集成详细信息
类 | 包 | 本地 | 可序列化 | PY 支持 | 包下载量 | 包最新版本 |
---|---|---|---|---|---|---|
Bedrock | @langchain/community | ❌ | ✅ | ✅ |
设置
要访问 Bedrock 模型,您需要创建一个 AWS 帐户,获取 API 密钥,并安装 @langchain/community
集成,以及一些对等依赖项。
凭据
前往aws.amazon.com 注册 AWS Bedrock 并生成 API 密钥。完成此操作后,设置环境变量
export BEDROCK_AWS_REGION="your-region-url"
export BEDROCK_AWS_ACCESS_KEY_ID="your-access-key-id"
export BEDROCK_AWS_SECRET_ACCESS_KEY="your-secret-access-key"
如果您想获得模型调用的自动跟踪,还可以通过取消以下内容的注释来设置您的LangSmith API 密钥
# export LANGCHAIN_TRACING_V2="true"
# export LANGCHAIN_API_KEY="your-api-key"
安装
LangChain Bedrock 集成位于 @langchain/community
包中
提示
- npm
- yarn
- pnpm
npm i @langchain/community
yarn add @langchain/community
pnpm add @langchain/community
并安装对等依赖项
- npm
- yarn
- pnpm
npm i @aws-crypto/sha256-js @aws-sdk/credential-provider-node @smithy/protocol-http @smithy/signature-v4 @smithy/eventstream-codec @smithy/util-utf8 @aws-sdk/types
yarn add @aws-crypto/sha256-js @aws-sdk/credential-provider-node @smithy/protocol-http @smithy/signature-v4 @smithy/eventstream-codec @smithy/util-utf8 @aws-sdk/types
pnpm add @aws-crypto/sha256-js @aws-sdk/credential-provider-node @smithy/protocol-http @smithy/signature-v4 @smithy/eventstream-codec @smithy/util-utf8 @aws-sdk/types
您还可以通过省略 @aws-sdk/credential-provider-node
依赖项并使用 web
入口点,在 Edge 函数或 Cloudflare Workers 等 Web 环境中使用 Bedrock
- npm
- yarn
- pnpm
npm i @aws-crypto/sha256-js @smithy/protocol-http @smithy/signature-v4 @smithy/eventstream-codec @smithy/util-utf8 @aws-sdk/types
yarn add @aws-crypto/sha256-js @smithy/protocol-http @smithy/signature-v4 @smithy/eventstream-codec @smithy/util-utf8 @aws-sdk/types
pnpm add @aws-crypto/sha256-js @smithy/protocol-http @smithy/signature-v4 @smithy/eventstream-codec @smithy/util-utf8 @aws-sdk/types
实例化
现在我们可以实例化模型对象并生成聊天补全
import { Bedrock } from "@langchain/community/llms/bedrock";
const llm = new Bedrock({
model: "anthropic.claude-v2",
region: process.env.BEDROCK_AWS_REGION ?? "us-east-1",
// endpointUrl: "custom.amazonaws.com",
credentials: {
accessKeyId: process.env.BEDROCK_AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.BEDROCK_AWS_SECRET_ACCESS_KEY,
},
temperature: 0,
maxTokens: undefined,
maxRetries: 2,
// other params...
});
调用
请注意,某些模型需要特定的提示技术。例如,Anthropic 的 Claude-v2 模型如果提示不以 Human:
开头,将抛出错误。
const inputText = "Human: Bedrock is an AI company that\nAssistant: ";
const completion = await llm.invoke(inputText);
completion;
" Here are a few key points about Bedrock AI:\n" +
"\n" +
"- Bedrock was founded in 2021 and is based in San Fran"... 116 more characters
链式操作
我们可以链式操作 我们的补全模型,并使用以下提示模板
import { PromptTemplate } from "@langchain/core/prompts";
const prompt = PromptTemplate.fromTemplate(
"Human: How to say {input} in {output_language}:\nAssistant:"
);
const chain = prompt.pipe(llm);
await chain.invoke({
output_language: "German",
input: "I love programming.",
});
' Here is how to say "I love programming" in German:\n' +
"\n" +
"Ich liebe das Programmieren."
API 参考
有关所有 Bedrock 功能和配置的详细文档,请前往 API 参考:https://api.js.langchain.com/classes/langchain_community_llms_bedrock.Bedrock.html