使用 Bot Framework SDK 建立 Bot
本文內容
適用於: SDK v4
本文說明如何使用適用於 C#、Java、JavaScript 或 Python 的 Bot Framework SDK 建置您的第一個 Bot,以及如何使用 Bot Framework 模擬器測試 Bot。
建立您的第一個 Bot 不需要 Azure 訂用帳戶或 Azure AI Bot Service 資源。 本快速入門著重於在本機建立您的第一個 Bot。 如果您想要瞭解如何在 Azure 中建立 Bot,請參閱 建立 Azure Bot 資源 。
必要條件
C# 範本
目前的 Bot 範例使用 .NET Core 3.1 範本。
若要將 Bot 範本新增至 Visual Studio,請下載並安裝適用於 Visual Studio VSIX 的 Bot Framework v4 SDK 範本檔案。
注意
您可以從 Visual Studio 內安裝範本。
在功能表中,選取 [擴充功能],然後選取 [管理擴充功能 ]。
在 [ 管理延伸模組 ] 對話框中,搜尋並安裝 適用於Visual Studio 的 Bot Framework v4 SDK 範本。
如需將 .NET Bot 部署至 Azure 的相關信息,請參閱如何 布建和發佈 Bot 。
.NET Core 範本將協助您使用 Bot Framework v4 快速建置新的交談式 AI Bot。
自 2020 年 5 月起,這些範本及其產生的程式代碼需要 .NET Core 3.1 或更新版本。
若要安裝 Bot Framework 範本:
開啟主控台視窗。
下載並安裝 .NET Core SDK 下載 3.1 版或更新版本。
您可以使用此命令來判斷安裝的 .NET Core 命令行介面版本。
dotnet --version
安裝三個 Bot Framework C# 範本:回應、核心和空白 Bot 範本。
dotnet new -i Microsoft.Bot.Framework.CSharp.EchoBot
dotnet new -i Microsoft.Bot.Framework.CSharp.CoreBot
dotnet new -i Microsoft.Bot.Framework.CSharp.EmptyBot
確認範本已安裝正確。
dotnet new --list
注意
上述步驟會安裝這三個 Bot Framework 範本。 您不需要安裝所有範本,而且只要安裝您將使用的範本即可。 本文會 使用回應 Bot 範本。
Java 範本
使用Yeoman產生器,在Bot Framework v4中使用核心 AI 功能 快速建立交談式 AI Bot。 如需詳細資訊,請參閱 yeoman.io 。
產生器支援三個不同的範本選項,如下所示。
範本
描述
Echo Bot
如果您想要比 “Hello World!” 多一點,但不太好。 此範本會處理將訊息傳送至 Bot 的基本概念,並讓 Bot 將訊息重複給用戶來處理訊息。 此範本會產生一個 Bot,只要對使用者說任何使用者對 Bot 說的話,就能「回顯」。
空 Bot
如果您熟悉 Bot Framework v4,而且只是想要基本的基本架構專案,則為良好的範本。 如果您想要從檔取得範例程式代碼,並將它貼到最少的 Bot 中,以便學習,這也是一個很好的選項。
核心機器人
如果您想要建立進階 Bot,最好是範本,因為它使用多回合對話框和 Azure AI LUIS 來實作語言理解。 此範本會建立 Bot,以擷取地點和日期以預訂正式發行前小眾測試版。
安裝 Yeoman
請確定您已安裝 node.js 12.10 版或更新版本。
安裝最新的 npm 。
npm install -g npm
安裝 Yeoman 。 請務必全域安裝。
npm install -g yo
安裝 generator-botbuilder-java 。 請務必全域安裝。
npm install -g generator-botbuilder-java
確認 Yeoman 和 generator-botbuilder-java 已安裝正確。
yo botbuilder-java --help
JavaScript 和 TypeScript 範本
若要安裝適用於 Bot Framework v4 的 Yeoman 和 Yeoman 產生器:
開啟終端機或提升許可權的命令提示字元。
切換至 JavaScript Bot 的目錄。 如果您還沒有它,請先建立它。
mkdir myJsBots
cd myJsBots
請確定您有最新版的 npm 和 Yeoman。
npm install -g npm
npm install -g yo
安裝 Yeoman 產生器。
Yeoman 是用來建立應用程式的工具。 如需詳細資訊,請參閱 yeoman.io 。
npm install -g generator-botbuilder
注意
只有在您使用 Windows 作為開發作業系統時,才需要安裝下面所列的 Windows 組建工具。
針對某些安裝,restify 的安裝步驟會提供與 node-gyp
相關的錯誤。
如果是這種情況,您可以嘗試以較高的許可權執行此命令。
如果您的系統上已安裝 Python,此呼叫也可能停止回應,而不會結束:
只有在 Windows 上執行此命令。
npm install -g windows-build-tools
建立及啟用虛擬環境
虛擬環境是與全域設定不同的特定 Python 解釋器和連結庫的組合。 虛擬環境專屬於專案,且會保留在專案資料夾中。 使用虛擬環境的好處是,當您隨著時間開發專案時,虛擬環境一律會反映專案的確切相依性。 若要深入瞭解虛擬環境,請參閱 建立虛擬環境 。
瀏覽至您要建立 Bot 的目錄。 然後,針對您慣用的平台執行下列命令。 開啟虛擬環境之後,命令行/終端機應該前面加上 (venv)
。 這可讓您知道虛擬環境為作用中。 您可以輸入:,隨時停用虛擬環境。 deactivate
macOS/Linux
python3 -m venv venv
source venv/bin/activate
Windows
python -m venv venv
venv\Scripts\activate.bat
Python 範本
執行下列 pip install
命令來安裝必要的套件:
pip install botbuilder-core
pip install asyncio
pip install aiohttp
pip install cookiecutter==1.7.0
重要
如果您使用 32 位版本的 Python,請確定您也執行 pip install cryptography==2.8
。
建立機器人
在 Visual Studio 中,建立新的 Bot 專案,並使用 Echo Bot (Bot Framework v4 - .NET Core 3.1) 範本。 若要查看 Bot 範本,請選擇 AI Bot 項目 類型。
請確定 已安裝 .NET Core 3.1 或更新版本。
在 Visual Studio Code 中,開啟新終端機視窗。
移至您要在其中建立 Bot 項目的目錄。
使用下列命令建立新的 Echo Bot 專案。 將取代 <your-bot-name>
為要用於 Bot 項目的名稱。
dotnet new echobot -n <your-bot-name>
開啟新的終端視窗。
移至您要在其中建立 Bot 項目的目錄。
使用下列命令建立新的 Echo Bot 專案。 將取代 <your-bot-name>
為要用於 Bot 項目的名稱。
dotnet new echobot -n <your-bot-name>
由於範本,您的專案包含在本快速入門中建立 Bot 所需的所有程式代碼。 您不再需要任何程式代碼來測試 Bot。
執行下列命令,從範本建立回應 Bot。 此命令會針對其參數使用預設選項。
yo botbuilder-java -T "echo"
Yeoman 會提示您輸入建立 Bot 的一些資訊。 在本教學課程中,請使用預設值。
? What's the name of your bot? (echo)
? What's the fully qualified package name of your bot? (com.mycompany.echo)
? Which template would you like to start with? (Use arrow keys) Select "Echo Bot"
? Looking good. Shall I go ahead and create your new bot? (Y/n) Enter "y"
產生器支援許多命令行選項,可用來變更產生器的預設值,或預先植入提示。 選項會區分大小寫。
命令列選項
描述
--help, -h
列出所有支援的命令列選項的說明文字
--botName, -N
提供給 Bot 項目的名稱
--packageName, -P
要用於 Bot 的 Java 套件名稱
--template, -T
用來產生專案的範本。 選項為 echo
、empty
、core
。 如需不同範本的詳細資訊,請參閱語言、C# 、JavaScript、 Python 或 Java 的 GitHub 存放庫。
--noprompt
建立新的 Bot 之前,產生器不會提示確認。 命令行上未傳遞的任何需求選項都會使用合理的預設值。 此選項旨在針對測試目的啟用自動化 Bot 產生。
由於範本,您的專案包含在本快速入門中建立 Bot 所需的所有程式代碼。 您不需要任何其他程式代碼來測試 Bot。
使用產生器來建立回應 Bot。
yo botbuilder
Yeoman 會提示您輸入建立 Bot 的一些資訊。 在本教學課程中,請使用預設值。
? What's the name of your bot? my-chat-bot
? What will your bot do? Demonstrate the core capabilities of the Microsoft Bot Framework
? What programming language do you want to use? JavaScript
? Which template would you like to start with? Echo Bot - https://aka.ms/bot-template-echo
? Looking good. Shall I go ahead and create your new bot? Yes
由於範本,您的專案包含在本快速入門中建立 Bot 所需的所有程式代碼。 您不需要任何其他程式代碼來測試 Bot。
從您的工作目錄中,執行下列命令以下載 Echo Bot 範本及其相依性:
cookiecutter https://github.com/microsoft/BotBuilder-Samples/releases/download/Templates/echo.zip
系統會提示您為 Bot 提供名稱和描述。 輸入下列值:
bot_name : echo_bot
bot_description:回應用戶回應的 Bot。
啟動 Bot
在 Visual Studio 中:
開啟 Bot 專案。
執行專案而不偵錯。
Visual Studio 會建置應用程式、將其部署至localhost,並啟動網頁瀏覽器以顯示應用程式的 default.htm
頁面。
此時,您的 Bot 正在本機埠 3978 上執行。
在 Visual Studio Code 中:
開啟 Bot 項目資料夾。
如果系統提示您選取專案,請為您所建立的 Bot 選取該專案。
從功能表中,選取 [執行],然後選取 [執行但不偵錯 ]。
如果系統提示您選取環境,請選取 [.Net Core ]。
如果此命令更新了您的啟動設定,請儲存變更並重新執行命令。
執行命令會建置應用程式、將其部署至localhost,並啟動網頁瀏覽器以顯示應用程式的 default.htm
頁面。
此時,您的 Bot 正在本機埠 3978 上執行。
從命令提示字元或終端機:
將目錄變更為 Bot 的項目資料夾。
使用 dotnet run
啟動 Bot。
dotnet run
此命令會建置應用程式,並將其部署至localhost。
應用程式的預設網頁不會顯示,但此時,您的 Bot 正在本機埠 3978 上執行。
從終端機流覽至您儲存 Bot 的目錄,然後執行下列命令。
建置 Maven 專案,並將它封裝成 .jar 檔案(封存)。
mvn package
在本機執行 Bot。 將 archive-name 取代為上一個命令的實際名稱。
java -jar .\target\<archive-name>.jar
您現在已準備好啟動模擬器。
在終端機或命令提示字元中,將目錄變更為針對 Bot 建立的目錄,並使用 加以啟動 npm start
。
cd my-chat-bot
npm start
此時,您的 Bot 正在本機埠 3978 上執行。
從命令列/終端機,將目錄變更為 echo_bot
。
cd echo_bot
安裝 echo Bot 範本的相依性。
pip install -r requirements.txt
安裝相依性之後,請執行下列命令來啟動 Bot:
python app.py
當您看到下列螢幕快照中顯示的最後一行時,您將知道 Bot 已準備好進行測試:
複製最後一行中的 HTTP 位址。 當您使用模擬器與 Bot 互動時,您將需要它。
啟動模擬器並連線 Bot
啟動 Bot Framework 模擬器。
在模擬器的 [歡迎使用 ] 索引卷標上選取 [開啟 Bot ]。
輸入 Bot 的 URL,也就是本機主機和埠,並 /api/messages
新增至路徑。 位址通常是: http://localhost:3978/api/messages
。
然後選取 [連線]。
將訊息傳送至 Bot,Bot 會回應。
下一步
如需如何使用 Visual Studio 或 Visual Studio Code 和 Bot Framework Emulator 進行偵錯的詳細資訊,請參閱 對 Bot 進行偵錯。
如需 ngrok 的相關信息,請參閱 Tunneling (ngrok) 。