Сводка
Я пытаюсь развернуть последнюю версию Microsoft Virtual Assistant с кодом .В документации они описывают процесс для развертывания и запуска бота с использованием шаблона Visual Studio .Весь процесс, описанный в документации, прекрасно работает.
Однако я не люблю использовать шаблон.Я не хочу терять историю Git от Microsoft.Кроме того, это развертывание должно выдержать испытания временем, и я хочу максимально упростить объединение обновлений от Microsoft.
Внутри репозитория Microsoft имеется подкаталог , содержащий виртуальный помощник C # шаблон и образец кода , как если быон был развернут по шаблону .
Средства сохранения истории Git, возможность получения новых коммитов и т. д.
Я опишу свое решение, которое позволяет мне сохранять историю Git от Microsoftс легкостью извлекайте их последние коммиты и по-прежнему предоставляете мне проект разумного размера для работы над развертыванием бота моего клиента (репозиторий Microsoft AI огромен и содержит много вещей, которые мне не нужны в развертывании бота).Получившаяся ветка / проект, над которым я работаю, очень напоминает (см. Ниже, похоже, что) решение / проект, который я получаю, когда создаю его из шаблона в Visual Studio.
- I раздвоенный Все репозиторий GitHub от Microsoft .
- Я настроил локальный репозиторий Git с репозиторием Microsoft и моим форком в качестве удаленных.
- Я использовал поддерево Git, как описано в этом сообщении о переполнении стека , чтобы отфильтровать репо только до примера кода Virtual Assistant C # .Я создал ветвь для этого поддерева .
- Я скопировал ветвь поддерева в ветвь разработки, где я собираюсь выполнить всю свою собственную разработку.
- Я могу использовать masterна удаленном входящем удаленном канале Microsoft и недавно созданной ветви поддерева для непрерывного получения новых коммитов от Microsoft в мою личную ветку разработки.
Вот некоторый псевдокод, который приблизительно проходит через процесс.
$ git checkout upstream/master
Switched to branch upstream/master
Your branch is up to date with 'r_microsoft/master'.
$ git subtree split --prefix=templates/Virtual-Assistant-Template/csharp/sample --onto upstream/virtual-assistant-csharp -b upstream/virtual-assistant-csharp
$ git checkout upstream/virtual-assistant-csharp
$ git checkout -b eric/develop
Switched to branch 'eric/develop'
Your branch is up to date with 'r_eric/develop'.
$ git rebase upstream/virtual-assistant-csharp
Current branch eric/develop is up to date.
Развертывание и запуск бота
Используя это поддерево вместо решения, созданного на основе шаблона, я следовал указаниям для развертывания и запуска бота.У Microsoft есть отдельная страница Markdown для развертывания (ссылка на случай, если вы захотите ее проверить).
Похоже, что развертывание прошло успешно.Я заменил конфиденциальную информацию на xxx
.
PS C:\Users\eric\bot\VirtualAssistantSample> .\Deployment\Scripts\deploy.ps1 -name "personal-bot-test-using-git" -location "westus" -luisAuthoringKey "xxx" -luisAuthoringRegion "westus" -resourceGroup "personal-bot-test-using-git" -appId "xxx" -appPassword "xxx"
> Creating resource group ...
> Deploying Azure services (this could take a while)...
> Updating appsettings.json ...
> Deploying cognitive models ...
> Initializing dispatch model ...
> Parsing general LU file ...
> Deploying general LUIS app ...
> Adding general app to dispatch model ...
> Parsing chitchat LU file ...
> Deploying chitchat QnA kb ...
> Adding chitchat kb to dispatch model ...
> Parsing faq LU file ...
> Deploying faq QnA kb ...
> Adding faq kb to dispatch model ...
> Creating dispatch model...
> Done.
Я сделал все точно в соответствии с их действиями (кроме того, что не использовал шаблон).Когда я строю, ошибок нет.Запуск бота не показывает ошибок.
Вот я подключаюсь, используя Эмулятор бота Microsoft (заменены важные значения).
Однако, когда я тестирую бота, игральных костей нет.Приветственное сообщение не отображается.
И связь не работает.
.
Вот чтоPOST 400 directline.postActivity говорит.
{
"error": {
"code": "ServiceError",
"message": "Refresh access token failed with status code: 401"
}
}
С другой стороны, если я делаю все те же шаги, кроме запуска из проекта / решения, созданного шаблоном, он просто работает.
.
Дополнительный контекст
- Я испробовал весь процесс, используя Visual Studio 2019 и 2017 с последними пакетами NuGet.Кажется, нет никаких различий.
- С моими средствами начать проект, нет файла .sln.Поэтому я открываю проект с помощью файла .csproj.Используя шаблон бота, он создает файл .sln, который я могу использовать, чтобы открыть все это.Независимо от того, открываю ли я проект, который был развернут из шаблона с помощью .sln или .csproj, он работает.
- Я сравнил каталоги бота (поддерево из исходного кода с созданным шаблоном), используя WinMerge . Я не вижу существенных различий (конечно, я не могу копаться в содержимом файлов .dll).
- РЕДАКТИРОВАТЬ ~ 8 часов после создания. Похоже, что боты, созданные даже с помощью шаблона, больше не работают?