ModelRequirements
- Since
- 0.1.0
- Source
wp-includes/php-ai-client/src/Providers/Models/DTO/ModelRequirements.php:29
Represents requirements that implementing code has for AI model selection.
Description
This class defines the capabilities and options that a model must support in order to be considered suitable for the implementing code's needs.
Compatibility
- WordPress
- since 0.1.0
- 6.7.7
- 6.8.8
- 6.9.7
- 7.0.4
- 7.1.0
Present in 2 of the 5 tracked releases, added in 0.1.0.
Properties · 2
$requiredCapabilitiesWordPress\AiClient\Providers\Models\DTO\list<CapabilityEnum>protected$requiredOptionsWordPress\AiClient\Providers\Models\DTO\list<RequiredOption>protected
Methods · 10
- __construct()Constructor.
- getRequiredCapabilities()Gets the capabilities that the model must support.
- getRequiredOptions()Gets the options that the model must support with specific values.
- areMetBy()Checks whether the given model metadata meets these requirements.
- fromPromptData()Creates ModelRequirements from prompt data and model configuration.
- toRequiredOptions()Converts ModelConfig to an array of RequiredOptions.
- includeInRequiredOptions()Includes a RequiredOption in the array, ensuring no duplicates based on option name.
- getJsonSchema(){@inheritDoc}
- toArray(){@inheritDoc}
- fromArray(){@inheritDoc}
Source code
class ModelRequirements extends AbstractDataTransferObject{ public const KEY_REQUIRED_CAPABILITIES = 'requiredCapabilities'; public const KEY_REQUIRED_OPTIONS = 'requiredOptions'; /** * @var list<CapabilityEnum> The capabilities that the model must support. */ protected array $requiredCapabilities; /** * @var list<RequiredOption> The options that the model must support with specific values. */ protected array $requiredOptions; /** * Constructor. * * @since 0.1.0 * * @param list<CapabilityEnum> $requiredCapabilities The capabilities that the model must support. * @param list<RequiredOption> $requiredOptions The options that the model must support with specific values. * * @throws InvalidArgumentException If arrays are not lists. */ public function __construct(array $requiredCapabilities, array $requiredOptions) { if (!array_is_list($requiredCapabilities)) { throw new InvalidArgumentException('Required capabilities must be a list array.'); } if (!array_is_list($requiredOptions)) { throw new InvalidArgumentException('Required options must be a list array.'); } $this->requiredCapabilities = $requiredCapabilities; $this->requiredOptions = $requiredOptions; } /** * Gets the capabilities that the model must support. * * @since 0.1.0 * * @return list<CapabilityEnum> The required capabilities. */ public function getRequiredCapabilities(): array { return $this->requiredCapabilities; } /** * Gets the options that the model must support with specific values. * * @since 0.1.0 * * @return list<RequiredOption> The required options. */ public function getRequiredOptions(): array { return $this->requiredOptions; } /** * Checks whether the given model metadata meets these requirements. * * @since 0.2.0 * * @param ModelMetadata $metadata The model metadata to check against. * @return bool True if the model meets all requirements, false otherwise. */ public function areMetBy(\WordPress\AiClient\Providers\Models\DTO\ModelMetadata $metadata): bool { // Create lookup maps for better performance (instead of nested foreach loops) $capabilitiesMap = []; foreach ($metadata->getSupportedCapabilities() as $capability) { $capabilitiesMap[$capability->value] = $capability; } $optionsMap = []; foreach ($metadata->getSupportedOptions() as $option) { $optionsMap[$option->getName()->value] = $option; } // Check if all required capabilities are supported using map lookup foreach ($this->requiredCapabilities as $requiredCapability) { if (!isset($capabilitiesMap[$requiredCapability->value])) { return \false; } }Changelog
Introduced in 0.1.0. Unchanged from 7.0.4 through 7.1.0.
Signature, return type and hooks compared across 2 parsed releases.
About this page
- Parsed data
- Generated from the wordpress-develop 7.1.0 tag, from
src/wp-includes/php-ai-client/src/Providers/Models/DTO/ModelRequirements.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.