#c# #botframework #microsoft-teams
#c# #botframework #microsoft-teams
Вопрос:
Есть ли причина, по которой шаблон виртуального помощника создает бота, подобного:
public class DefaultActivityHandler<T> : TeamsActivityHandler
where T : Dialog
в то время как шаблон навыков создает бота, подобного:
public class DefaultActivityHandler<T> : ActivityHandler
where T : Dialog
Будет ли навык работать правильно при интеграции в Teams?
Ответ №1:
Да, это должно сработать. Навыки предназначены для абстракции и не зависят от контекста клиентского / родительского бота (в данном случае VA). Они не должны быть, но идея в том, что они обычно есть. Если навык не должен работать напрямую с командами, то его не нужно использовать TeamsActivityHandler
. Это потому, что VA взаимодействует с навыком, а не с каналом / клиентом (командами).
Это, конечно, очень упрощенный сценарий. Существуют абсолютно разные сценарии, в которых вы хотели бы, чтобы навык использовался непосредственно с командами (в этом случае это был бы не навык, а просто бот), или где вы хотели бы, чтобы навык имел какой-то контекст для команд. Но по умолчанию это не настроено таким образом, и вам нужно настроить и спроектировать для этого.
Ответ №2:
ActivityHandler — это суперкласс, унаследованный в TeamsActivityHandler. Проверьте методы, реализованные в обоих классах. В зависимости от ваших требований вы можете наследовать от любого класса.
Комментарии:
1. Да, я видел наследование TeamsActivityHandler от ActivityHandler. Чего я не понимаю, так это почему в одном и том же шаблоне одна часть (VA) создана совместимой с teams, а другая (Навык) — нет. Итак, если я создам и освобожу VA и пустой навык, подключите их, следуя руководству, опубликуйте их для команд… они не работают?