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


Запросы на подтверждение подключаемых модулей API для Microsoft 365 Copilot

Важно!

Подключаемые модули API поддерживаются только как действия в декларативных агентах. Они не включены в Microsoft 365 Copilot.

По умолчанию Microsoft 365 Copilot просит пользователя подтвердить отправку данных в подключаемый модуль, чтобы предотвратить непредвиденные последствия во внешних системах. Пользователь может видеть отправляемые данные и может разрешить или отклонить его. Для некоторых операций API пользователям предоставляется возможность всегда разрешать отправку данных, что предотвращает дальнейшие запросы подтверждения для этой конкретной операции.

Как правило, Microsoft 365 Copilot показывает пользователю параметр always allow для операций HTTP GET и не отображает параметр POST, PATCH, PUT и DELETE. Разработчики подключаемых модулей API могут изменить это поведение для отдельных операций в API. Разработчики также могут настроить текст, который Copilot отображает для пользователя в запросе на подтверждение.

Переопределение поведения запроса

Разработчики могут управлять отображением Microsoft 365 Copilot параметра always allow для конкретной операции, добавляя x-openai-isConsequential свойство в документ OpenAPI для своего API. При задании этого свойства значение true отключается параметр "Всегда разрешать", а для параметра false — его включение. Как правило, любое действие с побочными эффектами во внешней системе должно быть отмечено символом , true чтобы гарантировать, что пользователь находится под контролем и предотвратить непредвиденные последствия действий с побочными эффектами во внешней системе.

Например, рассмотрим API, который создает напоминание: POST /reminders. Так как это операция POST, Microsoft 365 Copilot просит пользователя подтвердить каждый раз, когда используется этот API, и не дает пользователю возможность всегда разрешать эту операцию.

Диалоговое окно подтверждения copilot для операции POST.

Чтобы включить параметр always allow, добавьте x-openai-isConsequential свойство false, как показано в следующем примере.

post:
  x-openai-isConsequential: false
  summary: Create a new reminder
  description: Create a new budget with a specified name and due date
  operationId: CreateReminder
  requestBody:
    content:
      application/json:
        schema:
          $ref: '#/components/schemas/Reminder'
    required: true

Теперь представьте связанный API, который получает существующие напоминания: GET /reminders. Так как это GET, Microsoft 365 Copilot показывает пользователю параметр всегда разрешать.

Диалоговое окно подтверждения Copilot для операции GET.

Это поведение можно изменить, добавив x-openai-isConsequential для параметра значение true.

get:
  x-openai-isConsequential: true
  summary: Get existing reminders
  description: Gets a list of existing reminders
  operationId: GetReminders

Настройка текста подтверждения

Разработчики могут указать текст подтверждения, задав body свойство в объекте Confirmation объекта Function capabilities функции в манифесте подключаемого модуля. Значение body должно указывать на то, что делает функция. Если это свойство отсутствует в манифесте, description вместо него используется свойство в объекте Function .

{
  "name": "GetBudgets",
  "description": "Returns details including name and available funds of budgets, optionally filtered by budget name",
  "capabilities": {
    "confirmation": {
      "type": "AdaptiveCard",
      "title": "Search budgets",
      "body": "Do you want to allow searching for budgets?"
    }
  }
}