PromptBuilder::isSupported( WordPressAiClientProvidersModelsEnumsCapabilityEnum|null $capability = null ): bool

In this article

Checks if the current prompt is supported by the selected model.

Parameters

$capabilityWordPressAiClientProvidersModelsEnumsCapabilityEnum|nulloptional
Optional capability to check support for.

Default:null

Return

bool True if supported, false otherwise.

Source

public function isSupported(?CapabilityEnum $capability = null): bool
{
    // If no intended capability provided, infer from output modalities
    if ($capability === null) {
        // First try to infer from a specific model if one is set
        if ($this->model !== null) {
            $inferredCapability = $this->inferCapabilityFromModelInterfaces($this->model);
            if ($inferredCapability !== null) {
                $capability = $inferredCapability;
            }
        }
        // If still no capability, infer from output modalities
        if ($capability === null) {
            $capability = $this->inferCapabilityFromOutputModalities();
        }
    }
    // Build requirements with the specified capability
    $requirements = ModelRequirements::fromPromptData($capability, $this->messages, $this->modelConfig);
    // If the model has been set, check if it meets the requirements
    if ($this->model !== null) {
        return $requirements->areMetBy($this->model->metadata());
    }
    try {
        // Check if any models support these requirements
        $models = $this->registry->findModelsMetadataForSupport($requirements);
        return !empty($models);
    } catch (InvalidArgumentException $e) {
        // No models support the requirements
        return \false;
    }
}

Changelog

VersionDescription
0.3.0Method visibility changed to public.
0.1.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.