您的組織需要一個多通路智慧聊天機器人和一個能夠理解分散在不同位置的不同類型資料的搜尋引擎。此外,對話式聊天機器人應該能夠提供詢問的答案,以及來源以及如何以及在何處獲得答案的解釋。換句話說,您希望您的組織擁有私有且安全的 ChatGPT,它可以解釋、理解並回答有關您的業務資料的問題。
POC 的目標是展示/證明使用 Azure 服務建立的 GPT 虛擬助理的價值,並在您自己的環境中使用您自己的資料。可交付成果是:
使用 Bot Framework 建立的後端 Bot API 並暴露給多個管道(網路聊天、MS Teams、簡訊、電子郵件、Slack 等)
具有搜尋和機器人 UI 的前端 Web 應用程式。
該存儲庫旨在逐步教您如何建立基於 OpenAI 的智慧搜尋引擎。每個筆記本都建立在彼此之上,並最終建立兩個應用程式。
對於 Microsoft FTE:這是客戶資助的 VBD,低於交付的資產。
物品 | 描述 | 關聯 |
---|---|---|
VBD SKU 資訊和數據表 | CSAM 必須根據統一支援合約的積分/小時數將其作為「客戶投資」進行發送。客戶決定是 3 天還是 5 天。 | ESXP SKU 頁面 |
CSA 的 VBD 認證 | CSA 獲得舉辦研討會所需認證的鏈接 | 連結 1 , 連結 2 |
VBD 3-5天POC資產(IP) | 要交付的 MVP(此 GitHub 儲存庫) | Azure-認知-搜尋-Azure-OpenAI-加速器 |
VBD 研討會平台 | 介紹和解釋工作坊的甲板 | AOAI GPT Azure 智慧搜尋引擎加速器簡介.pptx |
CSA 訓練影片 | 針對 Microsoft CSA 的 2 小時培訓 | POC VBD 培訓錄音(新影片即將推出!) |
先決條件 客戶 3-5 天 POC
Azure 訂閱
已接受 Azure Open AI 的應用程序,包括 GPT-4o。如果客戶沒有獲得 GPT-4o 批准,Microsoft CSA 可以在研討會期間借出他們的 GPT-4o
Microsoft 成員最好在用戶端 Azure AD 中新增為來賓。如果不可能,客戶可以向 Microsoft 會員頒發公司 ID
需要在客戶 Azure 租用戶中為此 Workshop POC 設定資源群組 (RG)
客戶團隊和 Microsoft 團隊必須擁有此資源組的貢獻者權限,以便他們可以在研討會前 2 週設定所有內容
必須在 RG 中設定儲存帳戶。
客戶資料/文件必須在研討會日期前至少兩週上傳到 Blob 儲存帳戶
多租用戶應用程式註冊(服務主體)必須由客戶建立(保存客戶端 ID 和秘密值)。
客戶必須向 Microsoft 團隊提供他們希望機器人正確回應的 10-20 個問題(從易到難)。
對於研討會期間的 IDE 協作和標準化,將使用 Jupyper Lab 的 AML 計算實例,為此,必須在 RG 中部署 Azure 機器學習工作區
注意:請確保 Azure 機器學習工作區中有足夠的核心運算配額
用戶提出問題。
在應用程式中,OpenAI LLM 使用巧妙的提示來根據使用者輸入確定要使用的來源
有五種類型的來源可用:
電視節目《老友記》所有劇集的對話文字記錄
90,000 份 Covid 出版物摘要
4 本冗長的 PDF 書籍
3a. Azure SQL 資料庫 - 包含美國與新冠肺炎相關的統計資料。
3b. API 端點 - RESTful OpenAPI 3.0 API 包含有關 Covid 的最新統計資料。
3c. Azure Bing 搜尋 API - 提供對互聯網的訪問,允許諸如以下場景:公共網站上的 QnA。
3d. Azure AI 搜尋 - 包含來自 Blob 儲存體的 AI 豐富文件:
3f. CSV 表格檔案 - 包含美國與新冠肺炎相關的統計資料。
該應用程式從來源檢索結果並給出答案。
元組(問題和答案)作為持久記憶體保存到 CosmosDB 中,以便進一步分析。
答案傳遞給使用者。
https://gptsmartsearchapp.azurewebsites.net/
100% Python。
使用 Azure 認知服務來索引和豐富非結構化文件:影像 OCR、分塊和自動向量化。
使用 Azure AI 搜尋的混合搜尋功能提供最佳語義答案(文字和向量搜尋相結合)。
使用 LangChain 作為與 Azure OpenAI、向量儲存互動、建置提示和建立代理程式的包裝器。
多語言(攝取、索引並理解任何語言)
多索引 -> 多個搜尋索引
使用 CSV 檔案和 SQL 風格資料庫的表格資料問答
使用 Azure AI 文件智慧 SDK(以前的表單識別器)解析複雜/大型 PDF 文檔
使用 Bing 搜尋 API 為公共網站提供網路搜尋和問答。
透過將自然語言問題轉換為 API 呼叫來連接到 API 資料來源。
使用 CosmosDB 作為持久記憶體來保存使用者的對話。
使用 Streamlit 在 python 中建立前端 Web 應用程式。
使用 Bot 框架和 Bot 服務託管 Bot API 後端並公開給包括 MS Teams 在內的多個管道。
也使用 LangServe/FastAPI 部署具有串流功能的替代後端 API
注意:(前提條件)您需要已建立 Azure OpenAI 服務
將此儲存庫分叉到您的 Github 帳戶。
在 Azure OpenAI studio 中,部署這些模型(低於下面所述的模型將無法運作):
“gpt-4o”
“gpt-4o-迷你”
“text-embedding-ada-002(或更新版本)”
建立一個資源組,該加速器的所有資產都將位於其中。 Azure OpenAI 可以位於不同的 RG 或不同的訂閱。
按一下下方建立執行筆記本所需的所有 Azure 基礎架構(Azure AI 搜尋、認知服務等):
注意:如果您之前從未建立過Azure AI Services Multi-Service account
,請在 Azure 入口網站中手動建立帳戶以閱讀並接受 Responsible AI 條款。部署後,刪除它,然後使用上面的部署按鈕。
將您的 Forked 儲存庫複製到 AML 計算實例。如果您的儲存庫是私有的,請參閱下方的故障排除部分如何複製私有儲存庫。
確保在Python 3.10 conda 環境或更新版本上運行筆記本
在您的電腦上安裝依賴項(確保在要執行筆記本的相同 conda 環境中執行下列 pip 命令。例如,在 AZML 計算實例中執行:
conda activate azureml_py310_sdkv2 pip install -r ./common/requirements.txt
您可能會遇到一些 pip 依賴項錯誤,但這沒關係,無論錯誤如何,程式庫都已正確安裝。
使用您自己在步驟 4 中建立的服務中的值編輯檔案credentials.env
。
對於 BLOB_SAS_TOKEN 和 BLOB_CONNECTION_STRING。前往儲存帳戶>安全性 + 網路>共用存取簽章>產生 SAS
按順序運行筆記本。它們相互疊加。
為什麼使用 Azure AI 搜尋引擎為 LLM 提供上下文而不是微調 LLM?
答:引用 OpenAI 文件:「GPT-3 已針對來自開放互聯網的大量文本進行了預訓練。當僅給出幾個示例的提示時,它通常可以憑直覺知道您正在嘗試執行並生成什麼任務通常被稱為「小樣本學習」。微調透過訓練超出提示範圍的更多範例來改善小樣本學習,讓您在大量任務上取得更好的結果。一旦模型經過微調,您將不再需要在提示中提供範例。這可以節省成本並實現更低延遲的請求”
然而,微調模型需要提供數百或數千個提示和完成元組,它們本質上是查詢回應樣本。微調的目的不是讓法學碩士了解公司的數據,而是為其提供範例,以便其能夠很好地執行任務,而無需在每次提示時提供範例。
在某些情況下,需要微調,例如當範例包含不應在提示中公開的專有資料時,或當使用的語言高度專業化時,如在醫療保健、製藥或其他行業或使用語言的用例中在網路上並不常見。
克隆私有倉庫的步驟:
在您的終端機上,貼上下面的文本,並替換為您的 GitHub 電子郵件地址。產生新的 SSH 金鑰。
ssh-keygen -t ed25519 -C“[email protected]”
將 SSH 公鑰複製到剪貼簿。新增的 SSH 金鑰。
cat ~/.ssh/id_ed25519.pub# 然後選擇終端機中顯示的 id_ed25519.pub 檔案# 的內容並將其複製到剪貼簿
在 GitHub 上,前往“設定”->“SSH 和 GPG 金鑰”->“新 SSH 金鑰”
在「標題」欄位中,為新密鑰新增描述性標籤。 “AML 計算”。在「金鑰」欄位中,貼上您的公鑰。
複製您的私人倉庫
git clone [email protected]:您的使用者名稱/您的儲存庫.git
該項目歡迎貢獻和建議。 大多數貢獻都要求您同意貢獻者授權協議 (CLA),聲明您有權並且實際上授予我們使用您的貢獻的權利。有關詳細信息,請訪問 https://cla.opensource.microsoft.com。
當您提交拉取請求時,CLA 機器人將自動確定您是否需要提供 CLA 並適當地修飾 PR(例如,狀態檢查、評論)。只需按照機器人提供的說明進行操作即可。您只需使用我們的 CLA 在所有儲存庫中執行一次此操作。
該專案採用了微軟開源行為準則。有關詳細信息,請參閱行為準則常見問題解答或聯繫 [email protected] 提出任何其他問題或意見。
該項目可能包含項目、產品或服務的商標或標誌。 Microsoft 商標或標誌的授權使用須遵守且必須遵循 Microsoft 的商標和品牌指南。在此項目的修改版本中使用 Microsoft 商標或標誌不得混淆或暗示 Microsoft 贊助。任何對第三方商標或標誌的使用均須遵守這些第三方的政策。