本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon Bedrock 和 Amazon Transcribe 從語音輸入記錄機構知識
由 Praveen Kumar Jeyarajan (AWS)、Jundong Qiao ()AWS、Megan Wu (AWS) 和 Rajiv Upadhyay (AWS) 建立
程式碼儲存庫: genai-knowledge-capture | 環境:PoC 或試行 | 技術:機器學習和 AI;業務生產力; CloudNative |
AWS 服務:Amazon Bedrock;AWSCDK;AWSLambda;AmazonSNS;AWSStep Functions;Amazon Transcribe |
Summary
擷取機構知識對於確保組織成功和恢復能力至關重要。機構知識代表員工隨著時間累積的集體智慧、洞察和體驗,通常在性質上隱含,並以非正式方式傳遞。這種豐富的資訊包含獨特的方法、最佳實務和解決方案,可解決可能未記錄在別處的問題。透過正式化和記錄這些知識,公司可以保留機構記憶體、促進創新、增強決策程序,並加速新員工的學習曲線。此外,它可促進協作、授權個人,並培養持續改善的文化。最終,利用機構知識可協助公司使用其最寶貴的資產,也就是其員工的集體智慧,在動態商業環境中應對挑戰、推動成長並維持競爭優勢。
此模式說明如何透過資深員工的語音錄音擷取機構知識。它使用 Amazon Transcribe 和 Amazon Bedrock 進行系統性文件記錄和驗證。透過記錄此非正式知識,您可以保留並與後續的員工群組共用。此工作支援卓越營運,並透過整合透過直接體驗取得的實際知識來改善訓練計畫的有效性。
先決條件和限制
先決條件
限制
此解決方案已部署至單一 AWS 帳戶。
此解決方案只能在 Amazon Bedrock 和 Amazon Transcribe 可用的AWS區域中部署。如需可用性的詳細資訊,請參閱 Amazon Bedrock 和 Amazon Transcribe的文件。
音訊檔案必須是 Amazon Transcribe 支援的格式。如需支援的格式清單,請參閱轉錄文件中的媒體格式。
產品版本
AWS SDK for Python (Boto3) 1.34.57 版或更新版本
LangChain 0.1.12 版或更新版本
架構
此架構代表 上的無伺服器工作流程AWS。AWS Step Functions 會協調 Lambda 函數以進行音訊處理、文字分析和文件產生。下圖顯示 Step Functions 工作流程,也稱為 狀態機器 。
狀態機器中的每個步驟都由不同的 Lambda 函數處理。以下是文件產生程序中的步驟:
preprocess
Lambda 函數會驗證傳遞給 Step Functions 的輸入,並列出提供 Amazon S3 URI 資料夾路徑中存在的所有音訊檔案。工作流程中的下游 Lambda 函數會使用檔案清單來驗證、摘要和產生文件。transcribe
Lambda 函數使用 Amazon Transcribe 將音訊檔案轉換為文字轉錄。此 Lambda 函數負責啟動轉錄程序,並準確將語音轉換為文字,然後存放以供後續處理。validate
Lambda 函數會分析文字文字記錄,判斷回應與初始問題的關聯性。透過 Amazon Bedrock 使用大型語言模型 (LLM),它可以識別主題上的答案,並將其與主題外回應分開。summarize
Lambda 函數使用 Amazon Bedrock 產生主題上答案的一致性和簡潔摘要。generate
Lambda 函數會將摘要組合成結構良好的文件。它可以根據預先定義的範本格式化文件,並包含任何其他必要的內容或資料。如果任何 Lambda 函數失敗,您會透過 Amazon Simple Notification Service (Amazon ) 收到電子郵件通知SNS。
在整個過程中,AWSStep Functions 會確保以正確的順序啟動每個 Lambda 函數。此狀態機器具有可平行處理的容量,可提升效率。Amazon S3 儲存貯體充當中央儲存儲存庫,透過管理涉及的各種媒體和文件格式來支援工作流程。
工具
AWS 服務
Amazon Bedrock 是一項完全受管的服務,它讓來自領導 AI 新創公司的高效能基礎模型 (FMs) 和 Amazon 可供您透過統一 使用API。
AWS Lambda 是一種運算服務,可協助您執行程式碼,而不需要佈建或管理伺服器。它只會在需要時執行程式碼並自動擴展,因此您只需支付您使用的運算時間。
Amazon Simple Notification Service (Amazon SNS) 可協助您協調和管理發佈者和用戶端之間的訊息交換,包括 Web 伺服器和電子郵件地址。
Amazon Simple Storage Service (Amazon S3) 是一種雲端型物件儲存服務,可協助您儲存、保護和擷取任何數量的資料。
AWS Step Functions 是一種無伺服器協調服務,可協助您結合 AWS Lambda 函數和其他AWS服務來建置業務關鍵型應用程式。
Amazon Transcribe 是一種自動語音辨識服務,使用機器學習模型將音訊轉換為文字。
其他工具
LangChain
是用於開發由大型語言模型 () 驅動的應用程式的架構LLMs。
程式碼儲存庫
此模式的程式碼可在 儲存庫中使用 GitHub genai-knowledge-capture
程式碼儲存庫包含下列檔案和資料夾:
assets
資料夾 – 解決方案的靜態資產,例如架構圖表和公有資料集code/lambdas
資料夾 – 所有 Lambda 函數的 Python 程式碼code/lambdas/generate
資料夾 - 從 S3 儲存貯體中的摘要資料產生文件的 Python 程式碼code/lambdas/preprocess
資料夾 - 處理 Step Functions 狀態機器輸入的 Python 程式碼code/lambdas/summarize
資料夾 - 使用 Amazon Bedrock 服務摘要轉錄資料的 Python 程式碼code/lambdas/transcribe
資料夾 - 使用 Amazon Transcribe 將語音資料 (音訊檔案) 轉換為文字的 Python 程式碼code/lambdas/validate
資料夾 - 用來驗證所有答案是否與相同主題相關的 Python 程式碼
code/code_stack.py
– AWS CDK 用於建立AWS資源的建構 Python 檔案app.py
– 用於在目標AWS帳戶中部署AWS資源AWSCDK的應用程式 Python 檔案requirements.txt
– 必須為 安裝的所有 Python 相依性清單 AWS CDKcdk.json
– 提供建立資源所需的值的輸入檔案
最佳實務
提供的 proof-of-concept程式碼範例僅供 (PoC ) 或試用用途。如果您想要將解決方案用於生產,請使用下列最佳實務:
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
匯出帳戶和AWS區域的變數。 | 若要AWSCDK使用環境變數為 提供AWS憑證,請執行下列命令。
| AWS DevOps, DevOps engineer |
設定AWSCLI具名設定檔。 | 若要設定 帳戶的AWSCLI具名設定檔,請遵循組態和憑證檔案設定 中的指示。 | AWS DevOps, DevOps engineer |
任務 | 描述 | 所需的技能 |
---|---|---|
將儲存庫複製到本機工作站。 | 若要複製genai-knowledge-capture
| AWS DevOps, DevOps engineer |
(選用) 取代音訊檔案。 | 若要自訂範例應用程式以整合您自己的資料,請執行下列動作:
| AWS DevOps, DevOps engineer |
設定 Python 虛擬環境。 | 若要設定 Python 虛擬環境,請執行下列命令。
| AWS DevOps, DevOps engineer |
合成AWSCDK程式碼。 | 若要將程式碼轉換為AWS CloudFormation 堆疊組態,請執行下列命令。
| AWS DevOps, DevOps engineer |
任務 | 描述 | 所需的技能 |
---|---|---|
佈建基礎模型存取權。 | 啟用您AWS帳戶的 Anthropic Claude 3 Sonnet 模型存取權。如需指示,請參閱 Bedrock 文件中的新增模型存取權。 | AWS DevOps |
在 帳戶中部署 資源。 | 若要使用 部署AWS帳戶中的資源AWSCDK,請執行下列動作:
| AWS DevOps, DevOps engineer |
訂閱 Amazon SNS主題。 | 若要訂閱 Amazon SNS主題以進行通知,請執行下列動作:
| 一般 AWS |
任務 | 描述 | 所需的技能 |
---|---|---|
執行 狀態機器。 |
| 應用程式開發人員,一般 AWS |
任務 | 描述 | 所需的技能 |
---|---|---|
移除 AWS 資源。 | 測試解決方案後,請清除資源:
| AWS DevOps, DevOps engineer |
相關資源
AWS 文件
Amazon Bedrock 資源:
AWS CDK 資源:
AWS Step Functions 資源:
其他資源