メインコンテンツへスキップ
W&B レジストリアプリのグローバル検索バーを使用して、レジストリ、コレクション、アーティファクトバージョンタグ、コレクションタグ、またはエイリアスを見つけます。W&B Python SDK を使用して、特定の条件に基づいて レジストリ、コレクション、およびアーティファクトバージョンをフィルタリング するために、MongoDBスタイルのクエリを使用することができます。 表示権限がある項目のみが検索結果に表示されます。

レジストリ項目の検索

レジストリ項目を検索するには:
  1. W&B レジストリアプリに移動します。
  2. ページ上部の検索バーに検索語を指定します。Enter を押して検索します。
指定した語が既存のレジストリ、コレクション名、アーティファクトバージョンタグ、コレクションタグ、またはエイリアスと一致する場合、検索バーの下に検索結果が表示されます。
レジストリ検索バーにテキストを入力してレジストリ項目をフィルタリングするユーザーの.gif

MongoDBスタイルのクエリでレジストリ項目をクエリ

wandb.Api().registries()query predicates を使用して、1つ以上の MongoDBスタイルクエリ に基づいて、レジストリ、コレクション、およびアーティファクトバージョンをフィルタリングします。 以下の表は、フィルタリングしたい項目の種類に基づいて使用できるクエリの名前を示しています。
クエリ名
registriesname, description, created_at, updated_at
collectionsname, tag, description, created_at, updated_at
versionstag, alias, created_at, updated_at, metadata
以下のコード例は、一般的な検索シナリオを示しています。 wandb.Api().registries() メソッドを使用するには、まず W&B Python SDK (wandb) ライブラリをインポートします。
import wandb

# (オプション)読みやすさのために、wandb.Api() クラスのインスタンスを作成します。
api = wandb.Api()
model という文字列を含むすべてのレジストリをフィルタリングします。
# `model` という文字列を含むすべてのレジストリをフィルタリングします。
registry_filters = {
    "name": {"$regex": "model"}
}

# フィルタに一致するすべてのレジストリの反復可能なオブジェクトを返します
registries = api.registries(filter=registry_filters)
レジストリに関係なく、コレクション名に yolo という文字列を含むすべてのコレクションをフィルタリングします。
# レジストリに関係なく、コレクション名に 
# `yolo` という文字列を含むすべてのコレクションをフィルタリングします。
collection_filters = {
    "name": {"$regex": "yolo"}
}

# フィルタに一致するすべてのコレクションの反復可能なオブジェクトを返します
collections = api.registries().collections(filter=collection_filters)
レジストリに関係なく、コレクション名に yolo という文字列を含み、cnn というタグを持つすべてのコレクションをフィルタリングします。
# レジストリに関係なく、コレクション名に 
# `yolo` という文字列を含み、`cnn` というタグを持つすべてのコレクションをフィルタリングします。
collection_filters = {
    "name": {"$regex": "yolo"},
    "tag": "cnn"
}

# フィルタに一致するすべてのコレクションの反復可能なオブジェクトを返します
collections = api.registries().collections(filter=collection_filters)
model という文字列を含むすべてのアーティファクトバージョンを検索し、image-classification というタグまたは latest エイリアスを持っているもの:
# `model` という文字列を含むすべてのアーティファクトバージョンを検索し、
# `image-classification` というタグまたは `latest` エイリアスを持っているもの。
registry_filters = {
    "name": {"$regex": "model"}
}

# 論理 $or 演算子を使用してアーティファクトバージョンをフィルタリングします
version_filters = {
    "$or": [
        {"tag": "image-classification"},
        {"alias": "production"}
    ]
}

# フィルタに一致するすべてのアーティファクトバージョンの反復可能なオブジェクトを返します
artifacts = api.registries(filter=registry_filters).collections().versions(filter=version_filters)
詳細については、MongoDB ドキュメントの logical query operators を参照してください。 前述のコードスニペット内の artifacts の反復可能なオブジェクトの各項目は、Artifact クラスのインスタンスです。つまり、各アーティファクトの属性(namecollectionaliasestagscreated_at など)にアクセスできます。
for art in artifacts:
    print(f"artifact name: {art.name}")
    print(f"collection artifact belongs to: { art.collection.name}")
    print(f"artifact aliases: {art.aliases}")
    print(f"tags attached to artifact: {art.tags}")
    print(f"artifact created at: {art.created_at}\n")
アーティファクトオブジェクトの属性の完全なリストについては、API Reference docs の Artifacts Class を参照してください。 レジストリやコレクションに関係なく、2024-01-08 から 2025-03-04 の 13:10 UTC の間に作成されたすべてのアーティファクトバージョンをフィルタリングします。
# 2024-01-08 から 2025-03-04 の 13:10 UTC の間に作成された
# すべてのアーティファクトバージョンを検索します。

artifact_filters = {
    "alias": "latest",
    "created_at" : {"$gte": "2024-01-08", "$lte": "2025-03-04 13:10:00"},
}

# フィルタに一致するすべてのアーティファクトバージョンの反復可能なオブジェクトを返します
artifacts = api.registries().collections().versions(filter=artifact_filters)
日付と時刻は YYYY-MM-DD HH:MM:SS の形式で指定します。日付のみでフィルタリングしたい場合は、時間、分、秒を省略することができます。 詳細は、MongoDB ドキュメントの query comparisons を参照してください。
I