概觀
要建置生成式 AI 應用程式,其中一項主要挑戰是複雜的雲端設定以及對深度 AI 專業知識的需求。AWS 上的生成式 AI 應用程式建置器可簡化此程序,協助您開發、測試和部署 AI 應用程式,而無需廣泛的 AI 知識。此解決方案可輕鬆整合您的業務資料、比較大型語言模型 (LLM) 的效能、透過 AI 代理人執行多步驟任務、快速建置可擴展應用程式,並使用企業級架構進行部署,藉此來加快 AI 開發。生成式 AI 應用程式建置器隨附即用的生成 AI 聊天機器人和 API,可快速整合至您的商業程序或應用程式。
除了 Amazon SageMaker 上部署的 LLM 之外,此解決方案還包括與 Amazon Bedrock 及其 LLM 的整合。該解決方案使用 Amazon Bedrock 工具進行檢索增強生成 (RAG) 來增強 AI 回應,使用 Amazon Bedrock Guardrails 來實作防護機制並減少幻覺,以及使用 Amazon Bedrock 代理程式來為複雜的任務建立工作流程。您還可以使用 LangChain 或 AWS Lambda 連線至其他 AI 模型。從簡單的無程式碼精靈開始,建置 AI 應用程式,用於對話式搜尋、採用生成式 AI 技術的聊天機器人、文字產生和文字摘要。
優勢
此解決方案可讓使用者消除部署具有不同組態的多個執行個體,以及比較輸出和效能等繁重工作,藉此快速進行實驗。試驗各種 LLM 的多種組態、提示詞工程、企業知識庫、防護機制、AI 代理人和其他參數。
因為具有多種 LLM 的預先建置連接器,例如透過 Amazon Bedrock 提供的模型,此解決方案讓您能夠靈活地部署您選擇的模型,以及您喜好的 AWS 和領先的 FM 服務。您還可以啟用 Amazon Bedrock 代理程式來完成各種任務和工作流程。
此解決方案採用 AWS Well-Architected 設計原則建置,提供具有高可用性和低延遲的企業級安全性和可擴展性,從而確保以高效能標準無縫整合至您的應用程式中。
藉由整合現有專案或原生連接的額外 AWS 服務,來擴展此解決方案的功能。由於這是開放原始碼應用程式,因此您可以使用隨附的 LangChain 協同運作層或 Lambda 函數來與您選擇的服務建立連線。
技術詳細資訊
您可以使用實作指南和隨附的 AWS CloudFormation 範本自動部署此架構,可部署三種單獨的架構︰
- 代理程式使用案例 – 代理程式使用案例可讓使用者利用 Amazon Bedrock 代理程式來傳遞要完成的任務。您可以選取模型、以自然語言撰寫一些指示,Amazon Bedrock AI 代理人將藉由連線至您的資料來源或其他 API 來分析、協調和完成任務,以滿足您的請求。
- 文字使用案例 – 文字使用案例讓使用者能透過生成式 AI 體驗自然語言介面。此使用案例可整合到新的或現有的應用程式中,且可透過部署儀表板或透過提供的 URL 單獨部署。
- 部署儀表板 – 部署儀表板是一個可充當管理主控台的 Web UI,管理員使用者可將其用於檢視、管理和建立使用案例。此儀表板讓客戶能夠使用 LLM 和資料的多種組態來快速實驗、反覆運作和部署生成式 AI 應用程式。
-
代理程式使用案例
-
文字使用案例
-
部署儀表板
-
代理程式使用案例
-
步驟 1
商業使用者透過使用部署儀表板來部署使用案例。商業使用者登入使用案例 UI。
步驟 2
Amazon CloudFront 提供託管在 Amazon Simple Storage Service (Amazon S3) 儲存貯體中的 Web UI。
步驟 3
Web UI 可利用透過 Amazon API Gateway 建置的 WebSocket 整合。API 閘道由自訂 AWS Lambda Authorizer 函數提供支援,該服務依據驗證使用者所屬的 Amazon Cognito 群組,傳回適當的 AWS Identity and Access Management (IAM) 政策。步驟 4
Amazon Cognito 會驗證使用者,並同時為 CloudFront Web UI 和 API Gateway 提供支援。步驟 5
該解決方案將商業使用者的傳入請求從 API 閘道傳遞至 Amazon Simple Queue Service (Amazon SQS) 佇列,然後傳送至 Lambda 函數。佇列可啟用 API 閘道至 Lambda 整合的非同步操作。佇列會將連線資訊傳遞至 Lambda 函數,然後將結果直接發布回 API 閘道 WebSocket 連線,以支援長期執行的推論調用。
步驟 6
Lambda 函數會視需使用 Amazon DynamoDB 來取得使用案例組態。
步驟 7
Lambda 函數利用使用者輸入和相關的使用案例組態,來建置請求承載並傳送至 Amazon Bedrock 代理程式,以滿足使用者意圖。步驟 8
當回應從 Amazon Bedrock 代理程式返回時,Lambda 函數會透過 API Gateway WebSocket 傳送回應,以供用戶端應用程式取用。步驟 9
使用 Amazon CloudWatch,此解決方案會收集各種服務的作業指標,以產生自訂儀表板,讓您能夠監控部署的效能和營運運作狀態。
-
文字使用案例
-
步驟 1
管理員使用者透過使用部署儀表板來部署使用案例。商業使用者登入使用案例 UI。
步驟 2
CloudFront 提供託管在 S3 儲存貯體中的 Web UI。步驟 3
Web UI 可利用透過 API Gateway 建置的 WebSocket 整合。 API 閘道由自訂 Lambda Authorizer 函數提供支援,該服務依據驗證使用者所屬的 Amazon Cognito 群組,傳回適當的 IAM 政策。政策會存放在 DynamoDB 中。步驟 4
Amazon Cognito 會驗證使用者,並同時為 CloudFront Web UI 和 API Gateway 提供支援。
步驟 5
商業使用者的傳入請求會從 API 閘道傳遞至 Amazon SQS 佇列,然後傳送至 LangChain 協調器。 LangChain 協調器 是 Lambda 函數和層的集合,可提供商業邏輯來處理商業使用者的請求。佇列可啟用 API 閘道 至 Lambda 整合的非同步操作。佇列會將連線資訊傳遞至 Lambda 函數,然後將結果直接發布回 API 閘道 WebSocket 連線,以支援長期執行的推論呼叫。
步驟 6
LangChain 協調器使用 DynamoDB 來取得已設定的 LLM 選項和必要的工作階段資訊,例如聊天歷史記錄。步驟 7
如果部署已設定知識庫,則 LangChain 協調器會利用 Amazon Kendra 或 Amazon Bedrock 知識庫來執行搜尋查詢以擷取文件摘錄。步驟 8
LangChain 協調器會使用知識庫的聊天記錄、查詢和關聯內容,建立最終提示並將請求傳送至託管在 Amazon Bedrock 或 Amazon SageMaker 上的 LLM。步驟 9
當回應從 LLM 返回時,LangChain 協調器透過 API 閘道 WebSocket 將回應串流傳回,以供用戶端應用程式取用。步驟 10
使用 CloudWatch,此解決方案會收集各種服務的作業指標,以產生自訂儀表板,讓您能夠監控部署的效能和營運運作狀態。 -
部署儀表板
-
步驟 1
管理員使用者登入部署儀表板 UI。步驟 2
CloudFront 提供託管在 S3 儲存貯體中的 Web UI。
步驟 3
AWS WAF 可保護 API 免受攻擊。此解決方案會設定稱為 Web 存取控制清單 (Web ACL) 的規則集,該規則集依據可設定、使用者定義的 Web 安全規則和條件來允許、封鎖或計算 Web 請求。
步驟 4
Web UI 善用一組使用 API 閘道公開的 REST API。
步驟 5
Amazon Cognito 會驗證使用者,並同時為 CloudFront Web UI 和 API Gateway 提供支援。DynamoDB 資料表會存放授權使用者的 IAM 政策。步驟 6
Lambda 提供 REST 端點的商業邏輯。此支援 Lambda 函數可管理並建立使用 AWS CloudFormation 執行使用案例部署所需的資源。步驟 7
DynamoDB 會存放部署清單。步驟 8
當管理員使用者建立新的使用案例時,支援 Lambda 函數會針對請求的使用案例起始 CloudFormation 堆疊建立事件。步驟 9
管理員使用者在部署精靈中提供的所有 LLM 組態選項,都會儲存在 DynamoDB 中。部署會使用此 DynamoDB 資料表,在執行時期設定 LLM。
步驟 10
使用 CloudWatch,此解決方案會收集各種服務的作業指標,以產生自訂儀表板,讓您能夠監控解決方案的效能和營運運作狀態。