Prompt Decorators.utils.model Detection
# model_detection
Model detection and capability utilities.
This module provides utilities for detecting model capabilities and features.
## Module Variables
### `logger`
Type: `Logger`
Value: `<Logger prompt_decorators.utils.model_detection (INFO)>`
## Classes
### `ModelCapabilities`
Class to represent the capabilities of a model.
This class stores information about what a model can and cannot do,
such as supported decorator features and parameter types.
#### Attributes
- `from_dict`: `classmethod` = `<classmethod(<function ModelCapabilities.from_dict at 0x1059b6480>)>`
#### Methods
##### `__init__`
Initialize a model capabilities object.
Args:
model_id: Unique identifier for the model
model_family: Family or provider of the model
version: Version of the model
capabilities: Dictionary of capability flags and values
**Signature:** `__init__(self, model_id: str, model_family: str = 'unknown', version: str = 'unknown', capabilities: Optional[Dict[str, Any]] = None)`
**Parameters:**
- `model_id`: `str`
- `model_family`: `str` (default: `unknown`)
- `version`: `str` (default: `unknown`)
- `capabilities`: `Optional` (default: `None`)
##### `get_capability`
Get the value of a capability.
Args:
capability: The capability to get
default: Default value if the capability is not defined
Returns:
The capability value, or the default if not found
**Signature:** `get_capability(self, capability: str, default: Any = None) -> Any`
**Parameters:**
- `capability`: `str`
- `default`: `Any` (default: `None`)
**Returns:** `Any`
##### `set_capability`
Set the value of a capability.
Args:
capability: The capability to set
value: The value to set
Returns:
None
**Signature:** `set_capability(self, capability: str, value: Any) -> None`
**Parameters:**
- `capability`: `str`
- `value`: `Any`
##### `supports_feature`
Check if the model supports a specific feature.
Args:
feature: The feature to check
Returns:
True if the feature is supported, False otherwise
**Signature:** `supports_feature(self, feature: str) -> bool`
**Parameters:**
- `feature`: `str`
**Returns:** `bool`
##### `to_dict`
Convert the model capabilities to a dictionary.
Args:
self: The ModelCapabilities instance
Returns:
Dictionary representation of the model capabilities
**Signature:** `to_dict(self) -> Dict[str, Any]`
**Parameters:**
**Returns:** `Dict`
### `ModelDetector`
Detector for model capabilities.
This class provides utilities for detecting and querying model capabilities.
#### Attributes
- `DEFAULT_CAPABILITIES_PATH`: `PosixPath` = `PosixPath('/Users/danielbentes/prompt-decorators/config/model_capabilities.json')`
#### Methods
##### `detect_model_from_api`
Detect the model family from an API name.
Args:
api_name: The API name or URL
Returns:
The detected model family, or None if not detected
**Signature:** `detect_model_from_api(self, api_name: str) -> Optional[str]`
**Parameters:**
- `api_name`: `str`
**Returns:** `Optional`
##### `get_all_families`
Get all registered model families.
Args:
self: The ModelDetector instance
Returns:
List of all registered model families
**Signature:** `get_all_families(self) -> List[str]`
**Parameters:**
**Returns:** `List`
##### `get_all_models`
Get all registered models.
Args:
self: The ModelDetector instance
Returns:
List of all registered ModelCapabilities
**Signature:** `get_all_models(self) -> List[prompt_decorators.utils.model_detection.ModelCapabilities]`
**Parameters:**
**Returns:** `List`
##### `get_model_capabilities`
Get capabilities for a specific model.
Args:
model_id: The model identifier
Returns:
ModelCapabilities for the model, or None if not found
Note:
This method attempts to find an exact match first, then falls back
to a partial match if no exact match is found.
**Signature:** `get_model_capabilities(self, model_id: str) -> Optional[prompt_decorators.utils.model_detection.ModelCapabilities]`
**Parameters:**
- `model_id`: `str`
**Returns:** `Optional`
##### `get_models_by_family`
Get all models in a specific family.
Args:
family: Model family
Returns:
List of ModelCapabilities for models in the family
**Signature:** `get_models_by_family(self, family: str) -> List[prompt_decorators.utils.model_detection.ModelCapabilities]`
**Parameters:**
- `family`: `str`
**Returns:** `List`
##### `register_model`
Register a model's capabilities.
Args:
model: The model capabilities to register
Returns:
None
**Signature:** `register_model(self, model: prompt_decorators.utils.model_detection.ModelCapabilities) -> None`
**Parameters:**
- `model`: `ModelCapabilities`
## Functions
### `get_model_detector`
Get the global model detector instance.
Returns:
The global model detector instance
**Signature:** `get_model_detector() -> prompt_decorators.utils.model_detection.ModelDetector`
**Returns:** `ModelDetector`when to use it
Community prompt sourced from the open-source GitHub repo synaptiai/prompt-decorators (Apache-2.0). A "Prompt Decorators.utils.model Detection" style prompt — adapt the placeholders and specifics to your task. Imported as-is and not independently retested here, so check the output before relying on it.
tags
roleplaycommunitygeneral
source
synaptiai/prompt-decorators · Apache-2.0