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

---

# PromptBuilder::inferCapabilityFromModelInterfaces( WordPressAiClientProvidersModelsContractsModelInterface $model ): WordPressAiClientProvidersModelsEnumsCapabilityEnum|null

## In this article

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

[ Back to top](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/infercapabilityfrommodelinterfaces/?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 a model’s implemented interfaces.

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

 `$model`WordPressAiClientProvidersModelsContractsModelInterfacerequired

The model to infer capability from.

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

 WordPressAiClientProvidersModelsEnumsCapabilityEnum|null The inferred capability,
or null if none can be inferred.

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

    ```php
    private function inferCapabilityFromModelInterfaces(ModelInterface $model): ?CapabilityEnum
    {
        // Check model interfaces in order of preference
        if ($model instanceof TextGenerationModelInterface) {
            return CapabilityEnum::textGeneration();
        }
        if ($model instanceof ImageGenerationModelInterface) {
            return CapabilityEnum::imageGeneration();
        }
        if ($model instanceof TextToSpeechConversionModelInterface) {
            return CapabilityEnum::textToSpeechConversion();
        }
        if ($model instanceof SpeechGenerationModelInterface) {
            return CapabilityEnum::speechGeneration();
        }
        if ($model instanceof VideoGenerationModelInterface) {
            return CapabilityEnum::videoGeneration();
        }
        // No supported interface found
        return null;
    }
    ```

[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#L659)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/php-ai-client/src/Builders/PromptBuilder.php#L659-L679)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wordpress-aiclient-builders-promptbuilder/infercapabilityfrommodelinterfaces/?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/infercapabilityfrommodelinterfaces/?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%2Finfercapabilityfrommodelinterfaces%2F)
before being able to contribute a note or feedback.