aix.ai_models.manager¶
Unified model management interface.
Provides a high-level API for managing AI models across providers.
Functions
|
Get a pre-configured model manager. |
Classes
|
Unified interface for AI model management. |
- class aix.ai_models.manager.ModelManager(*, storage_path=None)[source]¶
Bases:
objectUnified interface for AI model management.
Combines model registry, sources, and connectors into a single facade.
>>> manager = ModelManager() >>> manager.register_connector(OpenAIConnector()) >>> len(manager.connectors) 1
- add_model_tag(model_id, *tags)[source]¶
Add tags to a model.
- Return type:
>>> manager = ModelManager() >>> manager.models["gpt-4"] = Model(id="gpt-4", provider="openai") >>> manager.add_model_tag("gpt-4", "fast", "expensive") >>> "fast" in manager.models["gpt-4"].tags True
- property connectors: ConnectorRegistry¶
Access to connector registry.
- create_model_group(group_name, model_ids)[source]¶
Create a named group of models using tags.
- Return type:
>>> manager = ModelManager() >>> manager.models["gpt-4"] = Model(id="gpt-4", provider="openai") >>> manager.models["claude-3"] = Model(id="claude-3", provider="anthropic") >>> manager.create_model_group("premium", ["gpt-4", "claude-3"]) >>> premium = manager.list_models(tags=["group:premium"]) >>> len(premium) 2
- discover_from_source(source_name, *, auto_register=True, verbose=True)[source]¶
Discover models from a registered source.
- get_connector_metadata(model_id, connector_name)[source]¶
Get formatted metadata for a specific connector.
- Parameters:
- Return type:
- Returns:
Dict with metadata formatted for the specified connector
>>> manager = ModelManager() >>> manager.models["gpt-4"] = Model(id="gpt-4", provider="openai") >>> manager.register_connector(OpenAIConnector()) >>> meta = manager.get_connector_metadata("gpt-4", "openai") >>> meta["model"] 'gpt-4'
- get_model(model_id)[source]¶
Get a specific model by ID.
- Return type:
>>> manager = ModelManager() >>> manager.models["gpt-4"] = Model(id="gpt-4", provider="openai") >>> model = manager.get_model("gpt-4") >>> model.id 'gpt-4'
- list_models(*, provider=None, is_local=None, min_context_size=None, max_context_size=None, has_capabilities=None, tags=None, custom_filter=None)[source]¶
List models with optional filtering.
>>> manager = ModelManager() >>> manager.models["gpt-4"] = Model(id="gpt-4", provider="openai") >>> manager.models["llama2"] = Model(id="llama2", provider="ollama", is_local=True) >>> local = manager.list_models(is_local=True) >>> len(local) 1 >>> local[0].id 'llama2'
- property models: ModelRegistry¶
Access to model registry for direct manipulation.
>>> manager = ModelManager() >>> manager.models["test"] = Model(id="test", provider="test") >>> "test" in manager.models True
- register_connector(connector)[source]¶
Register a model connector.
- Return type:
>>> manager = ModelManager() >>> connector = OpenAIConnector() >>> manager.register_connector(connector) >>> connector.name in manager.connectors True
- register_source(name, source)[source]¶
Register a model discovery source.
- Return type:
>>> manager = ModelManager() >>> source = OpenRouterSource() >>> manager.register_source("openrouter", source) >>> "openrouter" in manager.list_sources() True
- set_custom_metadata(model_id, key, value)[source]¶
Set custom metadata on a model.
- Return type:
>>> manager = ModelManager() >>> manager.models["gpt-4"] = Model(id="gpt-4", provider="openai") >>> manager.set_custom_metadata("gpt-4", "my_note", "Use for production") >>> manager.models["gpt-4"].custom_metadata["my_note"] 'Use for production'