生成數據智能

利用 Amazon Bedrock 的高階路由技術增強對話式 AI |亞馬遜網路服務

日期:

對話式人工智慧 (AI) 助理旨在透過將查詢智慧路由到最合適的 AI 功能來提供精確、即時的回應。使用 AWS 生成式 AI 服務,例如 亞馬遜基岩,開發人員可以創建能夠熟練管理和回應使用者請求的系統。 Amazon Bedrock 是一項完全託管的服務,使用單一 API 提供來自 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon 等領先 AI 公司的高效能基礎模型 (FM) 以及廣泛的一組構建具有安全性、隱私性和負責任的人工智慧的生成式人工智慧應用所需的功能。

這篇文章評估了開發人工智慧助理的兩種主要方法:使用託管服務,例如 亞馬遜基岩代理,並採用開源技術,例如 浪鏈。我們探討每種方法的優點和挑戰,以便您可以選擇最適合您需求的路徑。

什麼是AI助理?

AI 助理是一種智慧系統,可以理解自然語言查詢並與各種工具、資料來源和 API 交互,以代表使用者執行任務或檢索資訊。有效的人工智慧助理具備以下關鍵能力:

  • 自然語言處理 (NLP) 和會話流
  • 知識庫整合和語義搜索,以根據對話上下文的細微差別理解和檢索相關信息
  • 運行任務,例如資料庫查詢和自訂 AWS Lambda 功能
  • 處理專門的對話和用戶請求

我們以物聯網 (IoT) 裝置管理為例展示人工智慧助理的優勢。在這個用例中,人工智慧可以幫助技術人員透過獲取資料或自動化任務的命令有效地管理機械,從而簡化製造過程中的操作。

Amazon Bedrock 方法的代理

亞馬遜基岩代理 允許您建立生成式 AI 應用程序,該應用程式可以跨公司的系統和資料來源運行多步驟任務。它提供以下關鍵功能:

  • 根據指令、API 詳細資訊和資料來源資訊自動建立提示,節省數週的提示工程工作量
  • 檢索增強生成 (RAG) 可將代理程式安全地連接到公司的資料來源並提供相關回應
  • 透過將請求分解為邏輯序列並呼叫必要的 API 來編排和運行多步驟任務
  • 透過思想鏈 (CoT) 追蹤了解代理的推理,從而可以排除故障並指導模型行為
  • 提示工程能力修改自動產生的提示模板,增強對座席的控制

您可以使用 Amazon Bedrock 代理程式和 Amazon Bedrock 知識庫 為複雜的路由用例建置和部署人工智慧助理。它們透過簡化基礎設施管理、增強可擴展性、提高安全性和減少無差別的繁重工作,為開發人員和組織提供策略優勢。它們還允許更簡單的應用程式層程式碼,因為路由邏輯、向量化和記憶體是完全管理的。

解決方案概述

該解決方案引入了一個對話式 AI 助手,專為在 Amazon Bedrock 上使用 Anthropic 的 Claude v2.1 時的 IoT 設備管理和操作而定制。人工智慧助理的核心功能由一套全面的指令控制,稱為 系統提示,它描述了其能力和專業領域。該指南確保人工智慧助理可以處理廣泛的任務,從管理設備資訊到運行操作命令。

"""The following is the system prompt that outlines the full scope of the AI assistant's capabilities:
You are an IoT Ops agent that handles the following activities:
- Looking up IoT device information
- Checking IoT operating metrics (historical data)
- Performing actions on a device-by-device ID
- Answering general questions
You can check device information (Device ID, Features, Technical Specifications, Installation Guide, Maintenance and Troubleshooting, Safety Guidelines, Warranty, and Support) from the "IotDeviceSpecs" knowledge base.
Additionally, you can access device historical data or device metrics. The device metrics are stored in an Athena DB named "iot_ops_glue_db" in a table named "iot_device_metrics". 
The table schema includes fields for oil level, temperature, pressure, received_at timestamp, and device_id.
The available actions you can perform on the devices include start, shutdown, and reboot."""

配備了這些功能(如係統提示中詳述),人工智慧助理遵循結構化工作流程來解決使用者問題。下圖提供了此工作流程的直覺表示,說明了從初始使用者互動到最終回應的每個步驟。

此工作流程的直覺表示,說明從初始使用者互動到最終回應的每個步驟。

工作流程由以下步驟組成:

  1. 當使用者請求助手執行任務時,該過程就開始了;例如,詢問特定物聯網設備的最大數據點 device_xxx。此文字輸入被捕獲並發送給人工智慧助理。
  2. 人工智慧助理解釋使用者的文字輸入。它使用提供的對話歷史記錄、操作群組和知識庫來了解上下文並確定必要的任務。
  3. 解析並理解使用者意圖後,AI助理定義任務。這是基於助理根據系統提示和使用者輸入解釋的指令。
  4. 然後透過一系列 API 呼叫來運行這些任務。這是使用完成的 反應 提示,它將任務分解為一系列按順序處理的步驟:
    1. 對於設備指標檢查,我們使用 check-device-metrics 操作組,涉及對 Lambda 函數的 API 呼叫,然後進行查詢 亞馬遜雅典娜 對於所請求的資料。
    2. 對於啟動、停止或重新啟動等直接設備操作,我們使用 action-on-device 操作組,它呼叫 Lambda 函數。此函數啟動一個向 IoT 裝置發送命令的進程。對於本文,Lambda 函數使用以下方式發送通知 亞馬遜簡單電子郵件服務 (亞馬遜 SES)。
    3. 我們使用 Amazon Bedrock 的知識庫從儲存為嵌入的歷史資料中獲取 亞馬遜開放搜索服務 向量資料庫。
  5. 任務完成後,最終回應由 Amazon Bedrock FM 產生並傳送回使用者。
  6. Amazon Bedrock 代理程式使用有狀態會話自動儲存資訊以維持相同的對話。在可設定的空閒逾時過後,狀態將被刪除。

技術概述

下圖說明了使用 Agents for Amazon Bedrock 部署 AI 助理的架構。

使用 Agents for Amazon Bedrock 部署 AI 助理的架構圖。

它由以下關鍵組件組成:

  • 對話式介面 – 對話式介面使用 Streamlit,這是一個開源 Python 程式庫,可簡化用於機器學習 (ML) 和資料科學的自訂、視覺上吸引人的 Web 應用程式的建立。它託管於 亞馬遜彈性容器服務 (Amazon ECS) 與 AWS 法門,並使用應用程式負載平衡器對其進行存取。您可以將 Fargate 與 Amazon ECS 結合使用來運行 集裝箱 無需管理伺服器、叢集或虛擬機器。
  • 亞馬遜基岩代理 – Amazon Bedrock 的代理透過一系列推理步驟和基於以下內容的相應操作來完成使用者查詢 反應提示:
    • Amazon Bedrock 知識庫 – Amazon Bedrock 知識庫提供完全託管 抹布 為人工智慧助理提供存取您的資料的權限。在我們的用例中,我們將設備規格上傳到 亞馬遜簡單存儲服務 (亞馬遜 S3)存儲桶。它充當知識庫的資料來源。
    • 行動小組 – 這些是定義的 API 架構,可呼叫特定的 Lambda 函數來與 IoT 裝置和其他 AWS 服務進行互動。
    • Amazon Bedrock 上的 Anthropic Claude v2.1 – 此模型解釋使用者查詢並編排任務流程。
    • 亞馬遜泰坦嵌入 – 此模型用作文字嵌入模型,將自然語言文字(從單字到複雜文件)轉換為數值向量。這實現了向量搜尋功能,使系統能夠在語義上將使用者查詢與最相關的知識庫條目進行匹配,以實現有效搜尋。

該解決方案與 AWS 服務集成,例如用於運行程式碼以響應 API 呼叫的 Lambda、用於查詢資料集的 Athena、用於搜尋知識庫的 OpenSearch Service 以及用於儲存的 Amazon S3。這些服務協同工作,透過自然語言命令為物聯網設備操作管理提供無縫體驗。

優點

此解決方案具有以下優點:

  • 實現複雜度:
    • 所需的程式碼行數更少,因為 Agents for Amazon Bedrock 抽象化了大部分底層複雜性,從而減少了開發工作量
    • 由於 Amazon Bedrock 的知識庫可處理向量化和存儲,因此簡化了 OpenSearch Service 等向量資料庫的管理
    • 透過預先定義的操作組可以更加簡化與各種 AWS 服務的集成
  • 開發者經驗:
    • Amazon Bedrock 控制台提供使用者友善的介面,用於快速開發、測試和根本原因分析 (RCA),從而增強整體開發人員體驗
  • 敏捷性和靈活性:
    • Amazon Bedrock 代理允許在較新的 FM(例如 Claude 3.0)可用時無縫升級到它們,以便您的解決方案保持最新的進展
    • 服務配額和限制由 AWS 管理,減少了監控和擴展基礎架構的開銷
  • 安全性:
    • Amazon Bedrock 是一項完全託管的服務,遵守 AWS 嚴格的安全性和合規性標準,可簡化組織安全審查

儘管 Agents for Amazon Bedrock 提供了用於建立對話式 AI 應用程式的簡化且託管的解決方案,但一些組織可能更喜歡開源方法。在這種情況下,您可以使用像 LangChain 這樣的框架,我們將在下一節中討論。

LangChain動態路由方法

LangChain 是一個開源框架,透過允許整合大型語言模型 (LLM) 和動態路由功能來簡化對話式 AI 的建構。透過LangChain表達式語言(LCEL),開發者可以定義 路由,它允許您創建非確定性鏈,其中上一步的輸出定義下一步。路由有助於提供與法學碩士互動的結構和一致性。

在這篇文章中,我們使用與 IoT 裝置管理的 AI 助理相同的範例。然而,主要的區別在於我們需要單獨處理系統提示,並將每個鏈視為一個單獨的實體。路由鏈根據使用者的輸入決定目的地鏈。這個決定是在LLM的支持下透過傳遞系統提示、聊天記錄和使用者問題來做出的。

解決方案概述

下圖說明了動態路由解決方案的工作流程。

LangChain 的動態路由解決方案工作流程

該工作流程包括以下步驟:

  1. 用戶向人工智慧助理提出問題。例如,“設備 1009 的最大指標是多少?”
  2. 法學碩士評估每個問題以及同一會話中的聊天歷史記錄,以確定其性質及其所屬的主題領域(例如 SQL、操作、搜尋或 SME)。 LLM 將輸入分類,LCEL 路由鏈接受該輸入。
  3. 路由器鏈根據輸入選擇目標鏈,LLM 提供以下系統提示:
"""Given the user question below, classify it as one of the candidate prompts. You may want to modify the input considering the chat history and the context of the question. 
Sometimes the user may just assume that you have the context of the conversation and may not provide a clear input. Hence, you are being provided with the chat history for more context. 
Respond with only a Markdown code snippet containing a JSON object formatted EXACTLY as specified below. 
Do not provide an explanation to your classification beside the Markdown, I just need to know your decision on which destination and next_inputs
<candidate prompt>
physics: Good for answering questions about physics
sql: sql: Good for querying sql from AWS Athena. User input may look like: get me max or min for device x?
lambdachain: Good to execute actions with Amazon Lambda like shutting down a device or turning off an engine User input can be like, shutdown device x, or terminate process y, etc.
rag: Good to search knowledgebase and retrieve information about devices and other related information. User question can be like: what do you know about device x?
default: if the input is not well suited for any of the candidate prompts above. this could be used to carry on the conversation and respond to queries like provide a summary of the conversation
</candidate prompt>"""

法學碩士評估使用者的問題以及聊天歷史記錄,以確定查詢的性質及其所屬的主題領域。然後,LLM 將輸入分類,並按以下格式輸出 JSON 回應:

<Markdown>
```json
{{
"destination": string  name of the prompt to use
"next_inputs": string  a potentially modified version of the original input
}}
```

路由器鏈使用此 JSON 回應來呼叫對應的目標鏈。有四個特定主題的目標鏈,每個都有自己的系統提示:

  1. SQL相關的查詢被傳送到SQL目標鏈以進行資料庫互動。您可以使用 LCEL 來構建 SQL 鏈。
  2. 操作導向的問題呼叫自訂 Lambda 目標鏈來運行操作。使用 LCEL,您可以定義自己的 自定義功能;在我們的例子中,它是一個運行預先定義 Lambda 函數來發送帶有解析的裝置 ID 的電子郵件的函數。使用者輸入範例可能是「關閉設備 1009」。
  3. 以搜尋為中心的查詢繼續進行 抹布 資訊檢索的目標鏈。
  4. 與中小企業相關的問題將轉到中小企業/專家目的地鏈以獲得專業見解。
  5. 每個目標鏈接受輸入並運行必要的模型或函數:
    1. SQL 鏈使用 Athena 來執行查詢。
    2. RAG鏈使用OpenSearch Service進行語意搜尋。
    3. 自訂 Lambda 鏈運行 Lambda 函數來執行操作。
    4. 中小企業/專家鏈使用 Amazon Bedrock 模型提供見解。
  6. 來自每個目的地鏈的回應均由法學碩士制定為連貫的見解。然後將這些見解傳遞給用戶,完成查詢週期。
  7. 使用者輸入和回應儲存在 亞馬遜DynamoDB 為法學碩士提供當前課程和過去互動的背景資訊。 DynamoDB 中持久資訊的持續時間由應用程式控制。

技術概述

下圖展示了LangChain動態路由解決方案的架構。

LangChain動態路由解決方案架構圖

該 Web 應用程式基於 Streamlit 構建,該 Streamlit 透過 Fargate 託管在 Amazon ECS 上,並使用應用程式負載平衡器對其進行存取。我們使用 Amazon Bedrock 上的 Anthropic 的 Claude v2.1 作為我們的法學碩士。 Web 應用程式使用 LangChain 庫與模型進行互動。它還與各種其他 AWS 服務(例如 OpenSearch Service、Athena 和 DynamoDB)交互,以滿足最終用戶的需求。

優點

此解決方案具有以下優點:

  • 實現複雜度:
    • 儘管需要更多的程式碼和客製化開發,但 LangChain 提供了更大的靈活性和對路由邏輯的控制以及與各種元件的整合。
    • 管理 OpenSearch 服務等向量資料庫需要額外的設定和配置工作。向量化過程是用程式碼實現的。
    • 與 AWS 服務整合可能涉及更多自訂程式碼和配置。
  • 開發者經驗:
    • LangChain 基於 Python 的方法和豐富的文件對已經熟悉 Python 和開源工具的開發人員很有吸引力。
    • 與使用 Amazon Bedrock 控制台相比,快速開發和調試可能需要更多的手動工作。
  • 敏捷性和靈活性:
    • LangChain支援廣泛的法學碩士,讓您在不同的模式或提供者之間切換,從而提高靈活性。
    • LangChain的開源特性使得社群驅動的改進和客製化成為可能。
  • 安全性:
    • 作為一個開源框架,LangChain 可能需要組織內部更嚴格的安全審查和審查,這可能會增加開銷。

結論

對話式人工智慧助理是簡化營運和增強使用者體驗的變革性工具。本文探討了使用 AWS 服務的兩種強大方法:Amazon Bedrock 的託管代理程式和靈活的開源 LangChain 動態路由。這些方法之間的選擇取決於您組織的要求、開發偏好和所需的客製化程度。無論採取何種方式,AWS 都可以讓您創建智慧 AI 助手,徹底改變業務和客戶交互

在我們的中尋找解決方案程式碼和部署資產 GitHub存儲庫,您可以在其中遵循每種對話式 AI 方法的詳細步驟。


關於作者

阿米爾·哈克梅 是位於賓州的 AWS 解決方案架構師。他與東北地區的獨立軟體供應商 (ISV) 合作,協助他們在 AWS 雲端上設計和建構可擴展的現代化平台。 Ameer 是人工智慧/機器學習和生成式人工智慧領域的專家,幫助客戶釋放這些尖端技術的潛力。閒暇時,他喜歡騎摩托車,與家人共度美好時光。

李莎朗 是位於波士頓的 Amazon Web Services 的 AI/ML 解決方案架構師,熱衷於在 AWS 上設計和建構生成式 AI 應用程式。她與客戶合作,利用 AWS AI/ML 服務來實現創新解決方案。

考薩爾·卡邁勒 是 Amazon Web Services 的高級解決方案架構師,在基礎設施自動化和安全領域擁有超過 15 年的經驗。他幫助客戶在雲端設計和建立可擴展的 DevSecOps 和 AI/ML 解決方案。

現貨圖片

最新情報

現貨圖片

和我們線上諮詢

你好呀!我怎麼幫你?