LUIS DevOps 的持續整合和持續傳遞工作流程
重要
LUIS 將於 2025 年 10 月 1 日淘汰,從 2023 年 4 月 1 日起,您將無法建立新的 LUIS 資源。 建議您 將 LUIS 應用程式 移轉至 對話式語言理解 ,以受益於持續的產品支援和多語系功能。
開發 Language Understanding (LUIS) 應用程式的軟體工程師可以套用有關原始檔控制、自動化組建、測試和發行管理方面的 DevOps 做法。 本文說明實作 LUIS 自動化組建的概念。
建置 LUIS 的自動化工作流程
在您的原始碼管理 (SCM) 系統中,設定自動化建置管線以在下列事件中執行:
- 引發提取要求時觸發的PR工作流程。 此工作流程會先驗證PR 的內容,再將更新合併至主要分支。
- CI/CD 工作流程 會在將更新推送至主要分支時觸發,例如合併PR中的變更。 此工作流程可確保主要分支的所有更新品質。
CI/CD 工作流程結合了兩個互補的開發程式:
持續整合 (CI) 是經常在共用存放庫中認可程序代碼,並在其上執行自動化建置的工程實務。 與自動化 測試 方法配對,持續整合可讓我們確認每個更新的 LUDown 來源仍然有效,而且可以匯入 LUIS 應用程式,但也通過一組測試,確認已定型的應用程式可以辨識解決方案所需的意圖和實體。
持續傳遞 (CD) 會進一步採用持續整合概念,將應用程式自動部署到您可以執行更深入測試的環境。 CD 可讓我們儘早瞭解我們變更所產生的任何未預期問題,並瞭解測試涵蓋範圍中的差距。
持續整合和持續傳遞的目標是確保「主要永遠可寄送」。 對於 LUIS 應用程式,這表示我們可以視需要從主要分支 LUIS 應用程式取得任何版本,並將其寄送至生產環境。
用於建置 LUIS 自動化工作流程的工具
提示
您可以在 LUIS DevOps 範本存放庫中找到實作 DevOps 的完整解決方案。
有不同的組建自動化技術可用來建立組建自動化工作流程。 它們全都需要您可以使用命令行介面 (CLI) 或 REST 呼叫來編寫步驟的腳本,以便它們可以在組建伺服器上執行。
使用下列工具來建置 LUIS 的自動化工作流程:
Bot Framework Tools LUIS CLI 可與 LUIS 應用程式和版本搭配使用、定型、測試,並在 LUIS 服務內發佈它們。
Azure CLI 可查詢 Azure 訂用帳戶、擷取 LUIS 撰寫和預測密鑰,以及建立用於自動化驗證的 Azure 服務主體 。
NLU。用於測試 LUIS 應用程式的 DevOps 工具,以及分析測試結果。
PR 工作流程
如前所述,您會設定此工作流程,以在開發人員引發PR時執行,以建議要從功能分支合併至主要分支的變更。 其目的是在合併至主要分支之前,先確認PR中變更的品質。
此工作流程應:
- 藉由匯入PR中的來源來
.lu
建立暫時的LUIS應用程式。 - 定型和發佈 LUIS 應用程式版本。
- 針對它執行所有 單元測試 。
- 如果所有測試都通過,則通過工作流程,否則會失敗。
- 清除並刪除暫存應用程式。
如果您的 SCM 支援,請設定分支保護規則,讓此工作流程必須順利完成,才能完成 PR。
主要分支 CI/CD 工作流程
將此工作流程設定為在PR中的更新合併至主要分支之後執行。 其目的是藉由測試更新,將主要分支的品質列保持在高位。 如果更新符合品質列,此工作流程會將新的 LUIS 應用程式版本部署到您可以執行更多深入測試的環境。
此工作流程應:
使用更新的原始程式碼,在主要 LUIS 應用程式中建置新版本(您為主要分支維護的應用程式)。
定型和發佈 LUIS 應用程式版本。
執行所有 單元測試。
選擇性地執行 批次測試 來測量 LUIS 應用程式版本的質量和精確度,並將其與某些基準進行比較。
如果測試成功完成:
- 標記存放庫中的來源。
- 執行持續傳遞 (CD) 作業,將 LUIS 應用程式版本部署至環境以進行進一步測試。
持續傳遞 (CD)。
CI/CD 工作流程中的CD作業會在建置和自動化單元測試成功時有條件地執行。 其作業是將 LUIS 應用程式自動部署到您可以執行更多測試的環境。
沒有一個建議的解決方案,說明如何最好地部署 LUIS 應用程式,而且您必須實作適合您專案的程式。 LUIS DevOps 範本存放庫會為此實作簡單的解決方案,也就是將新的 LUIS 應用程式版本發佈至生產發佈位置。 這適用於簡單的設定。 不過,如果您需要同時支持數個不同的生產環境,例如 開發、 預備 和 UAT,則每個應用程式兩個具名發佈位置的限制將會證明不足。
部署應用程式版本的其他選項包括:
- 讓發佈至直接版本端點的應用程式版本,並實作程式,以視需要設定具有直接版本端點的下游生產環境。
- 針對每個生產環境維護不同的 LUIS 應用程式,並撰寫自動化步驟,以將 匯
.lu
入目標生產環境的 LUIS 應用程式中的新版本,以進行定型和發布。 - 將測試過的 LUIS 應用程式版本匯出至 LUIS Docker 容器 ,並將 LUIS 容器部署至 Azure 容器實例。
版本管理
一般而言,我們建議您只對非生產環境進行持續傳遞,例如開發與預備環境。 大部分小組都需要手動檢閱和核准程式,才能部署至生產環境。 針對生產環境部署,您可能會想要確定當開發小組的關鍵人員可供支援或低流量期間時發生。
使用 GitHub Actions 將 DevOps 套用至 LUIS 應用程式開發
移至 LUIS DevOps 範本存放庫 ,以取得實作 LUIS DevOps 和軟體工程最佳做法的完整解決方案。 您可以使用此範本存放庫來建立自己的存放庫,其中包含 CI/CD 工作流程的內建支援,以及針對您自己的專案啟用 原始檔控制、自動化組建、 測試和發行管理的做法。
LUIS DevOps 範本存放庫會逐步解說如何:
- 複製範本存放庫 - 將範本複製到您自己的 GitHub 存放庫。
- 設定 LUIS 資源 - 在 Azure 中建立 LUIS 撰寫和預測資源,供持續整合工作流程使用。
- 設定 CI/CD 工作流程 - 設定 CI/CD 工作流程的參數,並將其儲存在 GitHub 秘密中。
- 逐步解 說「開發內部迴圈」 - 開發人員在開發分支中工作時,對範例 LUIS 應用程式進行更新、測試更新,然後提出提取要求來提出變更,並尋求檢閱核准。
- 執行 CI/CD 工作流程 - 執行持續整合工作流程,以使用 GitHub Actions 建置及測試 LUIS 應用程式。
- 執行自動化測試 - 執行 LUIS 應用程式的 自動化批次測試,以評估應用程式的品質。
- 部署 LUIS 應用程式 - 執行 持續傳遞 (CD) 作業 以發布 LUIS 應用程式。
- 搭配您自己的專案 使用存放庫 - 說明如何將存放庫與您自己的 LUIS 應用程式搭配使用。
下一步
瞭解如何使用 NLU 撰寫 GitHub Actions 工作流程。DevOps
使用 LUIS DevOps 範本存放庫,將 DevOps 套用至您自己的專案。