Title: PromptBuilder::inferCapabilityFromOutputModalities
Published: May 20, 2026

---

# PromptBuilder::inferCapabilityFromOutputModalities(): WordPressAiClientProvidersModelsEnumsCapabilityEnum

## In this article

 * [Return](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/infercapabilityfromoutputmodalities/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/infercapabilityfromoutputmodalities/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/infercapabilityfromoutputmodalities/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/infercapabilityfromoutputmodalities/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/infercapabilityfromoutputmodalities/?output_format=md#wp--skip-link--target)

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](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/infercapabilityfromoutputmodalities/?output_format=md#return)󠁿

 WordPressAiClientProvidersModelsEnumsCapabilityEnum The inferred capability.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/infercapabilityfromoutputmodalities/?output_format=md#source)󠁿

    ```php
    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));
        }
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/php-ai-client/src/builders/promptbuilder.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-includes/php-ai-client/src/Builders/PromptBuilder.php#L623)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/php-ai-client/src/Builders/PromptBuilder.php#L623-L650)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/infercapabilityfromoutputmodalities/?output_format=md#related)󠁿

| Used by | Description | 
| [PromptBuilder::generateResult()](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/generateresult/)`wp-includes/php-ai-client/src/Builders/PromptBuilder.php` |

Generates a result from the prompt.

  | 
| [PromptBuilder::isSupported()](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/issupported/)`wp-includes/php-ai-client/src/Builders/PromptBuilder.php` |

Checks if the current prompt is supported by the selected model.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/infercapabilityfromoutputmodalities/?output_format=md#changelog)󠁿

| Version | Description | 
| [0.1.0](https://developer.wordpress.org/reference/since/0.1.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwordpress-aiclient-builders-promptbuilder%2Finfercapabilityfromoutputmodalities%2F)
before being able to contribute a note or feedback.