員工生產力 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 公共終端節點。
透過實施這些最佳實踐,您可以顯著增強環境的安全性、可靠性和可觀察性。始終考慮應用程式和基礎架構的特定需求,以確定最合適的配置。