什麼是 Bot Framework SDK?

適用于: SDK v4

Bot Framework 與 Azure Bot Service一起提供工具來建置、測試、部署和管理智慧型 Bot。 Bot Framework 包含模組化且可延伸的 SDK,可用來建置 Bot,以及工具、範本和相關 AI 服務。 透過此架構,開發人員可以建立使用語音、瞭解自然語言、處理問題和解答等等的 Bot。

什麼是 Bot?

Bot 提供的體驗比較不像使用電腦,比較像是與人溝通,或至少是與智慧型機器人溝通。 它們可以用來將簡單、重複的工作,例如取得晚餐預約或收集設定檔資訊,轉移至可能不再需要直接人為介入的自動化系統。 使用者可使用文字、互動式卡片和語音來與 Bot 交談。 Bot 互動可以是快速的問與答,也可以是以智慧方式提供服務存取權的複雜對話。

Bot 可以視為具有交談介面的 Web 應用程式。 使用者透過 Facebook、Slack 或Microsoft Teams等通道連線到 Bot。

  • 關於輸入並執行相關工作的 Bot 原因 。 這包括要求使用者提供其他資訊或代表使用者存取服務。
  • Bot 會對使用者的輸入執行辨識,以解譯使用者要求或說出的內容。
  • Bot 會產生回應,以傳送給使用者,以傳達 Bot 正在執行或已完成的工作。
  • 根據 Bot 的設定方式及其向通道註冊的方式,使用者可以透過文字或語音與 Bot 互動,而交談可能包含影像和視訊。

A remote bot interacts with a user on a device via text, speech, images, or video

Bot 非常類似新式 Web 應用程式,位於網際網路上,並使用 API 來傳送和接收訊息。 視 Bot 的種類而定,Bot 的功能差異很大。 現代化 Bot 軟體依賴一些技術和工具,可在各種平台上提供日益複雜的體驗。 不過,簡單的 Bot 可能只會收到訊息,並以極少的相關程式碼來回應使用者。

Bot 可執行其他類型的軟體可以執行的作業:讀取和寫入檔案、使用資料庫和 API,以及進行一般計算工作。 Bot 的特點就是其使用通常保留給人與人通訊的機制。

Azure Bot Service 和 Bot Framework 供應專案:

  • 用於開發 Bot 的 Bot Framework SDK
  • Bot Framework 工具,可涵蓋端對端 Bot 開發工作流程
  • Bot Framework Service (BFS),可在 Bot 與通道之間傳送及接收訊息和事件
  • Azure 中的 Bot 部署和通道組態

此外,Bot 可使用其他 Azure 服務,例如:

  • 用以建置智慧型應用程式的 Azure 認知服務
  • 適用於雲端儲存體解決方案的 Azure 儲存體

如何建置 Bot

Azure Bot Service和 Bot Framework 提供一組整合的工具和服務,以協助建置程式。 選擇您慣用的開發環境或命令列工具來建立 Bot。 C#、JAVA、JavaScript、Typescript 和 Python 有 SDK 存在。 我們在 Bot 各種開發階段皆提供各項工具,協助您設計及建置 Bot。

Overview of the bot life cycle

計畫

如同任何類型的軟體,務必徹底了解目標、程序及使用者需求,才能建立成功的 Bot。 撰寫程式碼之前,請先檢閱 Bot 設計指導方針 以取得最佳做法,並找出 Bot 的需求。 您可以建立簡單的 Bot,或包含更複雜的功能,例如語音、自然語言理解和問題解答。

Build

Bot 是一項 Web 服務,可實作對話式介面並透過 Bot Framework Service 進行通訊,以傳送和接收訊息和事件。 Bot Framework Service 是 Azure Bot Service 和 Bot Framework 的其中一個元件。 您可以使用任意多個環境和語言建立 Bot。 您可以 建立用於 本機開發的 Bot。

我們在 Azure Bot Service 和 Bot Framework 中提供可用來增強 Bot 功能的其他元件:

功能 描述 連結
新增自然語言處理 讓您的 Bot 能夠理解自然語言、理解拼字錯誤、使用語音,以及辨識使用者的意圖 如何使用 LUIS
回答問題 新增知識庫,以更自然的對話方式回答使用者的問題 如何使用 QnA Maker
管理多個模型 使用多個模型時 (例如 LUIS 和 nA Maker),可在 Bot 對話期間,採用智慧方式判斷各個模型的使用時機 如何使用 Orchestrator
新增卡片和按鈕 利用文字以外的媒體 (例如圖形、功能表和卡片) 來強化使用者體驗 如何新增媒體和卡片

注意

上表並非完整清單。 請參閱左側文章了解更多 Bot 功能,第一篇為傳送訊息

此外,我們會提供命令列工具,協助您建立、管理及測試 Bot 資產。 這些工具可以設定 LUIS 應用程式、建置 QnA 知識庫、建置模型以在元件之間路由、模擬交談等等。 您可以在命令列工具 讀我檔案中找到更多詳細資料。

您也可以存取各種範例,這些範例展現許多可透過 SDK 取得的功能。 這些非常適合尋找更豐富的功能起點的開發人員。

測試

Bot 是複雜的應用程式,具有許多不同的元件一起運作。 和其他複雜的應用程式一樣,這種方式會導致一些有趣的錯誤,或是讓 Bot 產生出乎意料的行為。 在發佈之前,請先測試 Bot。 在發行 Bot 以供使用前,我們會提供數種方式來測試 Bot:

  • 使用Bot Framework Emulator在本機測試 Bot。 Bot Framework 模擬器是獨立的應用程式,不僅提供交談介面,還提供偵錯和訊問工具來協助您了解 Bot 的運作方式和原因。 Emulator可以在本機與開發中的 Bot 應用程式一起執行。

  • Web 上測試您的 Bot。 透過 Azure 入口網站進行設定後,Bot 也可透過網路聊天介面觸達。 網路聊天介面適合用來將 Bot 的存取權授與給測試人員,以及其他無法直接存取 Bot 執行中程式碼的人員。

  • 使用目前的 Bot Framework SDK進行 Bot 單元測試

發佈

當您準備在 Web 上提供您的 Bot 時,請將 Bot 發佈至 Azure 或自己的 Web 服務或資料中心。 在公用網際網路上有一個位址是 Bot 在您的網站上,或在聊天通道內活化的第一個步驟。

連線

將 Bot 連線至 Facebook、Messenger、Kik、Slack、Microsoft Teams、Telegram、文字/簡訊和Twilio等通道。 Bot Framework 會進行從上述各種平台傳送和接收訊息所需的大部分工作 - 不論所連線到的通道數目和類型為何, Bot 應用程式都會接收統一、正規化的訊息串流。 如需新增通道的資訊,請參閱通道主題。

評估

使用在 Azure 入口網站收集的資料,就有機會改善 Bot 功能和效能。 您可以取得服務層級和流量、延遲與整合等檢測資料。 Analytics 提供使用者、訊息和通道資料的相關交談層級報告。 如需詳細資訊,請參閱如何收集分析資料

後續步驟

請查看這些 Bot 個案研究,或按一下下方連結,即可建立 Bot。