针对智能 Microsoft 365 Copilot 副驾驶®的 API 插件的确认提示
重要
API 插件仅支持作为 声明性代理中的操作。 智能 Microsoft 365 Copilot 副驾驶®中未启用它们。
默认情况下,智能 Microsoft 365 Copilot 副驾驶®要求用户在发送数据之前确认将数据发送到插件,以防止外部系统中出现意外后果。 用户可以查看要发送的数据,并可以选择允许或拒绝。 对于某些 API 操作,会为用户提供始终允许发送数据的选项,这将阻止将来对该特定操作的确认提示。
通常,智能 Microsoft 365 Copilot 副驾驶®向用户显示 HTTP GET 操作的始终允许选项,并且不显示 POST、PATCH、PUT 和 DELETE 选项。 API 插件开发人员可以在其 API 中更改单个操作的此行为。 开发人员还可以自定义 Copilot 在确认提示中向用户显示的文本。
重写提示行为
开发人员可以通过在其 API 的 OpenAPI 文档中添加 x-openai-isConsequential
属性来控制智能 Microsoft 365 Copilot 副驾驶®是否显示特定操作的 always allow 选项。 将此属性设置为 true
将禁用 always allow 选项,并将其设置为 false
启用它。 通常,外部系统中具有副作用的任何操作都应标记为 true
,以确保用户处于控制状态,并防止外部系统中具有副作用的操作产生意外后果。
例如,假设有一个 API 创建提醒: POST /reminders
。 因为它是 POST 操作,因此每次使用此 API 时,智能 Microsoft 365 Copilot 副驾驶®都会要求用户确认,并且不会为用户提供始终允许此操作的选项。
若要启用始终允许选项,请将 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 副驾驶®向用户显示“始终允许”选项。
可以通过将 set 添加到 x-openai-isConsequential
true 来更改此行为。
get:
x-openai-isConsequential: true
summary: Get existing reminders
description: Gets a list of existing reminders
operationId: GetReminders
自定义确认文本
开发人员可以通过在插件清单中函数的 Function 功能对象中的 Confirmation 对象中设置 body
属性来指定确认文本。 的值 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?"
}
}
}