使用 Amazon 基岩和 Amazon Transcribe 來記錄語音輸入的機構知識 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon 基岩和 Amazon Transcribe 來記錄語音輸入的機構知識

由庫馬爾傑亞拉揚(AWS),橋俊東(AWS),吳梅根(AWS)和拉吉夫·庫帕迪伊(AWS)創建

代碼存儲庫:genai-knowledge-capture

環境:PoC 或試點

技術:機器學習和人工智能; 業務生產力; CloudNative

AWS 服務:Amazon 基岩;AWS CDK;AWS Lambda;Amazon SNS;AWS Step Functions;Amazon Transcribe

Summary

捕捉機構知識對於確保組織的成功和韌性至關重要。機構知識代表了員工隨著時間的推移積累的集體智慧,見解和經驗,通常在自然界中默契並非正式地傳下來。這種豐富的信息包括獨特的方法,最佳實踐以及解決複雜問題的解決方案,這些問題可能無法在其他地方記錄。通過正式化和記錄這些知識,公司可以保留機構記憶,促進創新,增強決策過程,並加快新員工的學習曲線。此外,它還促進協作,賦予個人權力,並培養持續改進的文化。最終,利用機構知識可以幫助公司利用其最有價值的資產(勞動力的集體智能)在動態的業務環境中應對挑戰,推動增長並保持競爭優勢。

這種模式解釋瞭如何通過高級員工的錄音來捕獲機構知識。它使用 Amazon TranscribeAmazon 基岩進行系統的文檔和驗證。通過記錄這些非正式知識,您可以保留它,並與後續的員工群體共享。這項努力通過整合通過直接經驗獲得的實踐知識來支持卓越運營並提高培訓計劃的有效性。

先決條件和限制

先決條件

限制

  • 此解決方案部署到單一 AWS 帳戶。

  • 此解決方案只能在提供 Amazon 基岩和 Amazon Transcribe 的 AWS 區域部署。如需可用性的相關資訊,請參閱 Amazon 基岩Amazon 轉錄的文件。

  • 音頻文件必須是 Amazon Transcribe 支持的格式。如需支援的格式清單,請參閱 Transcribe 文件中的媒體格式

產品版本

  • 適用於蟒蛇的 AWS 開發套件 (博圖 3) 1.34.57 版或更新版本

  • LangChain 版本 0.1.12 或更新版本

架構

該架構代表 AWS 上的無伺服器工作流程。AWS Step Functions 可協調 Lambda 函數,以進行音訊處理、文字分析和文件產生。下圖顯示了 Step Functions 工作流程,也稱為狀態機

Step Functions 狀態機生成文檔的體系結構圖

狀態機中的每個步驟都由不同的 Lambda 函數處理。以下是文件產生程序中的步驟:

  1. preprocessLambda 函數會驗證傳遞至 Step Functions 數的輸入,並列出提供的 Amazon S3 URI 資料夾路徑中存在的所有音訊檔案。工作流程中的下游 Lambda 函數會使用檔案清單來驗證、摘要和產生文件。

  2. transcribeLambda 函數使用 Amazon Transcribe 將音頻文件轉換為文本記錄。此 Lambda 函數負責啟動轉錄程序,並準確地將語音轉換為文字,然後儲存以供後續處理。

  3. L validate ambda 函數會分析文字記錄,判斷回應初始問題的相關性。透過 Amazon 基岩使用大型語言模型 (LLM),它可以識別主題相關答案,並將主題答案與離題回應分開。

  4. L summarize ambda 函數使用 Amazon 基岩來生成一致且簡潔的主題答案摘要。

  5. generateLambda 函數會將摘要彙編成結構良好的文件。它可以根據預定義的模板格式化文檔,並包括任何其他必要的內容或數據。

  6. 如果任何 Lambda 函數失敗,您會透過亞馬遜簡單通知服務 (Amazon SNS) 收到電子郵件通知。

在整個過程中,AWS Step Functions 數可確保以正確的順序啟動每個 Lambda 函數。該狀態機具有 parallel 處理的能力,以提高效率。Amazon S3 儲存貯體充當中央儲存庫,透過管理涉及的各種媒體和文件格式來支援工作流程。

工具

AWS 服務

  • Amazon 基岩是一項全受管服務,可透過統一的 API,讓領先的 AI 新創公司和 Amazon 提供的高效能基礎模型 (FM) 供您使用。

  • AWS Lambda 是一種運算服務,可協助您執行程式碼,而不需要佈建或管理伺服器。它只會在需要時執行程式碼並自動調整規模,因此您只需為使用的運算時間付費。

  • Amazon Simple Notification Service (Amazon SNS) 可協助您協調和管理發佈者和客戶之間的訊息交換,包括 Web 伺服器和電子郵件地址。

  • Amazon Simple Storage Service (Amazon S3) 是一種雲端型物件儲存服務,可協助您儲存、保護和擷取任何數量的資料。

  • AWS Step Functions 是一種無伺服器協調服務,可協助您結合 AWS Lambda 函數和其他 AWS 服務來建立關鍵業務應用程式。 

  • Amazon Transcribe 是一種自動語音辨識服務,使用機器學習模型將音訊轉換為文字。

其他工具

  • LangChain是用於開發由大型語言模型(LLM)提供支持的應用程序的框架。

代碼存儲庫

此模式的代碼可在 GitHub genai-knowledge-capture存儲庫中找到。

代碼存儲庫包含以下文件和文件夾:

  • assets資料夾 — 解決方案的靜態資產,例如架構圖和公開資料集

  • code/lambdas資料夾 — 所有 Lambda 函數的 Python 程式碼

    • code/lambdas/generate文件夾-從 S3 存儲桶中的摘要數據生成文檔的 Python 代碼

    • code/lambdas/preprocess文件夾-處理 Step Functions 狀態機輸入的 Python 代碼

    • code/lambdas/summarize文件夾-使用 Amazon 基岩服務總結轉錄數據的 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) 或試驗目的。如果您想要將解決方案推向生產環境,請使用下列最佳作法:

史诗

任務描述所需技能

匯出帳戶和 AWS 區域的變數。

若要使用環境變數為 AWS CDK 提供 AWS 登入資料,請執行下列命令。

export CDK_DEFAULT_ACCOUNT=<12-digit AWS account number> export CDK_DEFAULT_REGION=<Region>
AWS DevOps、 DevOps 工程師

設定 AWS CLI 命名的設定檔。

若要為帳戶設定 AWS CLI 命名的設定檔,請按照組態和登入資料檔案設定中的指示進行操作。

AWS DevOps、 DevOps 工程師
任務描述所需技能

將存放庫克隆到您的本地工作站。

要克隆genai-knowledge-capture存儲庫,請在終端中運行以下命令。

git clone https://github.com/aws-samples/genai-knowledge-capture
AWS DevOps、 DevOps 工程師

(選擇性) 取代音訊檔案。

若要自訂範例應用程式以合併您自己的資料,請執行下列動作:

  1. 導覽至複製的存放庫中的assets/audio_samples資料夾。

  2. 刪除包含範例音訊檔案的資料夾。

  3. 為您要分析的每個主題建立一個資料夾。

  4. 將音頻文件傳輸到各自的文件夾。

AWS DevOps、 DevOps 工程師

設定虛 Python 環境。

若要設定 Python 虛擬環境,請執行下列命令。

cd genai-knowledge-capture python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt
AWS DevOps、 DevOps 工程師

合成 AWS CDK 程式碼。

若要將程式碼轉換為 AWS CloudFormation 堆疊組態,請執行下列命令。

cdk synth
AWS DevOps、 DevOps 工程師
任務描述所需技能

提供基礎模型存取權。

為您的 AWS 帳戶啟用人性克勞德 3 十四行詩模型的存取權。如需指示,請參閱基岩文件中的新增模型存取權限

AWS DevOps

在帳戶中部署資源。

若要使用 AWS CDK 在 AWS 帳戶中部署資源,請執行下列動作:

  1. (選擇性) 在複製存放庫的根目錄中,於app.py檔案中更新 AWS CloudFormation 堆疊名稱。預設堆疊名稱為genai-knowledge-capture-stack

  2. 若要部署資源,請執行命令cdk deploy

    此命cdk deploy令使用第 3 層建構來建立一組 Lambda 函數、S3 儲存貯體、Amazon SNS 主題和 Step Functions 狀態機器。在部署期間,資assets/audio_samples料夾中的音訊檔案會複製到 S3 儲存貯體。

  3. 登入 AWS 管理主控台,然後在 https://console.aws.amazon.com/cloudformation/ 開啟 CloudFormation 主控台。

  4. 確認堆疊已成功部署。如需指示,請參閱在 AWS CloudFormation 主控台上檢閱您的堆疊

AWS DevOps、 DevOps 工程師

訂閱 Amazon SNS 主題。

若要訂閱 Amazon SNS 主題以取得通知,請執行下列動作:

  1. 在 CloudFormation 主控台的導覽窗格中,選擇 [堆疊]。

  2. 選擇genai-knowledge-capture-stack堆疊。

  3. 選擇 Output (輸出) 索引標籤。

  4. 使用金鑰尋找 Amazon SNS 主題名稱SNSTopicName

  5. 按照訂閱電子郵件地址到 Amazon SNS 主題中的指示,設定要接收通知的電子郵件地址

一般 AWS
任務描述所需技能

運行狀態機。

  1. 開啟「Step Functions」主控台

  2. 在 [狀態電腦] 頁面上,選擇 [genai-knowledge-capture-stack狀態機器]。

  3. 選擇 Start execution (開始執行)

  4. (選擇性) 在「名稱」方塊中,輸入執行項目的名稱。

  5. 在「入」區域中,透過取代預留位置文字來輸入下列 JSON 物件,其中:

    • <Name>是您想要命名文檔的名稱。

    • <S3 bucket name>是包含音訊檔案的 Amazon S3 儲存貯體的名稱。

    • <Folder path>是包含音訊檔案的目錄。

    {   "documentName": "<Name>",   "audioFileFolderUri": "s3://<S3 bucket name>/<Folder path>" }
  6. 選擇 Start Execution (開始執行)

  7. 在執行詳細資訊頁面上,檢閱結果並等待執行完成。

一般 AWS 應用程式開發人員
任務描述所需技能

移除 AWS 資源。

測試解決方案之後,請清理資源:

  1. 刪除 S3 儲存貯體中的所有物件,然後刪除儲存貯體。如需詳細資訊,請參閱刪除值區

  2. 從複製的儲存庫中,執行命令cdk destroy

AWS DevOps、 DevOps 工程師

相關資源

AWS 文件

其他資源