员工生产力 GenAI 助手示例是一个创新的代码示例,旨在通过人工智能技术的集成来提高编写任务的效率和效果。此助理示例专为 AWS 用户量身定制,利用 Amazon Bedrock 和生成式 AI 模型自动创建初始模板,也可以根据您自己的需求进行自定义。用户可以输入文本和图像,受益于 Claude 3 系列等尖端人工智能的多模式功能,支持与多种数据类型的动态交互。
员工生产力 GenAI 助手示例基于强大的 AWS 无服务器技术(例如 Lambda、API Gateway、DynamoDB 和 S3)构建,通过 Cognito 确保可扩展性、高可用性和安全性。这些技术提供了一个基础,使员工生产力 GenAI 助手示例能够按需响应用户需求,同时保持严格的安全标准。其生成能力的核心源自 Amazon Bedrock 中强大的 AI 模型,有助于快速交付定制的高质量内容。
员工生产力GenAI助手示例通过一系列交互式GIF展示其功能,使用户轻松理解和使用其功能:
通过提供简化的界面和全面的工具,员工生产力GenAI助手示例不仅简化了复杂文档的生成,还提高了用户的生产力和创造力。此 GitHub 存储库可作为在用户拥有的 AWS 账户上部署此解决方案的指南,确保任何人都可以设置并开始受益于这款 AI 支持的写作助手的高级功能。
架构模式和可重用组件
除了交互功能之外,员工生产力 GenAI 助手示例还提供了一个强大的架构模式,用于在 AWS 上构建生成式 AI 解决方案。通过利用 Amazon Bedrock 和 AWS 无服务器服务(例如 Lambda、API Gateway 和 DynamoDB),该示例演示了部署生成式 AI 应用程序的可扩展且安全的方法。这种架构模式可以作为构建针对不同用例定制的各种生成式人工智能解决方案的基础。此外,该解决方案包括基于 React 框架构建的可重用组件驱动的 UI,使开发人员能够轻松扩展和自定义界面以满足他们的特定需求。该示例还展示了使用 WebSocket 实现流支持,允许在基于聊天的交互和一次性请求中进行实时响应,从而增强生成式 AI 助手的用户体验和响应能力。
improve-employee-productivity-using-genai/
│
├── backend/ - Contains all backend related files.
│ ├── artifacts/ - Artifacts such as screenshots
│ ├── src/ - Source code for Lambda functions.
│ ├── utils/ - Utility scripts such as helper to create Cognito users
│ ├── layer/ - Code for Lambda layers.
│ └── template.yaml - Main SAM template for Infrastructure as Code (IaC) deployment.
│
└── frontend/ - Houses the frontend React application.
│ ├── src/ - Main folder for React code.
│ └── App.js - Entry point for the React application.
│ └── .env - Environment variables created on deployment (auto-generated).
│
├── deploy.sh - Single bash script for deploying both backend and frontend.
└── default_templates.json - Default templates that gets uploaded to DynamoDB at deployment for bootstrap.
在开始部署和开发 Employee Productivity GenAI Assistant 示例之前,请确保您已设置以下先决条件:
pip
并正常工作请确保这些已安装并正确配置,然后再继续部署或开发员工生产力 GenAI 助手示例。
️ 重要提示:在继续部署之前,请确保您已完成所有先决条件。
员工生产力 GenAI 助手部署示例涉及执行处理后端和前端设置的 bash 脚本。以下是该脚本执行的详细步骤:
要部署员工生产力 GenAI 助手示例,请在终端中使用以下命令,包括 AWS 区域作为必需参数:
./deploy.sh --region=your-aws-region --email=your-email
./deploy.sh --backend --region=your-aws-region --email=your-email
./deploy.sh --frontend --region=your-aws-region --email=your-email
./deploy.sh --delete --region=your-aws-region --email=your-email
./deploy.sh --container --region=your-aws-region --email=your-email
将your-aws-region
替换为适当的 AWS 区域(例如us-east-1
)
确保从项目目录的根目录运行这些命令,并将your-aws-region
替换为您想要使用的实际 AWS 区域。
完成部署后,请参阅下面有关部署后步骤的说明。
有关该脚本功能的一些详细信息,请参见下文:
--delete
标志,脚本会提示您确认删除指定的 AWS 堆栈。--backend
) :sam build --template "$SAM_TEMPLATE" --parallel --cached
--container
./deploy.sh
它将触发运行 SAM,如下所示: sam build --template "$SAM_TEMPLATE" --parallel --cached --use-container
--frontend
) :.env
文件。aws-exports.json
。AWS CloudShell 允许您从 AWS 控制台内访问免费、即时的 Linux 环境。要使用 AWS CloudShell 安装解决方案,请按顺序执行以下步骤。
安装依赖项:首先,确保您安装了必要的开发工具和库。打开 AWS CloudShell 并执行以下命令:
# Install Development Tools
sudo yum groupinstall " Development Tools " -y &&
# Install necessary libraries
sudo yum install openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel ncurses-devel readline-devel sqlite-devel -y
使用 PyEnv 安装 Python 3.11 :AWS CloudShell 不附带 Python 3.11,因此我们需要安装 PyEnv,然后安装 Python 3.11 并将其设置为 shell 中的默认 Python 版本。
# Install PyEnv
git clone https://github.com/pyenv/pyenv.git ~ /.pyenv
# Set .bash_profile env
echo ' ' >> ~ /.bash_profile
echo ' # Pyenv Configuration ' >> ~ /.bash_profile
echo ' export PYENV_ROOT="$HOME/.pyenv" ' >> ~ /.bash_profile
echo ' export PATH="$PYENV_ROOT/bin:$PATH" ' >> ~ /.bash_profile
echo ' eval "$(pyenv init -)" ' >> ~ /.bash_profile
# Reinitialize your Shell
source ~ /.bash_profile
# Install Python 3.11
pyenv install 3.11
# Set Python 3.11 as default with PyEnv
pyenv global 3.11
在 CloudShell 上创建新工作文件夹:AWS CloudShell 主目录只有 1GB 存储空间,我们需要使用临时存储来构建和部署此应用程序。首先,我们在根目录中创建一个文件夹并设置适当的用户权限。
# Folder creation
sudo mkdir /aws-samples &&
# Setting folder permissions
sudo chown cloudshell-user -R /aws-samples
克隆存储库并部署解决方案:现在我们已经安装了文件夹和所有依赖项,让我们逐步了解如何使用 AWS CloudShel 部署解决方案。
# Navigate to the newly created folder
cd /aws-samples
# Clone the repo in the /aws-samples folder
git clone https://github.com/aws-samples/improve-employee-productivity-using-genai.git
# Navigate to the git folder
cd improve-employee-productivity-using-genai/
# Before running the deployment command, set the maximum npm memory to 1024MB to avoid OOM error
export NODE_OPTIONS= " --max_old_space_size=1024 "
部署解决方案的后端:现在我们拥有部署应用程序的所有依赖项,我们可以使用以下命令部署解决方案的后端。我们对后端和前端使用部署选项,因为 Cloudshell 没有足够的内存来在同一命令中同时部署这两个选项。请在运行以下命令之前更改区域和电子邮件。
# Run the deployment command for the backend
./deploy.sh --backend --region=your-aws-region --email=your-email
部署解决方案的前端:最后剩下的事情是部署解决方案的前端。请使用与您在上面的后端命令中运行的相同的区域和电子邮件。
# Run the deployment command for the frontend
./deploy.sh --frontend --region=your-aws-region --email=your-email
部署可能需要 15-30 分钟,请注意,如果您超过 20 分钟不与 AWS CloudShell 交互,您的 CloudShell 环境将被删除。建议您打开第二个 CloudShell 选项卡,并每 10 分钟运行一次一些命令,以避免自动关闭。
注意:如果此命令由于 CloudShell 内存不足而失败,请重新运行
--frontend
命令,它应该可以工作。
部署完成后,系统将向您显示用于访问解决方案的 CloudFront URL、用户名和临时密码。请检查部署后部分
使用 AWS Cloud9 部署员工生产力 GenAI 助手示例提供了简化且一致的开发环境设置。请按照以下详细步骤设置您的 Cloud9 环境并高效部署应用程序。
注意:EBS 卷会自动调整大小:
打开 AWS Cloud9 控制台:
创建新环境:
GenAI-Productivity-Env
,然后单击下一步。配置环境:
t3/t3.medium
或更大,以确保您有足够的计算能力。AWS System Manager (SSM)
作为连接类型审查和创建:
一旦您的环境准备就绪,您需要准备好部署员工生产力 GenAI 助手示例。
访问您的 Cloud9 环境:
克隆项目存储库:
git clone https://github.com/aws-samples/improve-employee-productivity-using-genai
cd improve-employee-productivity-using-genai
您可以同时部署后端和前端,也可以单独处理它们。
同时部署后端和前端(推荐) :
./deploy.sh --container --region= < your-aws-region > --email= < your-email >
替换为您的 AWS 区域(例如 us-east-1)和您的实际电子邮件地址。
仅部署后端::
./deploy.sh --backend --container --region= < your-aws-region > --email= < your-email >
替换为您的 AWS 区域(例如 us-east-1)和您的实际电子邮件地址。
仅部署前端::
./deploy.sh --frontend --region= < your-aws-region > --email= < your-email >
替换为您的 AWS 区域(例如 us-east-1)和您的实际电子邮件地址。
部署脚本完成后,转到下一部分部署后步骤
成功部署员工生产力 GenAI 助手示例后,由于部署默认情况下仅在 Cognito 上创建管理员用户,因此请按照以下步骤创建其他 Cognito 用户,以授予对员工生产力 GenAI 助手示例部署的访问权限:
访问应用程序:
登录应用程序:
<your-email>
) 登录。探索应用程序:
创建其他用户(可选) :
EmployeeProductivityGenAIAssistantExample
用户池。分配用户角色(可选) :
?祝贺您部署和设置员工生产力 GenAI 助手示例!探索其功能并享受体验。
.env
和aws-exports.json
文件,检查您是否已在 CloudFront 分布式应用程序中正确设置环境变量。 通过这些引人入胜的演示探索员工生产力 GenAI 助手示例的功能。每个功能都通过交互式 GIF 突出显示,显示系统的运行情况:
游乐场可用性:
模板创建:
活动中的模板应用:
活动历史特征:
与模板互动聊天:
多模态输入:
这些工具旨在通过简化您在无服务器环境中与 AI 模型的交互来提高您的工作效率和创造力。
运行员工生产力 GenAI 助手示例的成本可能会有所不同,具体取决于您的使用模式和您选择使用的特定 Amazon Bedrock 模型。为了提供粗略估计,我们创建了一个成本估算器链接,该链接考虑了 50 个用户的场景,每个用户每天使用该工具 5 次,平均使用 500 个输入令牌和 200 个输出令牌。
预计每月费用基于以下假设:
基岩定价可以在 AWS 基岩定价页面中查看。给定场景的估计成本如下:
克劳德 3 俳句模型:
克劳德 3 号十四行诗模型:
克劳德 3.5 十四行诗模型:
克劳德 3 作品型号:
注意:虽然成本估算是使用单个模型计算的,但您可以根据需要灵活地在模型之间切换。例如,如果您需要 Opus 等更高级的模型来满足特定请求,则只需按该使用量付费。对于大多数请求,您可以使用成本更优化的模型(例如 Haiku),这将有助于降低工具的总体成本并根据您的需求进行优化。
注意:该估算不考虑符合条件的服务的 AWS 免费套餐。如果您仍在免费套餐限制内,您的实际费用可能会更低。另请注意,AWS 服务的定价可能会随着时间的推移而变化,因此实际成本可能与这些估算有所不同。
需要注意的是,这只是一个估计值,并不代表确切的成本。目的是根据给定场景提供潜在成本的高级概念。实际成本将根据您的具体使用模式和您选择使用的 Amazon Bedrock 模型而有所不同。
云和无服务器架构的一大优势是能够根据需求扩展或缩减资源。因此,解决方案的成本将相应增加或减少,确保您只需为消耗的资源付费。
此外,如果您仍在 AWS 免费套餐限制内,该解决方案的某些组件(例如 AWS Lambda、S3、CloudFront、DynamoDB 和 Amazon Cognito)可能不会产生额外费用。
成本估算器链接:https://calculator.aws/#/estimate?id=5fa739dd54db78d439bb602e17bd8af8a1d78f07
注意:成本估算器不包括 Amazon Bedrock 的费用,因为计算器尚不支持 Claude 模型。
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅许可证文件。
我们欢迎为员工生产力 GenAI 助手示例做出贡献!如果您有建议或想要报告问题,请随时提出拉取请求或问题。
实施解决方案时,必须遵循最佳实践以确保安全性、可靠性和可观察性。以下是一些建议,但请注意,该列表并非详尽无遗,可能还有更多内容需要考虑。
为了增强数据安全性,请考虑使用 AWS Key Management Service (KMS) 中存储的客户管理密钥 (CMK) 为各种服务启用加密。通过允许您控制对加密密钥的访问,这提供了额外的安全层。
实施强大的可观察性和日志记录机制对于监控、故障排除和安全审核至关重要。
AccessLogSetting
属性以记录访问请求。对于在虚拟私有云 (VPC) 中运行的 Lambda 函数,请确保正确配置 VPC 终端节点以促进安全高效的通信。这有助于将所有调用保留在 VPC 内部,并避免使用 AWS 公共终端节点。
通过实施这些最佳实践,您可以显着增强环境的安全性、可靠性和可观察性。始终考虑应用程序和基础设施的特定需求,以确定最合适的配置。