PromptBuilder::inferCapabilityFromOutputModalities(): WordPressAiClientProvidersModelsEnumsCapabilityEnum

In this article

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.

Infers the capability from configured output modalities.

Return

WordPressAiClientProvidersModelsEnumsCapabilityEnum The inferred capability.

Source

private function inferCapabilityFromOutputModalities(): CapabilityEnum
{
    // Get the configured output modalities
    $outputModalities = $this->modelConfig->getOutputModalities();
    // Default to text if no output modality is specified
    if ($outputModalities === null || empty($outputModalities)) {
        return CapabilityEnum::textGeneration();
    }
    // Multi-modal output (multiple modalities) defaults to text generation. This is temporary
    // as a multi-modal interface will be implemented in the future.
    if (count($outputModalities) > 1) {
        return CapabilityEnum::textGeneration();
    }
    // Infer capability from single output modality
    $outputModality = $outputModalities[0];
    if ($outputModality->isText()) {
        return CapabilityEnum::textGeneration();
    } elseif ($outputModality->isImage()) {
        return CapabilityEnum::imageGeneration();
    } elseif ($outputModality->isAudio()) {
        return CapabilityEnum::speechGeneration();
    } elseif ($outputModality->isVideo()) {
        return CapabilityEnum::videoGeneration();
    } else {
        // For unsupported modalities, provide a clear error message
        throw new RuntimeException(sprintf('Output modality "%s" is not yet supported.', $outputModality->value));
    }
}

Changelog

VersionDescription
0.1.0Introduced.

User Contributed Notes

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