This feature requires a Pro or Enterprise plan .
レジストリ管理者は、そのレジストリ内でオートメーションを作成できます。レジストリのオートメーションは、将来追加されるものを含めて、そのレジストリ内のすべてのコレクションに適用されます。
W&B にログインします。
詳細を確認するためにレジストリの名前をクリックします。
レジストリにスコープされているオートメーションを作成するには、Automations タブをクリックし、Create automation をクリックします。レジストリにスコープされているオートメーションは、そのすべてのコレクション(将来作成されるものを含む)に自動的に適用されます。
レジストリ内の特定のコレクションのみにスコープされたオートメーションを作成するには、コレクションのアクション ...
メニューをクリックし、Create automation をクリックします。または、コレクションを表示しながら、コレクションの詳細ページの Automations セクションにある Create automation ボタンを使用してそれに対するオートメーションを作成します。
監視する Event を選択します。イベントによっては表示される追加フィールドを入力します。例えば、An artifact alias is added を選択した場合、Alias regex を指定する必要があります。Next step をクリックします。
webhook を所有するチームを選択します。
Action type を Webhooks に設定し、使用する webhook を選択します。
webhook にアクセストークンを設定している場合、${ACCESS_TOKEN}
payload variable でトークンにアクセスできます。webhook にシークレットを設定している場合、シークレットの名前に $
を付けてペイロード内でアクセスできます。webhook の要件は webhook のサービスによって決まります。
Next step をクリックします。
オートメーションに名前を付けます。オプションで説明を入力します。Create automation をクリックします。
W&B 管理者はプロジェクト内でオートメーションを作成できます。
W&B にログインし、プロジェクトページに移動します。
サイドバーの Automations をクリックします。
Create automation をクリックします。
監視する Event を選択します。
表示される、追加フィールドを入力します。例えば、An artifact alias is added を選択した場合、Alias regex を指定する必要があります。
オプションでコレクションフィルタを指定します。それ以外の場合、オートメーションはプロジェクト内のすべてのコレクションに適用され、将来追加されるものも含まれます。
Next step をクリックします。
webhook を所有するチームを選択します。
Action type を Webhooks に設定し、使用する webhook を選択します。
webhook がペイロードを必要とする場合、それを構築し、Payload フィールドに貼り付けます。webhook にアクセストークンを設定している場合、${ACCESS_TOKEN}
payload variable でトークンにアクセスできます。webhook にシークレットを設定している場合、シークレットの名前に $
を付けてペイロード内でアクセスできます。webhook の要件は webhook のサービスによって決まります。
Next step をクリックします。
オートメーションに名前を付けます。オプションで説明を入力します。Create automation をクリックします。
レジストリのオートメーションは、レジストリの Automations タブから管理します。
コレクションのオートメーションは、コレクションの詳細ページの Automations セクションから管理します。
これらのページのいずれかから、レジストリ管理者は既存のオートメーションを管理できます。
オートメーションの詳細を表示するには、その名前をクリックします。
オートメーションを編集するには、そのアクションの ...
メニューをクリックし、Edit automation をクリックします。
オートメーションを削除するには、そのアクションの ...
メニューをクリックし、Delete automation をクリックします。確認が必要です。
W&B 管理者はプロジェクトの Automations タブからプロジェクトのオートメーションを表示および管理できます。
オートメーションの詳細を表示するには、その名前をクリックします。
オートメーションを編集するには、そのアクションの ...
メニューをクリックし、Edit automation をクリックします。
オートメーションを削除するには、そのアクションの ...
メニューをクリックし、Delete automation をクリックします。確認が必要です。
W&B からリポジトリディスパッチを送信して GitHub アクションをトリガーします。例えば、リポジトリディスパッチを on
キーのトリガーとして受け入れる GitHub ワークフローファイルを持っているとしましょう。
on :
repository_dispatch :
types : BUILD_AND_DEPLOY
リポジトリ用のペイロードは次のようなものになるかもしれません。
{
"event_type" : "BUILD_AND_DEPLOY" ,
"client_payload" :
{
"event_author" : "${event_author}" ,
"artifact_version" : "${artifact_version}" ,
"artifact_version_string" : "${artifact_version_string}" ,
"artifact_collection_name" : "${artifact_collection_name}" ,
"project_name" : "${project_name}" ,
"entity_name" : "${entity_name}"
}
}
webhook ペイロードの event_type
キーは GitHub ワークフローファイルの types
フィールドと一致しなければなりません。
レンダリングされたテンプレート文字列の内容と位置は、オートメーションが設定されているイベントまたはモデルバージョンによって異なります。${event_type}
は LINK_ARTIFACT
または ADD_ARTIFACT_ALIAS
としてレンダリングされます。以下に例のマッピングを示します。
${event_type} --> "LINK_ARTIFACT" または "ADD_ARTIFACT_ALIAS"
${event_author} --> "<wandb-user>"
${artifact_version} --> "wandb-artifact://_id/QXJ0aWZhY3Q6NTE3ODg5ODg3""
${artifact_version_string} --> "<entity>/model-registry/<registered_model_name>:<alias>"
${artifact_collection_name} --> "<registered_model_name>"
${project_name} --> "model-registry"
${entity_name} --> "<entity>"
テンプレート文字列を使用して W&B から GitHub Actions や他のツールにコンテキストを動的に渡します。これらのツールが Python スクリプトを呼び出すことができる場合、それらは W&B API を通じて登録されたモデルアーティファクトを使用することができます。
この例のペイロードは、webhook を使用して Teams チャンネルに通知する方法を示しています。
{
"@type" : "MessageCard" ,
"@context" : "http://schema.org/extensions" ,
"summary" : "New Notification" ,
"sections" : [
{
"activityTitle" : "Notification from WANDB" ,
"text" : "This is an example message sent via Teams webhook." ,
"facts" : [
{
"name" : "Author" ,
"value" : "${event_author}"
},
{
"name" : "Event Type" ,
"value" : "${event_type}"
}
],
"markdown" : true
}
]
}
実行時に W&B データをペイロードに挿入するためにテンプレート文字列を使用できます(上記の Teams の例に示したように)。
このセクションは歴史的な目的で提供されます。現在、webhook を使用して Slack と統合している場合は、[新しい Slack インテグレーション]({{ relref “#create-a-slack-automation”}}) を使用するように設定を更新することをお勧めします。
Slack アプリをセットアップし、Slack API ドキュメント で強調されている指示に従って、着信 webhook インテグレーションを追加します。Bot User OAuth Token
の下で指定されているシークレットが W&B webhook のアクストークンであることを確認してください。
以下はペイロードの例です。
{
"text" : "New alert from WANDB!" ,
"blocks" : [
{
"type" : "section" ,
"text" : {
"type" : "mrkdwn" ,
"text" : "Registry event: ${event_type}"
}
},
{
"type" :"section" ,
"text" : {
"type" : "mrkdwn" ,
"text" : "New version: ${artifact_version_string}"
}
},
{
"type" : "divider"
},
{
"type" : "section" ,
"text" : {
"type" : "mrkdwn" ,
"text" : "Author: ${event_author}"
}
}
]
}
W&B アプリ UI または Bash スクリプトを使用して、インタラクティブに webhook のトラブルシューティングを行います。新しい webhook を作成する際や既存の webhook を編集する際に webhook をトラブルシューティングできます。
チーム管理者は W&B アプリ UI を使用して webhook をインタラクティブにテストできます。
W&B チーム設定ページに移動します。
Webhooks セクションまでスクロールします。
webhook の名前の横にある三点リーダー(ミートボールアイコン)をクリックします。
Test を選択します。
現れた UI パネルから、表示されるフィールドに POST リクエストを貼り付けます。
Test webhook をクリックします。W&B アプリ UI 内で、W&B はエンドポイントからの応答を投稿します。
Testing Webhooks in Weights & Biases のビデオを見て、デモをご覧ください。
このシェルスクリプトは、W&B が webhook オートメーションに送信する POST
リクエストを生成する1つの方法を示しています。
以下のコードをシェルスクリプトにコピーし、webhook のトラブルシューティングを行います。以下の値を指定してください。
ACCESS_TOKEN
SECRET
PAYLOAD
API_ENDPOINT
webhook_test.sh