Поделиться через


Использование классического чат-бота в качестве навыка в боте Bot Framework

Заметка

Эта статья применима только к классическим чат-ботам. Эта функция недоступна в новом интерфейсе Copilot Studio.

При использовании классического чат-бота в качестве навыка с ботом Bot Framework бот Bot Framework определяет, совпадает ли что-нибудь, сказанное пользователем классического чат-бота с фразами-триггерами. Если есть совпадение, бот Bot Framework переводит разговор на классического чат-бота. Классический чат-бот извлекает любые сущности и запускает соответствующую тему.

Вы также можете передать переменную в тему навыка Copilot Studio в качестве ввода из Bot Framework Composer и использовать выходные данные, которые он возвращает.

Внимание!

У вас должна быть пробная или полная лицензия Copilot Studio на использование классических чат-ботов как навыков. Эта функция недоступна для лицензии Teams Copilot Studio.

Чтобы настроить классического чат-бота как навык:

  1. Добавьте бота Bot Framework в список разрешений для классического чат-бота.

  2. Скачайте манифест навыков для классического чат-бота.

  3. Используйте загруженный манифест навыка в Bot Framework Composer для создания связи между ботами.

  4. Используйте Bot Framework Emulator, чтобы подтвердить, что бот работает как навык.

Предварительные условия

Добавьте своего бота Bot Framework в список разрешений для своего классического чат-бота

Добавьте идентификатор приложения бота Bot Framework в список разрешений для классического чат-бота, который вы хотите использовать в качестве навыка. Боты должны находиться в одном клиенте.

  1. В Bot Framework Composer откройте бота, который будет использовать навык. Выберите Настроить, а затем выберите Ресурсы разработки. Скопируйте идентификатор в идентификатор приложения Майкрософт.

  2. В Copilot Studio откройте классического чат-бота, которого хотите использовать в качестве навыка.

  3. В меню навигации перейдите в раздел Параметры и выберите Безопасность. Затем выберите Список разрешений.

  4. Выберите Добавить разрешенного вызывающего.

  5. Вставьте идентификатор приложения вашего бота Bot Framework и выберите Далее.

    Внимание

    Классический чат-бот не может выступать в качестве навыка для других классических чат-ботов. Если вы попытаетесь добавить идентификатор приложения, принадлежащий боту Power Virtual Agent, в список разрешений, вы получите сообщение об ошибке. Вы можете добавить идентификатор приложения только для бота Bot Framework.

    Copilot Studio проверяет идентификатор приложения бота Bot Framework и подтверждает, что он принадлежит боту в том же клиенте.

  6. (Необязательно) Добавьте Отображаемое имя для вами бота, добавленного в список разрешений.

  7. Выберите Сохранить.

Бот Bot Framework отображается по отображаемому имени, если вы его ввели, или по идентификатору приложения, если вы не ввели отображаемое имя. Чтобы удалить или отредактировать его в любое время, выберите значок справа от отображаемого имени идентификатора бота или идентификатора приложения.

Заметка

Боты Bot Framework, добавленные в список разрешений, не будут экспортированы как часть содержимого бота.

Скачайте манифест навыков для классического чат-бота

Боты Bot Framework могут использовать манифест навыков Copilot Studio для настройки соединения с классическим чат-ботом, создавшим манифест.

У всех классических чат-ботов есть манифесты навыков. Манифест навыков — это файл JSON, содержащий название навыка, интерфейс и фразы-триггеры.

Бот Bot Framework может использовать манифест навыка, чтобы знать, когда запускать классического чат-бота (например, в ответ на что-то, что пользователь говорит ему).

Манифесты навыков Copilot Studio соответствуют версии 2.2 схемы манифеста навыков Bot Framework и состоят из файлов intents.lu и manifest.json.

Бот Bot Framework может решить, что классический чат-бот должен обрабатывать запрос пользователя на основе данных манифеста. Он передает классическому чат-боту все, что сказал пользователь. Затем классический чат-бот будет сопоставляет сказанное пользователем с темой Copilot Studio, извлекает все сущности, необходимые для заполнения слотов, и вызывает тему Copilot Studio.

Манифесты навыков Copilot Studio генерируются и обновляются автоматически. У классического чат-бота есть два манифеста навыков:

  • Тестовый манифест: позволяет боту Bot Framework подключаться к тестовой версии вашего классического чат-бота. Используйте тестовый манифест для проверки изменений в вашем навыке перед его публикацией.

    • Тестовый манифест доступен сразу для каждого вновь созданного классического чат-бота.
    • Он автоматически обновляется, чтобы отражать изменения каждый раз, когда вы сохраняете своего классического чат-бота.
  • Опубликованный манифест: позволяет боту Bot Framework подключаться к опубликованной версии вашего классического чат-бота.

    • Опубликованный манифест доступен только для классических чат-ботов, которые были опубликованы хотя бы один раз.
    • Он автоматически обновляется, чтобы отражать изменения каждый раз, когда вы публикуете своего агента.

Заметка

Опубликованный манифест недоступен для классических чат-ботов, которые никогда не были опубликованы.

Для создания опубликованного манифеста для вашего бота опубликуйте своего классического чат-бота.

Оба манифеста навыков показаны на панели Управление списком разрешений.

Манифесты навыков также отображаются на странице сведений о помощнике. В меню навигации выберите Параметры, затем выберите Сведения. На странице Сведения показаны другие метаданные, включая Код среды, Код клиента и Код приложения бота.

Чтобы загрузить манифест, выберите его. Он загружается в виде ZIP-файла с именем <bot name>manifest в случае опубликованного манифеста или <bot name>test__manifest в случае тестового манифеста.

Заметка

Манифест навыка должен включает системные темы и диалоги Composer, добавленные в классического чат-бота. Включаются только темы, созданные авторами помощников, и триггеры намерений Composer, которые авторы добавляют в бот.

Подключитесь к навыку в Copilot Studio Composer

Используйте манифесты бота Copilot Studio, чтобы создать подключение навыка в вашем боте Bot Framework в Composer.

  1. В проекте Bot Framework Composer выберите + Добавить, а потом выберите Подключиться к навыку.

  2. Найдите и выберите ZIP-архив манифеста Copilot Studio, а затем выберите Далее.

  3. Выберите темы или намерения в своем классическом чат-боте, которые вы хотите добавить в бота Bot Framework, и выберите Далее.

  4. Проверьте и отредактируйте фразы-триггеры для своего классического чат-бота и выберите Далее.

  5. Убедитесь, что выбрано Использовать оркестратор для проектов с несколькими ботами, а затем выберите Продолжить.

  6. Убедитесь, что навык Copilot Studio добавлен в вашего бота Bot Framework правильно и новый триггер с вашим именем классического чат-бота находится в проекте в Composer.

Найдите тему в манифесте навыка

Используйте событие для запуска темы Copilot Studio в навыке. Чтобы вызвать определенную тему из Composer, обратитесь к теме по имени связанного события в манифесте навыка.

  1. Выберите действие Подключиться к навыку.

  2. В Название диалогового окна навыка выберите Показать манифест навыка.

  3. Найдите действия в манифесте. Это свойство содержит вложенные свойства, представляющие темы, доступные из вашего классического чат-бота.

  4. Найдите тему, которую вы хотите вызывать, и найдите ее свойство name. Когда навык Copilot Studio получает событие с этим именем, оно запускает тему.

    В следующем примере имя действия события — dispatchTo_new_topic_87609dabd86049f7bc6507c6f7263aba_33d.

Вызовите тему навыка Copilot Studio

Вместо того, чтобы полагаться на то, что говорит пользователь для вызова темы навыка Copilot Studio, можно вызвать напрямую. Можно напрямую вызывать только темы Copilot Studio, перечисленные в манифесте навыков.

  1. На холсте разработки Composer выберите Добавить, затем выберите Доступ к внешним ресурсам, а затем выберите Подключиться к навыку.

  2. В списке Название диалогового окна навыка выберите своего классического чат-бота.

  3. Найдите имя действия события для темы классического чат-бота, которую вы хотите вызвать. Скопируйте значение, убрав кавычки, и сохраните его для использования в следующих шагах.

  4. Выберите Закрыть.

  5. В разделе Действие выберите Показать код.

  6. Введите или вставьте следующий код. Замените TOPIC_ACTIVITY_NAME на название действия события вашей темы. Убедитесь, что в свойстве name нет кавычек.

    [Activity
        type = event
        name = TOPIC_ACTIVITY_NAME
    ]
    

Передайте входную переменную в тему навыка Copilot Studio

Bot Framework Composer может передать переменную в тему навыка Copilot Studio в качестве ввода. См. раздел Работа с переменными, чтобы научиться создавать темы Copilot Studio, которые принимают входные переменные.

Если тема Copilot Studio, которая может получать входную переменную, указана в вашем манифесте навыка, вы можете передать ей переменную Composer.

  1. На холсте разработки Composer выберите Добавить, затем выберите Доступ к внешним ресурсам, а затем выберите Подключиться к навыку.

  2. В списке Название диалогового окна навыка выберите своего классического чат-бота.

  3. Найдите имя действия события для темы классического чат-бота, которую вы хотите вызвать. Скопируйте значение, убрав кавычки, и сохраните его для использования в следующих шагах.

  4. Найдите свойство value темы. Свойство value содержит свойство $ref. Скопируйте значение и сохраните его для использования в следующем шаге.

    Предупреждение

    Если тема Copilot Studio не имеет входных данных, она не будет содержать свойство value.

  5. Найдите свойство definitions, затем найдите вложенное свойство, соответствующее значению $ref, которое вы нашли на предыдущем шаге. Обратите внимание на имена и типы вводных данных темы Copilot Studio. Вы будете использовать их в следующих шагах.

  6. Выберите Закрыть.

  7. В разделе Действие выберите Показать код.

  8. Введите или вставьте следующий код. Замените эти значения:

    1. Замените TOPIC_ACTIVITY_NAME на название действия события вашей темы.
    2. Замените PVA_INPUT_VARIABLE на входную переменную из вашей темы.
    3. Замените COMPOSER_INPUT_VARIABLE на переменную Composer, которая предоставит значение.
    [Activity
        Type = event
        Name = TOPIC_ACTIVITY_NAME
        Value = ${addProperty(json("{}"), 'PVA_INPUT_VARIABLE', COMPOSER_INPUT_VARIABLE)}
    ]
    

    В следующем примере переменная Composer dialog.storeLocation содержит значения входной переменной pva_StoreLocation в теме классического чат-ботаdispatchTo_new_topic_127cdcdbbb4a480ea113c5101f309089_21a34f16.

Получите выходную переменную из темы навыка Copilot Studio

Возможно получение выходных данных из темы навыка Copilot Studio в Composer. См. раздел Работа с переменными, чтобы научиться создавать темы Copilot Studio, которые возвращают выходные данные.

  1. На холсте разработки Composer выберите Добавить, затем выберите Доступ к внешним ресурсам, а затем выберите Подключиться к навыку.

  2. В списке Название диалогового окна навыка выберите своего классического чат-бота.

  3. Найдите имя действия события для темы классического чат-бота, которую вы хотите вызвать. Скопируйте значение, убрав кавычки, и сохраните его для использования в следующих шагах.

  4. Найдите свойство resultValue темы. Свойство resultValue содержит свойство $ref. Скопируйте значение и сохраните его для использования в следующем шаге.

    Предупреждение

    Если тема Copilot Studio не имеет выходных данных, она не будет содержать свойство resultValue.

  5. Найдите свойство definitions, затем найдите вложенное свойство, соответствующее значению $ref, которое вы нашли на предыдущем шаге. Обратите внимание на имена и типы выходных переменных Copilot Studio. Вы будете использовать их в следующих шагах.

    В этом примере тема Copilot Studio возвращает два вывода типа String, pva_State и pva_Item.

  6. Выберите Закрыть.

  7. В разделе Действие выберите Показать код.

  8. Введите или вставьте следующий код. Замените TOPIC_ACTIVITY_NAME на название действия события вашей темы. Убедитесь, что в свойстве name нет кавычек.

    [Activity
        type = event
        name = TOPIC_ACTIVITY_NAME
    ]
    
  9. В области кода установите Свойство как переменную Composer для получения и сохранения выходных значений из темы навыка Copilot Studio.

  10. На холсте разработки Composer выберите Добавить, затем выберите Управление свойствами, а затем выберите Установить свойства.

  11. Задайте Свойство для значения Composer, которое должно хранить извлеченное значение. Затем установите Значение как переменную Composer, в которой вы сохранили выходные данные темы.

    В этом примере выходные значения из dialog.skillResult.pvaState и dialog.skillResult.pvaItem извлекаются в новые переменные Composer dialog.State и dialog.Item.

Проверьте своего классического чат-бота как навык с ботом Bot Framework

Используйте Bot Framework Emulator, чтобы проверить, что ваш бот Bot Framework правильно вызывает классического чат-бота как навык.

Внимание!

Ваш бот Bot Framework должен быть добавлен в список разрешений классического чат-бота для работы подключения навыка.

Обновление мультитенантного бота Bot Framework до однотенантного бота

На следующем рисунке показан сценарий, в котором бот Bot Framework, созданный на основе SDK-пакета Bot Framework, вызывает классический чат-бот, чтобы использовать его в качестве навыка.

Рисунок, показывающий взаимодействие бота Bot Framework с классическим чат-ботом.

Как бот Bot Framework, так и классический чат-бот имеют регистрацию приложения Microsoft Entra ID, на которую ссылаются экземпляры Azure Bot. Эти регистрации приложений Microsoft Entra ID были созданы как мультитенантные. Бот Bot Framework запрашивает токен у арендатора Bot Framework и использует его для проверки подлинности в Copilot Studio с помощью Службы Azure Bot. Copilot Studio использует тот же механизм для связи с ботом Bot Framework.

Регистрация приложения чат-бота Copilot Studio теперь создается как однотенантная, поэтому эта связь больше не работает. Microsoft Entra ID отказывается создавать токены для регистраций приложений с одним арендатором, которые не находятся в том же арендаторе.

Кроме того, Copilot Studio проверяет входящий токен и отклоняет запросы от арендаторов, которых он не ожидает, например идентификатор арендатора, для которого была создана регистрация приложения классического чат-бота.

Для решения этой проблемы существует два возможных решения.

Классические чат-боты в том же арендаторе, что и бот Bot Framework

В сценариях, где чат-бот Copilot Studio уже развернут в том же арендаторе, что и бот Bot Framework, и используется только этим ботом, обновите бот до конфигурации с одним арендатором, а затем повторно разверните бота Bot Framework. Дополнительные сведения о настройке бота Bot Framework для одного арендатора см. в разделе Подготовка и публикация бота.

Чат-бот Copilot Studio, который не может быть обновлен до однотенантного

В сценариях, когда чат-бот Copilot Studio уже развернут в том же арендаторе, что и бот Bot Framework, но бот не может быть обновлен до однотенантного, необходимо обновить код в боте Bot Framework, чтобы создать токен для взаимодействия с чат-ботом Copilot Studio. Токен необходимо создать для арендатора, в котором также был создан чат-бот Copilot Studio. Кроме того, ответ должен быть принят, для чего, вероятно, потребуется выполнить действия, описанные в разделе Преобразование существующего навыка из мультитенантного в однотенантный.

Подробнее