WordPress\AiClient\Builders
PromptBuilder::getCandidateModelsMap
Builds a map of candidate models that satisfy the requirements for efficient lookup.
Method of the class: PromptBuilder{}
No Hooks.
Returns
Array
Usage
// private - for code of main (parent) class only $result = $this->getCandidateModelsMap( $requirements ): array;
- $requirements(ModelRequirements) (required)
- The requirements derived from the prompt.
Changelog
| Since 0.2.0 | Introduced. |
PromptBuilder::getCandidateModelsMap() PromptBuilder::getCandidateModelsMap code WP 7.0
private function getCandidateModelsMap(ModelRequirements $requirements): array
{
if ($this->providerIdOrClassName === null) {
// No provider locked in, gather all models across providers that meet requirements.
$providerModelsMetadata = $this->registry->findModelsMetadataForSupport($requirements);
$candidateMap = [];
foreach ($providerModelsMetadata as $providerModels) {
$providerId = $providerModels->getProvider()->getId();
$providerMap = $this->generateMapFromCandidates($providerId, $providerModels->getModels());
// Use + operator to merge, preserving keys from $candidateMap (first provider wins for model-only keys)
$candidateMap = $candidateMap + $providerMap;
}
return $candidateMap;
}
// Provider set, only consider models from that provider.
$modelsMetadata = $this->registry->findProviderModelsMetadataForSupport($this->providerIdOrClassName, $requirements);
// Ensure we pass the provider ID, not the class name
$providerId = $this->registry->getProviderId($this->providerIdOrClassName);
return $this->generateMapFromCandidates($providerId, $modelsMetadata);
}