WordPress\AiClient\Builders
PromptBuilder::usingModelPreference
Sets preferred models to evaluate in order.
Метод класса: PromptBuilder{}
Хуков нет.
Возвращает
self.
Использование
$PromptBuilder = new PromptBuilder(); $PromptBuilder->usingModelPreference( ...$preferredModels ): self;
- ...$preferredModels(строка|ModelInterface|array{0:string,1:string}) (обязательный)
- The preferred models as model IDs, model instances, or [provider ID, model ID] tuples. For broader compatibility, it is recommended you specify only model IDs or model instances, as that will allow for different providers that expose the same model to be considered.
Список изменений
| С версии 0.2.0 | Введена. |
Код PromptBuilder::usingModelPreference() PromptBuilder::usingModelPreference WP 7.1.2
public function usingModelPreference(...$preferredModels): self
{
if ($preferredModels === []) {
throw new InvalidArgumentException('At least one model preference must be provided.');
}
$preferenceKeys = [];
foreach ($preferredModels as $preferredModel) {
if (is_array($preferredModel)) {
// [model identifier, provider ID] tuple
if (!array_is_list($preferredModel) || count($preferredModel) !== 2) {
throw new InvalidArgumentException('Model preference tuple must contain model identifier and provider ID.');
}
[$providerId, $modelId] = $preferredModel;
$modelId = $this->normalizePreferenceIdentifier($modelId);
$providerId = $this->normalizePreferenceIdentifier($providerId, 'Model preference provider identifiers cannot be empty.');
$preferenceKey = $this->createProviderModelPreferenceKey($providerId, $modelId);
} elseif ($preferredModel instanceof ModelInterface) {
// Model instance
$modelId = $preferredModel->metadata()->getId();
$providerId = $preferredModel->providerMetadata()->getId();
$preferenceKey = $this->createProviderModelPreferenceKey($providerId, $modelId);
} elseif (is_string($preferredModel)) {
// Model ID
$modelId = $this->normalizePreferenceIdentifier($preferredModel);
$preferenceKey = $this->createModelPreferenceKey($modelId);
} else {
// Invalid type
throw new InvalidArgumentException('Model preferences must be model identifiers, instances of ModelInterface, ' . 'or provider/model tuples.');
}
$preferenceKeys[] = $preferenceKey;
}
$this->modelPreferenceKeys = $preferenceKeys;
return $this;
}