ProviderRegistry::findProviderModelsMetadataForSupport( string $idOrClassName, WordPressAiClientProvidersModelsDTOModelRequirements $modelRequirements ): WordPressAiClientProviderslist<ModelMetadata>

In this article

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

Parameters

$idOrClassNamestringrequired
The provider ID or class name.
$modelRequirementsWordPressAiClientProvidersModelsDTOModelRequirementsrequired
The requirements to match against.

Return

WordPressAiClientProviderslist<ModelMetadata> List of model metadata that match requirements.

Source

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;
}

Changelog

VersionDescription
0.1.0Introduced.

User Contributed Notes

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