PromptBuilder::includeOutputModalities( WordPressAiClientMessagesEnumsModalityEnum $modalities ): void

This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only by core. It is listed here for completeness.

Includes output modalities if not already present.

Description

Adds the given modalities to the output modalities list if they’re not already included. If output modalities is null, initializes it with the given modalities.

Parameters

$modalitiesWordPressAiClientMessagesEnumsModalityEnumrequired
The modalities to include.

Return

void

Source

private function includeOutputModalities(ModalityEnum ...$modalities): void
{
    $existing = $this->modelConfig->getOutputModalities();
    // Initialize if null
    if ($existing === null) {
        $this->modelConfig->setOutputModalities($modalities);
        return;
    }
    // Build a set of existing modality values for O(1) lookup
    $existingValues = [];
    foreach ($existing as $existingModality) {
        $existingValues[$existingModality->value] = \true;
    }
    // Add new modalities that don't exist
    $toAdd = [];
    foreach ($modalities as $modality) {
        if (!isset($existingValues[$modality->value])) {
            $toAdd[] = $modality;
        }
    }
    // Update if we have new modalities to add
    if (!empty($toAdd)) {
        $this->modelConfig->setOutputModalities(array_merge($existing, $toAdd));
    }
}

Changelog

VersionDescription
0.1.0Introduced.

User Contributed Notes

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