批量提示操作

编辑

对多个提示应用批量操作(创建、更新或删除)。批量操作将应用于与过滤器匹配的所有提示,或通过其 ID 的提示列表。

请求 URL
编辑

POST <kibana 主机>:<端口>/api/security_ai_assistant/prompts/_bulk_action

请求正文
编辑

具有以下属性的 JSON 对象

名称 类型 描述 必填

创建

BulkCreateAction[]

要创建的提示对象的数组。

删除

String[]

要删除的提示的 ID 数组。

更新

BulkUpdateAction[]

包含要更新的字段的提示对象的数组。

BulkCreateAction 对象

编辑
名称 类型 描述 必填

名称

字符串

简短的提示标题。

ID

字符串

提示 ID。

提示类型

字符串

提示类型。有效值为

  • 系统
  • 快速

消费者

字符串

提示所属的解决方案应用程序。例如 securitySolutionUIml

内容

字符串

要发送到 LLM 的提示文本。

颜色

字符串

设置 UI 中快速提示的显示颜色。

类别

String[]

提示类别的数组。

BulkUpdateAction 对象

编辑
名称 类型 描述 必填

ID

字符串

提示 ID。

内容

字符串

要发送到 LLM 的提示文本。

颜色

字符串

设置 UI 中快速提示的显示颜色。

类别

String[]

提示类别的数组。

示例请求
编辑

示例 1

以下请求创建一个新的快速提示

POST api/security_ai_assistant/prompts/_bulk_action
{
  "create": [
    {
      "name": "test",
      "id": "test",
      "content": "some test content",
      "color": "#D36086",
      "categories": [],
      "promptType": "quick",
      "consumer": "securitySolutionUI"
    }
  ]
}
响应代码
编辑
200
指示调用成功。
响应有效负载
编辑

包含操作结果的 JSON 对象

  • attributes.summary.total:与批量操作匹配的提示总数
  • attributes.summary.succeeded:成功结果数(已创建、删除或更新的提示数)
  • attributes.summary.failed:失败结果数
  • attributes.summary.skipped:由于各种原因(如下所述)而跳过的提示数
  • attributes.results.created:在操作执行期间创建的提示对象
  • attributes.results.updated:在操作执行期间更新的提示对象
  • attributes.results.deleted:在操作执行期间删除的提示对象
  • attributes.results.skipped:在操作执行期间跳过的提示

仅当对提示执行的批量操作导致没有执行任何操作时,提示才能被跳过。例如,如果更新操作用于更新已具有指定值的字段。在attributes.results.skipped中返回的对象仅包含提示的idnameskip_reason

{
  "success": true,
  "prompts_count": 1,
  "attributes": {
    "results": {
      "updated": [],
      "created": [
        {
          "timestamp": "2024-08-13T20:24:08.610Z",
          "users": [
            {
              "id": "testuser",
              "name": "elastic"
            }
          ],
          "content": "some test content",
          "updatedAt": "2024-08-13T20:24:08.610Z",
          "id": "0B1pTZEBYaDeA-NhjHej",
          "name": "test",
          "promptType": "quick",
          "color": "#D36086",
          "categories": [],
          "consumer": "securitySolutionUI"
        }
      ],
      "deleted": [],
      "skipped": []
    },
    "summary": {
      "failed": 0,
      "succeeded": 1,
      "skipped": 0,
      "total": 1
    }
  }
}

示例 2:部分失败

以下请求通过 ID“8bc7dad0-9320-11ec-9265-8b772383a08d”删除提示,并通过 ID“2-R12SZEBYaDeA-NhnUyW”更新另一个提示,其中包含内容、颜色和类别的新的值

POST api/security_ai_assistant/prompts/_bulk_action
{
  "delete": {
    "ids": [
      "8bc7dad0-9320-11ec-9265-8b772383a08d"
    ]
  },
  "update": [
    {
      "content": "As an expert in security operations and incident response, provide a breakdown of the attached alert and summarize what it might mean for my organization.",
      "id": "2-R12SZEBYaDeA-NhnUyW",
      "color": "#F68FBE",
      "categories": [
        "alert"
      ]
    }
  ]
}
响应代码
编辑
500
指示批量操作部分失败。
响应有效负载
编辑

如果任何提示的处理失败,则响应会输出部分错误,其中包含受影响提示的 ID 和/或名称以及相应的错误消息。响应还包括成功处理的提示,格式与成功的200请求相同。

{
  "message": "Bulk delete partially failed",
  "status_code": 500,
  "attributes": {
    "errors": [
      {
        "message": "Some error happened here",
        "status_code": 500,
        "prompts": [
          {
            "id": "8bc7dad0-9320-11ec-9265-8b772383a08d",
            "name": "Prompt title"
          }
        ]
      }
    ],
    "results": {
      "updated": [
        {
          "timestamp": "2024-08-13T01:59:56.053Z",
          "users": [
            {
              "id": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0",
              "name": "elastic"
            }
          ],
          "content": "As an expert in security operations and incident response, provide a breakdown of the attached alert and summarize what it might mean for my organization.",
          "isDefault": true,
          "updatedAt": "2024-08-13T20:45:14.763Z",
          "name": "Alert summarization",
          "promptType": "quick",
          "color": "#F68FBE",
          "categories": [
            "alert"
          ],
          "consumer": "securitySolutionUI"
        }
      ],
      "created": [],
      "deleted": [],
      "skipped": []
    },
    "summary": {
      "failed": 1,
      "succeeded": 1,
      "skipped": 0,
      "total": 2
    }
  }
}