本文介紹如何部署和運(yùn)行適用于 Python 的企業(yè)聊天應(yīng)用示例。 此示例使用 Python、Azure OpenAI 服務(wù)和 Azure AI 搜索中的檢索擴(kuò)充生成(RAG)實(shí)現(xiàn)聊天應(yīng)用,以獲取虛構(gòu)公司員工福利的解答。
關(guān)注TechLead,分享AI全維度知識(shí)。作者擁有10+年互聯(lián)網(wǎng)服務(wù)架構(gòu)、AI產(chǎn)品研發(fā)經(jīng)驗(yàn)、團(tuán)隊(duì)管理經(jīng)驗(yàn),同濟(jì)本復(fù)旦碩,復(fù)旦機(jī)器人智能實(shí)驗(yàn)室成員,阿里云認(rèn)證的資深架構(gòu)師,項(xiàng)目管理專業(yè)人士,上億營(yíng)收AI產(chǎn)品研發(fā)負(fù)責(zé)人文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-804838.html
聊天機(jī)器人架構(gòu)概述
下圖顯示了聊天應(yīng)用的簡(jiǎn)單體系結(jié)構(gòu):
體系結(jié)構(gòu)的關(guān)鍵組件包括:
- 用于托管交互式聊天體驗(yàn)的 Web 應(yīng)用程序。
- 用于從自己的數(shù)據(jù)獲取答案的 Azure AI 搜索資源。
- 要提供的 Azure OpenAI 服務(wù):
- 用于增強(qiáng)自有數(shù)據(jù)搜索性能的關(guān)鍵字。
- 來(lái)自 OpenAI 模型的解答。
- 來(lái)自 ada 模型的嵌入
消耗成本
此體系結(jié)構(gòu)中的大多數(shù)資源使用基本定價(jià)層或消耗定價(jià)層。 消耗定價(jià)基于使用量,這意味著你只需為使用的部分付費(fèi)。 完成本文將收取一定費(fèi)用,但費(fèi)用極少。 完成本文后,可以刪除資源以停止產(chǎn)生費(fèi)用。
詳細(xì)了解 示例存儲(chǔ)庫(kù)中的成本。
環(huán)境準(zhǔn)備
開(kāi)發(fā)容器 環(huán)境提供了完成本文所需的所有依賴項(xiàng)。 可以在 GitHub Codespaces(在瀏覽器中)或在本地使用 Visual Studio Code 運(yùn)行開(kāi)發(fā)容器。
若要使用本文,需要滿足以下先決條件:
- Azure 訂閱 - 免費(fèi)創(chuàng)建訂閱
- Azure 帳戶權(quán)限 - Azure 帳戶必須具有 Microsoft.Authorization/roleAssignments/write 權(quán)限,例如[用戶訪問(wèn)管理員]或[所有者]。
- 已在所需的 Azure 訂閱中授予對(duì) Azure OpenAI 的訪問(wèn)權(quán)限。 目前,僅應(yīng)用程序授予對(duì)此服務(wù)的訪問(wèn)權(quán)限。 可以通過(guò)在 https://aka.ms/oai/access 上填寫表單來(lái)申請(qǐng)對(duì) Azure OpenAI 的訪問(wèn)權(quán)限。 如果有任何問(wèn)題,請(qǐng)?jiān)诖舜鎯?chǔ)庫(kù)上提出問(wèn)題以聯(lián)系A(chǔ)zure。
- [Azure 開(kāi)發(fā)人員 CLI]
- Docker Desktop - 啟動(dòng) Docker Desktop (如果尚未運(yùn)行)
- Visual Studio Code
- 開(kāi)發(fā)容器擴(kuò)展
打開(kāi)開(kāi)發(fā)環(huán)境
現(xiàn)在從安裝了完成本文所需的所有依賴項(xiàng)的開(kāi)發(fā)環(huán)境開(kāi)始。
適用于 Visual Studio Code 的開(kāi)發(fā)容器擴(kuò)展要求在本地計(jì)算機(jī)上安裝 Docker。 擴(kuò)展使用 Docker 主機(jī)在本地托管開(kāi)發(fā)容器,該主機(jī)已預(yù)安裝完成本文所需的合適的開(kāi)發(fā)人員工具和依賴項(xiàng)。
-
在空目錄的上下文中打開(kāi) Visual Studio Code。
-
確保在 Visual Studio Code 中安裝了開(kāi)發(fā)容器擴(kuò)展。
-
在編輯器中打開(kāi)新終端。 可以使用主菜單導(dǎo)航到“終端”菜單選項(xiàng),然后選擇“新建終端”選項(xiàng)。
-
使用 Azure Developer CLI 登錄到 Azure。
azd auth login
出現(xiàn)提示時(shí),請(qǐng)從終端復(fù)制代碼,然后將其粘貼到瀏覽器中。 按照說(shuō)明使用 Azure 帳戶進(jìn)行身份驗(yàn)證。
-
創(chuàng)建一個(gè)文件夾并將其初始化,以在 Azure Developer CLI 中使用示例項(xiàng)目:
azd init -t azure-search-openai-demo
無(wú)需克隆此存儲(chǔ)庫(kù)。
-
打開(kāi)命令面板,搜索“開(kāi)發(fā)容器”命令,然后選擇“開(kāi)發(fā)容器:在容器中重新打開(kāi)”。Visual Studio Code 可能會(huì)自動(dòng)提示重新打開(kāi)在開(kāi)發(fā)容器中的現(xiàn)有文件夾。 這在功能上等效于使用命令面板重新打開(kāi)容器中的當(dāng)前工作區(qū)。
-
再次重新打開(kāi)終端窗口(Ctrl + `),將其保持打開(kāi)狀態(tài)。
-
此項(xiàng)目中的剩余練習(xí)在此開(kāi)發(fā)容器的上下文中進(jìn)行。
部署和運(yùn)行
示例存儲(chǔ)庫(kù)包含將聊天應(yīng)用部署到 Azure 所需的所有代碼和配置文件。 以下步驟將指導(dǎo)完成將示例部署到 Azure 的過(guò)程。
將聊天應(yīng)用部署到 Azure
重要
在本部分中創(chuàng)建的 Azure 資源的即時(shí)成本,主要來(lái)自 Azure AI 搜索資源。 即使在完全執(zhí)行命令之前中斷命令,這些資源也會(huì)產(chǎn)生費(fèi)用。
-
運(yùn)行以下 Azure Developer CLI 命令來(lái)預(yù)配 Azure 資源并部署源代碼:
azd up
-
當(dāng)系統(tǒng)提示輸入環(huán)境名稱時(shí),請(qǐng)使用小寫字母的簡(jiǎn)短名稱。 例如
myenv
。 它用作資源組名稱的一部分。 -
出現(xiàn)提示時(shí),選擇要在其中創(chuàng)建資源的訂閱。
-
當(dāng)系統(tǒng)第一次提示你選擇位置時(shí),請(qǐng)選擇你附近的位置。 此位置用于大多數(shù)資源,包括托管。
-
如果系統(tǒng)提示你輸入 OpenAI 模型的位置,請(qǐng)選擇你附近的位置。 如果可以使用與第一個(gè)位置相同的位置,請(qǐng)選擇該位置。
-
等待應(yīng)用部署完成。 部署可能需要 5-10 分鐘才能完成。
-
成功部署應(yīng)用程序后,終端中會(huì)顯示一個(gè) URL。
-
選擇標(biāo)記為
(?) Done: Deploying service webapp
的 URL 在瀏覽器中打開(kāi)聊天應(yīng)用程序。
使用聊天應(yīng)用從 PDF 文件獲取答案
聊天應(yīng)用預(yù)加載了 PDF 文件中的員工權(quán)益信息。 可以使用聊天應(yīng)用詢問(wèn)有關(guān)權(quán)益的問(wèn)題。 以下步驟將引導(dǎo)你完成使用聊天應(yīng)用的過(guò)程。
- 在瀏覽器中,選擇或輸入 在性能評(píng)審中會(huì)發(fā)生什么情況? 在聊天文本框中。
2. 從答案中選擇引文。
-
在右窗格中,使用選項(xiàng)卡了解如何生成答案。
Tab 說(shuō)明 思考過(guò)程 這是聊天中交互的腳本。 可以查看系統(tǒng)提示 ( content
) 和用戶問(wèn)題 (content
)。支持內(nèi)容 這包括用于回答你的問(wèn)題的信息和來(lái)源材料。 開(kāi)發(fā)人員設(shè)置中記錄了來(lái)源材料引文的數(shù)量。 默認(rèn)值為 3。 引文 這會(huì)顯示包含引文的原始頁(yè)面。 -
完成后,再次選擇所選選項(xiàng)卡以關(guān)閉窗格。
使用聊天應(yīng)用設(shè)置更改答復(fù)行為
聊天的智能由 OpenAI 模型和用于與模型交互的設(shè)置確定。
設(shè)置 | 說(shuō)明 |
---|---|
替代提示模板 | 這是用于生成答案的提示。 |
檢索這么多搜索結(jié)果 | 這是用于生成答案的搜索結(jié)果數(shù)。 可以在引文的“思考過(guò)程”和“支持內(nèi)容”選項(xiàng)卡中看到這些返回的來(lái)源。 |
排除類別 | 這是從搜索結(jié)果中排除的文檔類別。 |
使用語(yǔ)義排名程序進(jìn)行檢索 | 這是 Azure AI 搜索的一項(xiàng)功能,它使用機(jī)器學(xué)習(xí)來(lái)提高搜索結(jié)果的相關(guān)性。 |
使用查詢上下文摘要而不是整個(gè)文檔 | 當(dāng)同時(shí)檢查 Use semantic ranker 和 Use query-contextual summaries 時(shí),LLM 使用從排名最高的文檔中的關(guān)鍵段落(而不是所有段落)中提取的標(biāo)題。 |
建議后續(xù)問(wèn)題 | 讓聊天應(yīng)用根據(jù)答案建議后續(xù)問(wèn)題。 |
檢索模式 | 矢量 + 文本意味著搜索結(jié)果基于文檔的文本和文檔嵌入。 矢量意味著搜索結(jié)果基于文檔嵌入。 文本意味著搜索結(jié)果基于文檔的文本。 |
流式聊天完成響應(yīng) | 流式處理響應(yīng),而不是等待,直到完整的答案可用于響應(yīng)。 |
以下步驟將引導(dǎo)你完成更改設(shè)置的過(guò)程。
-
在瀏覽器中,選擇**“開(kāi)發(fā)人員設(shè)置**”選項(xiàng)卡。
-
選中“建議后續(xù)問(wèn)題”復(fù)選框,然后再次提出相同的問(wèn)題。
What happens in a performance review?
聊天返回了建議的后續(xù)問(wèn)題,例如:
1. What is the frequency of performance reviews? 2. How can employees prepare for a performance review? 3. Can employees dispute the feedback received during the performance review?
-
在“設(shè)置”選項(xiàng)卡中,取消選擇“使用語(yǔ)義排名程序進(jìn)行檢索”。
-
再次問(wèn)同樣的問(wèn)題?
What happens in a performance review?
-
答案有什么區(qū)別?
借助語(yǔ)義排名器:在 Contoso Electronics 進(jìn)行績(jī)效審查期間,員工將有機(jī)會(huì)討論他們?cè)诠ぷ鲌?chǎng)所的成功和挑戰(zhàn)(1)。 審查將提供積極和建設(shè)性的反饋,以幫助員工發(fā)展和發(fā)展其角色(1)。 員工將收到績(jī)效評(píng)審的書面摘要,其中包括對(duì)即將到來(lái)的一年(1)績(jī)效、反饋和目標(biāo)和目標(biāo)的評(píng)級(jí)。 績(jī)效評(píng)審是經(jīng)理和員工之間的雙向?qū)υ挘?)。
沒(méi)有語(yǔ)義排名器:在 Contoso Electronics 進(jìn)行績(jī)效評(píng)審期間,員工有機(jī)會(huì)在工作場(chǎng)所討論他們的成功和挑戰(zhàn)。 提供了積極和建設(shè)性的反饋,以幫助員工發(fā)展和發(fā)展其角色。 給出績(jī)效評(píng)審的書面摘要,包括即將來(lái)臨的一年的性能、反饋和目標(biāo)評(píng)分。 審查是經(jīng)理和員工之間的雙向?qū)υ挘?)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-804838.html
關(guān)注TechLead,分享AI全維度知識(shí)。作者擁有10+年互聯(lián)網(wǎng)服務(wù)架構(gòu)、AI產(chǎn)品研發(fā)經(jīng)驗(yàn)、團(tuán)隊(duì)管理經(jīng)驗(yàn),同濟(jì)本復(fù)旦碩,復(fù)旦機(jī)器人智能實(shí)驗(yàn)室成員,阿里云認(rèn)證的資深架構(gòu)師,項(xiàng)目管理專業(yè)人士,上億營(yíng)收AI產(chǎn)品研發(fā)負(fù)責(zé)人
到了這里,關(guān)于Azure Machine Learning - 聊天機(jī)器人構(gòu)建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!