指南 3个标注团队操作手册:提升标注速度与质量

在Label Studio中设置Webhooks

Label Studio中的Webhooks允许您设置集成,订阅Label Studio内部发生的特定事件。当事件触发时,Label Studio会向配置的webhook URL发送HTTP POST请求。例如:

{
    "action": "TASK_CREATED",
    "tasks": [
        {"id": 1, ...},
        ...
    ]
}

您的应用程序或服务可以按照您希望的方式响应该事件信息。

Label Studio Webhooks 的用途

Label Studio中的某些事件是由API调用触发的。对于这些情况,API响应足以确认操作已完成。但其他事件发生在Label Studio用户界面内部,例如项目变更和任务标注活动。为了即时获知这些变更的发生,您可以使用webhook来通知您的应用程序或机器学习管道执行特定操作。

您的webhook在应用程序或流水线中采取的操作可以根据事件的不同而变化。例如,您可以使用发送到webhook URL的事件来执行以下操作:

  • 在标注完成一定数量的任务后,开始训练机器学习模型。
  • 在任务标注完成后执行主动学习。
  • 在项目完全设置好后,提示标注人员开始工作。
  • 在数据集版本控制仓库中创建训练数据的新版本。

通过仅订阅与您的使用场景相关的事件,限制对服务器的请求数量。

可用的Label Studio Webhooks

Label Studio 提供两种主要类型的事件用于与webhooks集成:项目级别的任务事件和组织事件。

事件动作 详情 使用场景
Task Created 针对特定项目,当新任务创建时触发。每次导入操作生成一个事件。批量任务创建将作为单个事件发送。 用于在机器学习流程中执行操作。
Task Deleted 针对特定项目,在任务被删除时触发。每次删除操作生成一个事件。批量删除任务会作为一个事件发送。 用于更新训练数据集版本。
Annotation Created 针对特定项目,当为任何任务创建新标注时触发。每个标注对应一个事件。 用于在主动学习场景中启动训练。
Annotation Updated 针对特定项目,当现有标注被更新、覆盖或任务被跳过时触发。 用于提示模型重新训练。
Annotation Deleted 针对特定项目,当标注被删除时触发。批量删除标注会作为一个事件发送。 用于创建训练数据集的新版本。
Project Created 对于组织而言,当项目创建时触发。您必须启用组织级webhooks才能发送此事件。 用于创建新的数据管理流程。
Project Updated 当项目设置(如标注配置)被更新、创建或保存时触发。 用于更新现有的数据管理流程。
Project Deleted 对于组织而言,当项目被删除时触发。您必须启用组织级webhooks才能发送此事件。 用于移除数据管理管道。

启用组织级Webhooks

要使用组织级别的webhooks为每个项目触发事件,您必须设置环境变量

LABEL_STUDIO_ALLOW_ORGANIZATION_WEBHOOKS=true

如何与webhooks集成

要与Label Studio中的webhooks集成,您需要执行以下操作:

  1. 在您的应用程序或机器学习模型流水线中创建一个webhook端点或URL。
  2. 确保您的Label Studio实例可以访问webhook端点或URL,并且能够接收HTTP POST请求。
  3. 将webhook添加到Label Studio

设置您的webhook端点以读取来自Label Studio的事件负载,并根据事件采取相应操作。

在Label Studio中添加新的Webhook

在Label Studio中设置一个webhook URL并将其与一个或多个事件触发器关联。您可以通过Label Studio用户界面或使用API来设置webhook URL。您可以根据需要配置任意数量的webhook连接,但过多的连接可能会使您的实例不堪重负。

在Label Studio界面中添加Webhook

向Label Studio添加一个webhook URL。该webhook URL必须配置为能够接收HTTP POST请求。

  1. 在Label Studio界面中,打开您想要关联webhook URL的项目。
  2. 点击设置并选择Webhooks
  3. 点击添加Webhook
  4. Payload URL字段中,提供要发送事件负载的URL。例如,https://www.example.com/webhook
  5. (可选) 切换启用状态选项可以在准备就绪前停用该webhook。否则,webhook将在保存后立即激活,事件将被发送到URL。
  6. (可选) 点击+号添加webhook URL所需的任何请求头。指定请求头名称和值。您可以通过请求头对webhook URL请求进行身份验证。例如:AuthorizationBasic bGFiZWxzdHVkaW86ZXhhbXBsZQ==
  7. (可选) 选择是否随事件发送有效载荷。默认情况下会发送有效载荷。如果不发送有效载荷,则仅发送action键。例如,选择为Annotation created事件发送有效载荷,以便根据有效载荷中发送的项目ID更新正确的流水线。
  8. (可选) 选择是为Label Studio支持的所有webhook操作发送事件,还是仅为特定事件发送。默认情况下,会为所有操作发送事件。例如,选择Annotation created事件。
  9. 保存webhook。

使用Label Studio API添加Webhook

创建Webhook端点发送POST请求,通过API添加Webhook。如需使用自定义事件扩展Webhook功能,请参阅创建自定义Webhook事件

排查Webhook连接问题

Webhook连接在1秒后超时。您可以通过设置环境变量WEBHOOK_TIMEOUT来调整超时时间。

如果Label Studio无法访问webhook URL,您可以在日志的回溯中看到此情况。

Label Studio不会重试失败的webhook连接。您可以在DEBUG模式的日志中查看成功的webhook交付。