Pedidos de confirmação para plug-ins de API para Microsoft 365 Copilot

Importante

Os plug-ins de API só são suportados como ações dentro de agentes declarativos. Não estão ativados no Microsoft 365 Copilot.

Por predefinição, Microsoft 365 Copilot pede ao utilizador para confirmar o envio de dados para um plug-in antes de os enviar para evitar consequências indesejadas em sistemas externos. O utilizador consegue ver os dados a enviar e é-lhe dada a opção de permitir ou recusar. Para algumas operações de API, é dada aos utilizadores a opção de permitir sempre o envio de dados, o que impede futuros pedidos de confirmação para essa operação específica.

Normalmente, Microsoft 365 Copilot mostra ao utilizador a opção permitir sempre operações HTTP GET e não mostra a opção POST, PATCH, PUT e DELETE. Os programadores de plug-ins de API podem alterar este comportamento para operações individuais na sua API. Os programadores também podem personalizar o texto que o Copilot apresenta ao utilizador como parte do pedido de confirmação.

Comportamento do pedido de substituição

Os programadores podem controlar se Microsoft 365 Copilot mostra a opção permitir sempre uma operação específica ao adicionar a x-openai-isConsequential propriedade no documento OpenAPI para a respetiva API. Definir esta propriedade para true desativar a opção permitir sempre e defini-la para a false ativar. Regra regra, qualquer ação com efeitos colaterais no sistema externo deve ser marcada com true para garantir que o utilizador está no controlo e evitar consequências indesejadas para ações com efeitos colaterais no sistema externo.

Por exemplo, considere uma API que cria um lembrete: POST /reminders. Uma vez que se trata de uma operação POST, Microsoft 365 Copilot pede ao utilizador para confirmar sempre que esta API é utilizada e não dá ao utilizador a opção de permitir sempre esta operação.

Caixa de diálogo de confirmação copilot para uma operação POST.

Para ativar a opção permitir sempre, adicione a x-openai-isConsequential propriedade definida como falso, conforme mostrado no exemplo seguinte.

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

Agora, imagine uma API relacionada que obtém lembretes existentes: GET /reminders. Uma vez que é um GET, Microsoft 365 Copilot mostra ao utilizador a opção permitir sempre.

Caixa de diálogo de confirmação copilot para uma operação GET.

Este comportamento pode ser alterado ao adicionar x-openai-isConsequential o conjunto como verdadeiro.

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

Personalizar texto de confirmação

Os programadores podem especificar o texto de confirmação ao definir a body propriedade no objeto Confirmação no objeto Capacidades de função da função no manifesto do plug-in. O valor de body deve ser indicativo do que a função faz. Se esta propriedade não estiver presente no manifesto, é utilizada a description propriedade no objeto Função .

{
  "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?"
    }
  }
}