跳至主要内容

具有 AWS Lambda 集成的代理

完整文档位于:https://docs.aws.amazon.com/lambda/index.html

AWS Lambda 是由亚马逊网络服务 (AWS) 提供的无服务器计算服务,旨在允许开发人员构建和运行应用程序和服务,无需配置或管理服务器。这种无服务器架构使您能够专注于编写和部署代码,而 AWS 会自动处理运行您的应用程序所需的扩展、修补和管理基础设施。

通过将 AWSLambda 包含在提供给代理的工具列表中,您可以授予您的代理调用您 AWS 云中运行的代码的能力,以满足您的任何需求。

当代理使用 AWSLambda 工具时,它将提供一个类型为 string 的参数,该参数将通过 event 参数传递到 Lambda 函数。

此快速入门将演示代理如何使用 Lambda 函数通过 Amazon Simple Email Service 发送电子邮件。不提供发送电子邮件的 lambda 代码,但如果您想了解如何实现,请查看 此处。请记住,这是一个有意简化的示例;Lambda 可用于执行无数其他目的的代码(包括执行更多 Langchains)!

关于凭据的说明:

  • 如果您尚未通过 AWS CLI 运行 aws configure,则必须将 regionaccessKeyIdsecretAccessKey 提供给 AWSLambda 构造函数。
  • 与这些凭据相对应的 IAM 角色必须具有调用 lambda 函数的权限。
npm install @langchain/openai
import { OpenAI } from "@langchain/openai";
import { SerpAPI } from "langchain/tools";
import { AWSLambda } from "langchain/tools/aws_lambda";
import { initializeAgentExecutorWithOptions } from "langchain/agents";

const model = new OpenAI({ temperature: 0 });
const emailSenderTool = new AWSLambda({
name: "email-sender",
// tell the Agent precisely what the tool does
description:
"Sends an email with the specified content to [email protected]",
region: "us-east-1", // optional: AWS region in which the function is deployed
accessKeyId: "abc123", // optional: access key id for a IAM user with invoke permissions
secretAccessKey: "xyz456", // optional: secret access key for that IAM user
functionName: "SendEmailViaSES", // the function name as seen in AWS Console
});
const tools = [emailSenderTool, new SerpAPI("api_key_goes_here")];
const executor = await initializeAgentExecutorWithOptions(tools, model, {
agentType: "zero-shot-react-description",
});

const input = `Find out the capital of Croatia. Once you have it, email the answer to [email protected].`;
const result = await executor.invoke({ input });
console.log(result);

本页面是否有帮助?


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