在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集成,您需要执行以下操作:
- 在您的应用程序或机器学习模型流水线中创建一个webhook端点或URL。
- 确保您的Label Studio实例可以访问webhook端点或URL,并且能够接收HTTP POST请求。
- 将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请求。
- 在Label Studio界面中,打开您想要关联webhook URL的项目。
- 点击设置并选择Webhooks。
- 点击添加Webhook。
- 在Payload URL字段中,提供要发送事件负载的URL。例如,
https://www.example.com/webhook
。 - (可选) 切换启用状态选项可以在准备就绪前停用该webhook。否则,webhook将在保存后立即激活,事件将被发送到URL。
- (可选) 点击+号添加webhook URL所需的任何请求头。指定请求头名称和值。您可以通过请求头对webhook URL请求进行身份验证。例如:
Authorization
和Basic bGFiZWxzdHVkaW86ZXhhbXBsZQ==
- (可选) 选择是否随事件发送有效载荷。默认情况下会发送有效载荷。如果不发送有效载荷,则仅发送
action
键。例如,选择为Annotation created
事件发送有效载荷,以便根据有效载荷中发送的项目ID更新正确的流水线。 - (可选) 选择是为Label Studio支持的所有webhook操作发送事件,还是仅为特定事件发送。默认情况下,会为所有操作发送事件。例如,选择
Annotation created
事件。 - 保存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交付。