aix.ai_models.base¶
Core types for AI model management.
This module provides a unified interface for managing, discovering, and connecting to AI models across multiple providers and deployment methods.
Classes
Abstract base for model connectors/clients. |
|
Registry for managing model connectors. |
|
|
Represents an AI model with its metadata. |
|
Registry for managing AI models using Mapping interface. |
Abstract base for model discovery sources. |
- class aix.ai_models.base.Connector[source]¶
Bases:
ABCAbstract base for model connectors/clients.
- class aix.ai_models.base.ConnectorRegistry[source]¶
Bases:
MutableMapping[str,Connector]Registry for managing model connectors.
>>> registry = ConnectorRegistry() >>> class MyConnector(Connector): ... @property ... def name(self) -> str: ... return "my_connector" ... def format_metadata(self, model: Model) -> dict[str, Any]: ... return {"model": model.id} >>> connector = MyConnector() >>> registry[connector.name] = connector >>> "my_connector" in registry True
- class aix.ai_models.base.Model(id, provider, context_size=None, is_local=False, capabilities=<factory>, cost_per_token=<factory>, tags=<factory>, connector_metadata=<factory>, custom_metadata=<factory>)[source]¶
Bases:
objectRepresents an AI model with its metadata.
>>> model = Model( ... id="gpt-4", ... provider="openai", ... context_size=8192, ... is_local=False ... ) >>> model.id 'gpt-4'
- class aix.ai_models.base.ModelRegistry(*, storage_path=None)[source]¶
Bases:
MutableMapping[str,Model]Registry for managing AI models using Mapping interface.
>>> registry = ModelRegistry() >>> registry["gpt-4"] = Model(id="gpt-4", provider="openai") >>> "gpt-4" in registry True >>> len(registry) 1
- filter(*, provider=None, is_local=None, min_context_size=None, max_context_size=None, has_capabilities=None, tags=None, custom_filter=None)[source]¶
Filter models by multiple criteria.
>>> registry = ModelRegistry() >>> registry["gpt-4"] = Model(id="gpt-4", provider="openai", context_size=8192) >>> registry["llama2"] = Model(id="llama2", provider="ollama", is_local=True) >>> local_models = registry.filter(is_local=True) >>> len(local_models) 1