diff --git a/docs/preview features/orchestrator-assets/package-manager.png b/docs/preview features/orchestrator-assets/package-manager.png
new file mode 100644
index 0000000000..8ae60b0a80
Binary files /dev/null and b/docs/preview features/orchestrator-assets/package-manager.png differ
diff --git a/docs/preview features/orchestrator-assets/preview-flag-orchestrator.png b/docs/preview features/orchestrator-assets/preview-flag-orchestrator.png
index 4cc2b475a5..61dcbf498e 100644
Binary files a/docs/preview features/orchestrator-assets/preview-flag-orchestrator.png and b/docs/preview features/orchestrator-assets/preview-flag-orchestrator.png differ
diff --git a/docs/preview features/orchestrator.md b/docs/preview features/orchestrator.md
index bc920af721..326674b338 100644
--- a/docs/preview features/orchestrator.md
+++ b/docs/preview features/orchestrator.md
@@ -11,6 +11,7 @@ Read more about Orchestrator [here](https://aka.ms/bf-orchestrator).
- State of the art - Extensive pre-trained transformer-based models for conversational applications
- Extremely fast inference time: Written in C++ for performance
- Cross-platform support: Runs on Windows, Linux and Mac OS X, including Cloud platforms
+- Supports a [large number of languages](https://github.com/microsoft/botframework-sdk/blob/main/Orchestrator/docs/NLRModels.md#pretrained20210205microsoftdte0006unicoder_multilingualonnx) out of the box
- Free to use: Language models are deployed alongside your bot and runs in memory. No external services required
## Getting started
@@ -18,9 +19,7 @@ Read more about Orchestrator [here](https://aka.ms/bf-orchestrator).
### Limitations
For this preview release, please be aware of these limitations:
-1. Orchestrator has to be deployed on an x64 platform. If you are deploying your bot to a cloud service, please be aware that you need to publish your bot with a `win-x64` [runtime identifier](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish), or use Composer's built-in Azure deployment.
-
-1. We are supporting English-only for this release.
+1. It is recommended to deploy Orchestrator on the `x86-64` platform. On Azure, it is recommended to publish your bot application with the `win-x64` [runtime identifier](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish), or use Composer's built-in Azure deployment to do this automatically.
1. Orchestrator does not support entity extraction for this release. Any entities declared in your LU file will be ignored.
@@ -30,16 +29,24 @@ Please see the [roadmap](https://github.com/microsoft/botframework-sdk/blob/main
### Adding Orchestrator to a new bot in Composer
-1. Enable Orchestrator from the preview features list:
+Starting in Composer v1.4, Orchestrator is available as a downloadable package for your bot. To enable Composer's new Package Manager and Orchestrator preview features, please follow these steps:
+1. Enable the 'New Creation Flow' from the preview features list:
- Navigate to `Application Settings` (
icon)
- - Enable Orchestrator preview feature under `Application Updates -> Preview features`
+
+ - Enable the `Application Updates -> Preview features`
-1. Create a new bot or open an existing bot project. Select a dialog in the bot project that you would like to try with Orchestrator. Select `Orchestrator recognizer` from the `Recognizer Type` drop-down menu.
+1. Create a new bot in Composer (`Home -> New`). Select any bot template.
+
+1. After the bot project has been initialized, navigate to the `Package Manager` tab. Download and install the `Microsoft.Bot.Components.Orchestrator` package.
+
+
-
+1. After the package has been successfully installed, navigate back to the `Design` tab. Select a dialog in the bot project that you would like to try with Orchestrator. Select `Orchestrator recognizer` from the `Recognizer Type` drop-down menu.
+
+
1. Create an intent trigger
- Click on the waffle menu on a dialog to add a new trigger
@@ -53,6 +60,14 @@ Please see the [roadmap](https://github.com/microsoft/botframework-sdk/blob/main
- Add a response to the new `Intent Recognized` trigger to test that Orchestrator is working
- In the flow diagram for the newly created trigger, click on the `+` button and select `Send a Response` from the dropdown, then add a sample response in the `Language Generation` textbox.
+1. Click the `Start Bot` button to start the bot locally and test the bot in the emulator. When the dialog is hit and Orchestrator is loaded successfully, test your bot in the Emulator. Orchestrator will show up in the logs as `Orchestrator Recognition`.
+ 
+
+## Publishing an Orchestrator-based bot to Azure
+While it is possible to deploy your bot using your own scripts, it is strongly recommended to use Composer to publish your bot to Azure. Please see the documentation [here](https://docs.microsoft.com/en-us/composer/how-to-publish-bot).
+
+The Composer deployment will create an S1 Tier 64-bit WebApp, bundle the Orchestrator language models, update bot settings to use these models, and upload the artifacts automatically to Azure.
+
1. Modify the runtime to support Orchestrator
1. Eject the runtime
1. Navigate to `Application Settings` (
@@ -61,53 +76,55 @@ Please see the [roadmap](https://github.com/microsoft/botframework-sdk/blob/main

1. The runtime will be ejected into the `/runtime/azurewebapp` folder.
- 1. Perform these modifications to add Orchestrator libraries to your newly ejected runtime:
- 1. Open `/runtime/azurewebapp/Microsoft.BotFramework.Composer.WebApp.csproj`:
-
- - Add `Microsoft.Bot.Builder.AI.Orchestrator` after `Microsoft.Bot.Builder.AI.Luis`
- ```xml
-
-
-
-
-
- ...
- ```
- > [!Important]
- > All packages starting with `Microsoft.Bot.Builder` must have the same version number. For example, if your ejected runtime `Microsoft.Bot.Builder` version is `4.11.0` like above, set the `Microsoft.Bot.Builder.AI.Orchestrator` version to `4.11.0-preview`.**
-
- - Restrict platform target to the `x64` platform by adding these lines:
- ```xml
-
- x64
-
- ```
- 1. Open `/runtime/azurewebapp/Startup.cs` and add these lines:
- - Add the Orchestrator dependency after `Microsoft.Bot.Builder.AI.Luis`:
- ```csharp
- using Microsoft.Bot.Builder.AI.Orchestrator;
- ```
- - Add registration for Orchestrator after `ComponentRegistration.Add(new LuisComponentRegistration());`:
- ```csharp
- ComponentRegistration.Add(new OrchestratorComponentRegistration());
- ```
- 1. Open `/runtime/core/ComposerSettingsExtensions.cs` and add these lines at the bottom of the file, before returning the `builder` object:
- ```csharp
- var orchestratorSettingsPath = Path.GetFullPath(Path.Combine(botRoot, "generated", "orchestrator.settings.json"));
- var orchestratorSettingsFile = new FileInfo(orchestratorSettingsPath);
- if (orchestratorSettingsFile.Exists)
- {
- builder.AddJsonFile(orchestratorSettingsFile.FullName, optional: false, reloadOnChange: true);
- }
- ```
- 1. Return back to Composer. Click the `Start Bot` button to start the bot locally and test the bot in the emulator. When the dialog is hit and Orchestrator is loaded successfully, Orchestrator will show up in the logs as `Orchestrator Recognition`.
+## Adding Orchestrator to an Existing Bot
+You can add Orchestrator to a bot created prior to Composer v1.4 by following these steps:
- 
+1. Perform these modifications to add Orchestrator libraries to your newly ejected runtime:
+ 1. Open `/runtime/azurewebapp/Microsoft.BotFramework.Composer.WebApp.csproj`:
-## Publishing an Orchestrator-based bot to Azure
-While it is possible to deploy your bot using your own scripts, it is strongly recommended to use Composer to publish your bot to Azure. Please see the documentation [here](https://docs.microsoft.com/en-us/composer/how-to-publish-bot).
-
-The Composer deployment will create an S1 Tier 64-bit WebApp, bundle the Orchestrator language models, update bot settings to use these models, and upload the artifacts automatically to Azure.
+ - Add `Microsoft.Bot.Builder.AI.Orchestrator` after `Microsoft.Bot.Builder.AI.Luis`
+ ```xml
+
+
+
+
+
+ ...
+ ```
+ > [!Important]
+ > All packages starting with `Microsoft.Bot.Builder` must have the same version number. For example, if your ejected runtime `Microsoft.Bot.Builder` version is `4.11.0` like above, set the `Microsoft.Bot.Builder.AI.Orchestrator` version to `4.11.0-preview`.**
+
+ - Restrict platform target to the `x64` platform by adding these lines:
+ ```xml
+
+ x64
+
+ ```
+ 1. Open `/runtime/azurewebapp/Startup.cs` and add these lines:
+ - Add the Orchestrator dependency after `Microsoft.Bot.Builder.AI.Luis`:
+ ```csharp
+ using Microsoft.Bot.Builder.AI.Orchestrator;
+ ```
+ - Add registration for Orchestrator after `ComponentRegistration.Add(new LuisComponentRegistration());`:
+ ```csharp
+ ComponentRegistration.Add(new OrchestratorComponentRegistration());
+ ```
+ 1. Open `/runtime/core/ComposerSettingsExtensions.cs` and add these lines at the bottom of the file, before returning the `builder` object:
+ ```csharp
+ var orchestratorSettingsPath = Path.GetFullPath(Path.Combine(botRoot, "generated", "orchestrator.settings.json"));
+ var orchestratorSettingsFile = new FileInfo(orchestratorSettingsPath);
+ if (orchestratorSettingsFile.Exists)
+ {
+ builder.AddJsonFile(orchestratorSettingsFile.FullName, optional: false, reloadOnChange: true);
+ }
+ ```
+
+ 1. Finally, update the bot schema:
+ ```ps1
+ cd Shemas
+ ./update-schema.ps1
+ ```
+ 1. Return back to Composer. Re-open your bot project. The `Orchestrator Recognizer` will now be available in the dialog dropdown.
## Troubleshooting guide
@@ -115,14 +132,6 @@ The Composer deployment will create an S1 Tier 64-bit WebApp, bundle the Orchest
Orchestrator runs completely offline. Its language models are anywhere from 200MB-300MB, and they are automatically downloaded and packaged with your bot.
-1. I am getting a `BadImageFormatException` when I click `Start Bot`.
-
- Orchestrator has to run on a 64-bit platform. A `BadImageFormatException` either indicates that a 32-bit dotnet SDK was used to compile the bot, or that the bot was run on a 32-bit or unsupported platform.
-
- Please *uninstall* any 32-bit dotnet SDKs that are on your local machine. Download the latest [v3.1 x64 SDK](https://dotnet.microsoft.com/download/dotnet-core/3.1) for your platform.
-
- Finally, be sure that you're deploying and running your bot on a 64-bit capable machine. If you've deployed your bot via Composer to Azure, this is automatically taken care of for you.
-
1. How do I run Orchestrator on a Node.js-based bot?
Please see the instructions [here](https://aka.ms/bf-orchestrator#in-a-javascript-bot). Then eject a `Node.js` runtime instead of a `C#` one.