本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon Bedrock 和 Amazon Transcribe 從語音輸入記錄機構知識
由 Praveen Kumar Jeyarajan (AWS)、Jundong Qiao (AWS)、Megan Wu (AWS) 和 Rajiv Upadhyay (AWS) 建立
Summary
擷取機構知識對於確保組織成功和恢復能力至關重要。機構知識代表員工隨著時間累積的集體智慧、洞察和經驗,通常在性質上隱含,並以非正式方式傳遞。這種豐富的資訊包含獨特的方法、最佳實務和解決方案,可處理可能未記錄在別處的問題。透過正式化和記錄這些知識,公司可以保留機構記憶體、促進創新、增強決策過程,並加速新員工的學習曲線。此外,它可促進協作、賦予個人能力,並培養持續改進的文化。最後,利用機構知識可協助公司使用其最寶貴的資產 - 人力資源的集體智慧 - 在動態商業環境中應對挑戰、推動成長並維持競爭優勢。
此模式說明如何透過資深員工的語音錄音來擷取機構知識。它使用 Amazon Transcribe 和 Amazon Bedrock 進行系統性文件和驗證。透過記錄這種非正式知識,您可以保留它並與後續的員工群組共用。此工作支援卓越營運,並透過整合透過直接體驗取得的實際知識來改善訓練計劃的有效性。
先決條件和限制
先決條件
限制
此解決方案會部署到單一 AWS 帳戶。
此解決方案只能在可使用 Amazon Bedrock 和 Amazon Transcribe 的 AWS 區域中部署。如需可用性的詳細資訊,請參閱 Amazon Bedrock 和 Amazon Transcribe 的文件。
音訊檔案的格式必須是 Amazon Transcribe 支援的格式。如需支援的格式清單,請參閱轉錄文件中的媒體格式。
產品版本
適用於 Python (Boto3) 的 AWS 開發套件 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) 收到電子郵件通知。
在此過程中,AWS Step Functions 會確保以正確的順序啟動每個 Lambda 函數。此狀態機器具有可平行處理的容量,可提高效率。Amazon S3 儲存貯體做為中央儲存儲存庫,透過管理涉及的各種媒體和文件格式來支援工作流程。
工具
AWS 服務
Amazon Bedrock 是一項全受管服務,可讓您透過統一 API 使用來自領導 AI 新創公司的高效能基礎模型 (FMs) 和 Amazon。
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 資源的 AWS CDK 建構 Python 檔案app.py
– 用於在目標 AWS 帳戶中部署 AWS 資源的 AWS CDK 應用程式 Python 檔案requirements.txt
– 必須為 AWS CDK 安裝的所有 Python 相依性清單cdk.json
– 提供建立資源所需的值的輸入檔案
最佳實務
提供的程式碼範例僅用於proof-of-concept(PoC) 或試行目的。如果您想要將解決方案用於生產環境,請使用下列最佳實務:
啟用 VPC 流程日誌
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
匯出帳戶和 AWS 區域的變數。 | 若要使用環境變數提供 AWS CDK 的 AWS 登入資料,請執行下列命令。
| AWS DevOps,DevOps 工程師 |
設定名為 的 AWS CLI 設定檔。 | 若要為帳戶設定 AWS CLI 命名的設定檔,請遵循組態和登入資料檔案設定中的指示。 | AWS DevOps,DevOps 工程師 |
任務 | 描述 | 所需的技能 |
---|---|---|
將儲存庫複製到您的本機工作站。 | 若要複製 genai-knowledge-capture
| AWS DevOps,DevOps 工程師 |
(選用) 取代音訊檔案。 | 若要自訂範例應用程式以整合您自己的資料,請執行下列動作:
| AWS DevOps,DevOps 工程師 |
設定 Python 虛擬環境。 | 若要設定 Python 虛擬環境,請執行下列命令。
| AWS DevOps,DevOps 工程師 |
合成 AWS CDK 程式碼。 | 若要將程式碼轉換為 AWS CloudFormation 堆疊組態,請執行下列命令。
| AWS DevOps,DevOps 工程師 |
任務 | 描述 | 所需的技能 |
---|---|---|
佈建基礎模型存取。 | 啟用存取您 AWS 帳戶的 Anthropic Claude 3 Sonnet 模型。如需說明,請參閱 Bedrock 文件中的新增模型存取。 | AWS DevOps |
在帳戶中部署資源。 | 若要使用 AWS CDK 在 AWS 帳戶中部署資源,請執行下列動作:
| AWS DevOps,DevOps 工程師 |
訂閱 Amazon SNS 主題。 | 若要訂閱 Amazon SNS 主題以進行通知,請執行下列動作:
| 一般 AWS |
任務 | 描述 | 所需的技能 |
---|---|---|
執行 狀態機器。 |
| 應用程式開發人員,一般 AWS |
任務 | 描述 | 所需的技能 |
---|---|---|
移除 AWS 資源。 | 測試解決方案之後,請清除資源:
| AWS DevOps,DevOps 工程師 |
相關資源
AWS 文件
Amazon Bedrock 資源:
AWS CDK 資源:
AWS Step Functions 資源:
其他資源