WordPress\AiClient\Providers

ProviderRegistry::findProviderModelsMetadataForSupportpublicWP 0.1.0

Finds models within a specific available provider that support the given requirements.

Method of the class: ProviderRegistry{}

No Hooks.

Returns

list. List of model metadata that match requirements.

Usage

$ProviderRegistry = new ProviderRegistry();
$ProviderRegistry->findProviderModelsMetadataForSupport( $idOrClassName, $modelRequirements ): array;
$idOrClassName(string) (required)
The provider ID or class name.
$modelRequirements(ModelRequirements) (required)
The requirements to match against.

Changelog

Since 0.1.0 Introduced.

ProviderRegistry::findProviderModelsMetadataForSupport() code WP 7.0

public function findProviderModelsMetadataForSupport(string $idOrClassName, ModelRequirements $modelRequirements): array
{
    $className = $this->resolveProviderClassName($idOrClassName);
    // If the provider is not configured, there is no way to use it, so it is considered unavailable.
    if (!$this->isProviderConfigured($className)) {
        return [];
    }
    $modelMetadataDirectory = $className::modelMetadataDirectory();
    // Filter models that meet requirements
    $matchingModels = [];
    foreach ($modelMetadataDirectory->listModelMetadata() as $modelMetadata) {
        if ($modelRequirements->areMetBy($modelMetadata)) {
            $matchingModels[] = $modelMetadata;
        }
    }
    return $matchingModels;
}