用Amazon Bedrock 創建互動式生成AI代理

生成式 AI 驅動的自動化工作流程代理

各種規模的公司都面臨著維持營運效率的持續壓力。 數據量不斷增加、系統日益複雜,以及需要管理的大量客戶互動,都進一步加劇了這一挑戰。 傳統的手動流程和通常不連貫的資訊來源可能會導致嚴重的瓶頸。 這些障礙會減慢決策速度,並阻礙團隊將時間和精力投入到真正有價值的、能推動業務發展的工作上。 生成式 AI 代理代表了一種變革性的解決方案。 這些代理可以自動與公司的現有系統連接、執行各種任務並提供即時洞察。 這使組織能夠有效地擴展其營運,而不會相應地增加複雜性。

Amazon Bedrock in SageMaker Unified Studio 直接解決了這些普遍存在的挑戰。 它提供了一個統一的服務,專為構建 AI 驅動的解決方案而設計。 該平台集中了客戶數據並支持自然語言交互,使其直觀且易於使用。 一個關鍵優勢是它與現有應用程式的無縫集成。 它還整合了基本的 Amazon Bedrock 功能,包括廣泛的基礎模型 (FMs) 選擇、提示工程功能、用於上下文理解的知識庫、用於任務執行的代理、用於工作流程編排的流程、用於效能監控的評估工具,以及用於負責任的 AI 開發的護欄。 用戶可以通過其組織的單一登錄 (SSO) 系統方便地訪問這套全面的 AI 功能。 這促進了團隊成員之間的協作,並允許在不需要直接訪問 AWS 管理控制台的情況下完善 AI 應用程式。

Amazon Bedrock in SageMaker Unified Studio 使您能夠創建和部署複雜的生成式 AI 代理。 這些代理可以與您組織的應用程式、數據庫甚至第三方系統無縫集成。 這種集成級別支持跨整個技術堆疊的自然語言交互。 聊天代理充當關鍵橋樑,將複雜的資訊系統與用戶友好的通信連接起來。 通過利用 Amazon Bedrock functions 和 Amazon Bedrock Knowledge Bases,代理獲得了連接不同數據源的能力。 這些來源可以從用於實時項目狀態跟踪的 JIRA API 到用於檢索客戶資訊的客戶關係管理 (CRM) 系統。 代理還可以更新項目任務、管理用戶偏好等等。

這種全面的功能為組織內的各個團隊提供了顯著的好處。 銷售和營銷團隊可以快速訪問客戶資訊及其首選會議時間。 項目經理可以有效地管理 JIRA 任務和時間表,優化項目工作流程。 這種由 AI 代理促進的簡化流程可提高整個組織的生產力並改善客戶互動。

解決方案概述

Amazon Bedrock 提供了一個受控的協作環境,全部在 SageMaker Unified Studio 中,用於構建和共享生成式 AI 應用程式。 讓我們深入研究一個實際的示例解決方案,該解決方案演示了客戶管理代理的實現:

  • Agentic Chat: 可以使用 Amazon Bedrock 的聊天應用程式功能構建複雜的 agentic 聊天應用程式。 此聊天應用程式可以與使用其他 AWS 服務(例如用於無伺服器計算的 AWS Lambda 和用於創建和管理 API 的 Amazon API Gateway)輕鬆構建的功能無縫集成。
  • 數據管理: SageMaker Unified Studio 與 Amazon DataZone 結合,通過其集成服務提供全面的數據管理解決方案。 組織管理員可以對成員訪問 Amazon Bedrock 模型和功能進行精細控制。 這確保了安全的身份管理和精細的訪問控制,維護數據安全性和合規性。

在我們深入研究 AI 代理的部署之前,最好先了解架構的關鍵步驟。

工作流程如下展開:

  1. 用戶身份驗證和交互: 用戶通過使用其組織在 AWS IAM Identity Center 中的 SSO 憑證登錄 SageMaker Unified Studio 來啟動該過程。 經過身份驗證後,用戶使用自然語言與聊天應用程式交互,提出問題或提出請求。
  2. 函數調用: Amazon Bedrock 聊天應用程式智能地利用預定義的函數來檢索相關資訊。 此函數可能旨在從數據庫中獲取 JIRA 狀態更新或客戶資訊。 檢索是通過使用 API Gateway 的安全端點執行的。
  3. 安全訪問和 Lambda 觸發: 聊天應用程式使用 API Gateway 對自身進行身份驗證,以安全地訪問指定的端點。 此身份驗證是使用安全存儲在 AWS Secrets Manager 中的隨機生成的 API 密鑰實現的。 根據用戶的請求,觸發適當的 Lambda 函數。
  4. 操作執行: 現在已激活的 Lambda 函數執行用戶請求的特定操作。 這涉及使用代理提供的必要參數調用 JIRA API 或查詢數據庫。 該代理旨在處理各種任務,包括:
    1. 提供特定客戶的簡要概述。
    2. 列出與特定客戶的最近互動。
    3. 檢索指定客戶的會議偏好。
    4. 檢索與特定項目關聯的未結 JIRA 票證列表。
    5. 更新特定 JIRA 票證的截止日期。

先決條件

要遵循此解決方案實施並構建您自己的客戶管理代理,您需要滿足以下先決條件:

  • AWS 帳戶: 必須擁有有效的 AWS 帳戶才能訪問必要的服務。
  • SageMaker Unified Studio 訪問權限: 需要用戶在 SageMaker Unified Studio 中訪問 Amazon Bedrock。
  • 模型訪問權限: 您需要對 Amazon Bedrock 上的 Amazon Nova Pro 進行模型訪問。 確保此模型在受支持的 AWS 區域中可用。
  • JIRA 設置: 需要 JIRA 應用程式、其對應的 JIRA URL 以及與您的帳戶關聯的 JIRA API 令牌才能與 JIRA 集成。

假設您對 AWS 上的基本無伺服器概念有基本的了解,包括 API Gateway、Lambda 函數和 IAM Identity Center。 雖然這篇文章不會提供這些服務的深入定義,但我們將在 SageMaker Unified Studio 中提供的新的 Amazon Bedrock 功能的上下文中演示它們的用例。

部署解決方案

要部署客戶管理代理解決方案,請按照以下步驟操作:

  1. 下載代碼: 首先從提供的 GitHub 存儲庫下載必要的代碼。
  2. 檢索 JIRA 憑證: 獲取 Lambda 函數的 JIRA_API_KEY_ARNJIRA_URLJIRA_USER_NAME 的值。 這些憑證將用於向您的 JIRA 實例進行身份驗證。
  3. 啟動 CloudFormation 堆疊: 利用提供的 AWS CloudFormation 模板。 有關在您首選的 AWS 區域中啟動堆疊的詳細說明,請參閱“從 CloudFormation 控制台創建堆疊”的文檔。
  4. API Gateway URL: 成功部署 CloudFormation 堆疊後,導航到 Outputs 選項卡。 找到並記下 ApiInvokeURL 值。 此 URL 代表您的 API Gateway 的端點。
  5. Secrets Manager 配置: 訪問 Secrets Manager 控制台。 找到與 JIRA_API_KEY_ARNJIRA_URLJIRA_USER_NAME 對應的密鑰。
  6. 更新密鑰值: 為每個密鑰選擇 Retrieve secret 選項。 將在步驟 2 中獲得的相應變量複製到密鑰純文本字符串中。 這將安全地存儲您的 JIRA 憑證。
  7. 登錄 SageMaker Unified Studio: 使用您組織的 SSO 憑證登錄 SageMaker Unified Studio。

創建新項目

基礎設施到位後,讓我們在 SageMaker Unified Studio 中創建一個新項目:

  1. 項目創建: 在 SageMaker Unified Studio 登陸頁面上,啟動新項目的創建。
  2. 項目命名: 為您的項目分配一個描述性名稱(例如,crm-agent)。
  3. 配置文件選擇: 選擇 Generative AI application development profile 並繼續。
  4. 默認設置: 接受默認設置並繼續。
  5. 確認: 檢查項目配置並選擇 Create project 以確認。

構建聊天代理應用程式

現在,讓我們構建解決方案的核心 – 聊天代理應用程式:

  1. 聊天代理啟動:crm-agent 項目登陸頁面中,找到右側的 New 部分。 選擇 Chat agent 以開始構建您的應用程式。
    這將顯示您的代理應用程式的配置列表。

  2. 模型選擇: 在模型部分下,選擇 Amazon Bedrock 支持的所需基礎模型 (FM)。 對於此 crm-agent,我們將選擇 Amazon Nova Pro。

  3. 系統提示定義: 在系統提示部分,提供以下提示。 此提示將指導代理的行為和響應。 您可以選擇包含用戶輸入和模型響應的示例,以進一步優化其性能。

    您是一名客戶關係管理代理,負責幫助銷售人員規劃他們與客戶的工作。 您將獲得一個 API 端點。 此端點可以提供公司概覽、公司互動歷史記錄(會議時間和備註)、公司會議偏好(會議類型、星期幾和時間)等資訊。 您還可以查詢 Jira 任務並更新其時間表。 收到響應後,將其整理成可讀的格式。 如果輸出是編號列表,請使用換行符和數字將其格式化。

  4. 函數創建:Functions 部分,選擇 Create a new function。 此函數將定義代理可以執行的操作。

  5. 函數命名: 為您的函數指定一個描述性名稱,例如 crm_agent_calling

  6. 函數模式: 對於 Function schema,使用 GitHub 存儲庫中提供的 OpenAPI 定義。 此模式定義函數的輸入和輸出參數。

  7. 身份驗證配置: 對於 Authentication method,選擇 API Keys (Max. 2 Keys) 並輸入以下詳細資訊:

    1. 對於 Key sent in,選擇 Header
    2. 對於 Key name,輸入 x-api-key
    3. 對於 Key value,輸入 Secrets Manager API Key。
  8. API 伺服器端點:API servers 部分,輸入您從 CloudFormation Outputs 獲得的端點 URL(ApiInvokeURL)。

  9. 函數完成: 選擇 Create 以完成函數創建。

  10. 應用程式保存: 在聊天代理應用程式的 Functions 部分,選擇您剛剛創建的函數,然後選擇 Save 以完成應用程式創建。

示例互動

讓我們探索一些關於如何使用此聊天代理的實際示例:

用例 1:CRM 分析師檢索客戶詳細資訊

CRM 分析師可以使用自然語言來檢索存儲在數據庫中的客戶詳細資訊。 以下是他們可能會問的一些示例問題:

  • ‘給我客戶 C-jkl101112 的簡要概述。’
  • ‘列出客戶 C-def456 最近的 2 次互動。’
  • ‘客戶 C-mno131415 更喜歡哪種通信方式?’
  • ‘根據 C-ghi789 的偏好和我們上次的互動,推薦最佳時間和聯繫渠道。’

代理在收到這些請求後,將智能地查詢數據庫並以清晰簡潔的格式提供相應的答案。

用例 2:項目經理管理 JIRA 票證

項目經理可以使用代理來列出和更新 JIRA 票證。 以下是一些示例互動:

  • ‘項目 ID CRM 的未結 JIRA 任務是什麼?’
  • ‘請將 JIRA 任務 CRM-3 更新為 1 週後。’

代理將訪問 JIRA 看板,獲取相關的項目資訊,並提供未結 JIRA 任務的列表。 它還將根據用戶的請求更新特定任務的時間表。

清理

為防止產生不必要的費用,請執行以下清理步驟:

  1. 刪除 CloudFormation 堆疊: 刪除您之前部署的 CloudFormation 堆疊。
  2. 刪除函數組件: 刪除您在 Amazon Bedrock 中創建的函數組件。
  3. 刪除聊天代理應用程式: 刪除 Amazon Bedrock 中的聊天代理應用程式。
  4. 刪除域: 刪除 SageMaker Unified Studio 中的域。

成本

在 SageMaker Unified Studio 中使用 Amazon Bedrock 不會產生任何單獨的費用。 但是,您將需要為服務中使用的各個 AWS 服務和資源付費。 Amazon Bedrock 採用按需付費模式,這意味著您只需為您消耗的資源付費,沒有最低費用或預先承諾。

如果您需要有關定價計算的進一步幫助,或者對優化特定用例的成本有疑問,建議聯繫 AWS Support 或諮詢您的客戶經理。 他們可以根據您的需求提供量身定制的指導。