The available_model_registry core model represents model definitions that are available to the platform catalog, regardless of whether they are already attached to a specific engine instance.
This is the model you use when you are managing the catalog-side inventory of models.
What This Model Represents¶
Rows include a rich catalog-style payload with fields such as:
idnamelabelcatalog_model_idsource_kindprovider_hintformatfamilysummarystorage_refremote_urlversioncapabilitiesextended_capabilitiesinterfacestagsrequirementsartifactsmetadatasource_payloadextra_configstatus
This is intentionally broader than model_registry, because catalog entries describe what a model is and where it comes from, not just where one installed copy lives.
Typical Use Cases¶
Use module_sdk.models.available_model_registry when you need to:
- maintain a catalog of available models
- create manual or imported catalog entries
- attach catalog metadata such as tags, interfaces, requirements, or artifacts
- build inventory pages for model discovery and selection
Listing Catalog Entries¶
Example:
listing = module_sdk.models.available_model_registry.list(
page=0,
page_size=100,
filters={"status": "available", "format": "gguf"},
)Supported filters include:
idnamelabelcatalog_model_idsource_kindprovider_hintformatstatuscapabilities
Creating A Catalog Entry¶
Example:
created = module_sdk.models.available_model_registry.create(
{
"name": "tiny-embed",
"label": "Tiny Embed",
"source_kind": "manual",
"provider_hint": "sentence-transformers",
"format": "onnx",
"capabilities": ["embedding"],
"status": "available",
}
)What It Validates¶
The model requires:
namelabel
It also rejects duplicate names and normalizes the CSV-like list fields such as:
capabilitiesextended_capabilitiesinterfacestags
Updating A Catalog Entry¶
Example:
updated = module_sdk.models.available_model_registry.update(
row_id,
{
"summary": "Small embedding model",
"metadata": {"license": "apache-2.0"},
"artifacts": [{"id": "main"}],
},
)This is the right method for enriching a catalog entry over time as more metadata becomes available.
Deleting A Catalog Entry¶
Example:
deleted = module_sdk.models.available_model_registry.delete(row_id)Use this when the catalog row itself should disappear. If other registry rows depend on it semantically, your module still needs to reason about those relationships at the flow level.
Why This Model Matters¶
This model is the one to use when the user-facing task is “manage what models are available to the platform”, not “manage one installed model row”.
That distinction becomes important as soon as your module starts handling imports, catalogs, or provider-fed model inventories.