Feature Provider Overrides
Feature provider overrides allow an extension to offer a dedicated default AI provider for a specific feature while still using AI Foundation’s shared provider registry.
Use this when one feature should use a different model or provider than the global default. Examples include SEO generation, page generation, content generation, and LLM-based translation.
How it works
AI Foundation owns the provider rows. The child extension exposes feature-specific provider fields in AI Foundation → AI Features. At runtime, the feature resolves the provider in this order:
Provider selected in the runtime modal, if the request includes one.
Feature default saved in AI Features.
Global default provider fallback.
Supported implementation hook
Child extensions register provider dropdowns by implementing:
NITSAN\NsT3AF\Contract\FeatureProviderFormOptionsInterface
Register the service with:
t3af.feature_provider_form_options
AI Foundation uses the registered service to render provider options in the feature settings drawer.
Known feature fields
T3AI uses feature-specific default provider fields such as:
defaultProviderForSeodefaultProviderForPagesdefaultProviderForContentdefaultProviderForTranslation
Each dropdown lists enabled providers from AI Providers. The Default (inherit global provider) option keeps the feature on the global provider path.
Translation note
defaultModelForTranslation still selects the translation backend, such as DeepL, Google, or an AI-based path.
defaultProviderForTranslation applies only to LLM completion paths that use the AI Foundation completion gateway.
Configuration workflow
Register a feature card with Custom AI Features.
Add the provider field to that feature’s settings schema.
Implement
FeatureProviderFormOptionsInterface.Tag the service with
t3af.feature_provider_form_options.Flush caches.
Open AI Foundation → AI Features and verify the provider dropdown.
Save a default provider and test the runtime feature.
Best practices
Keep provider field names stable.
Always include an inherit/default option.
Use the same label, AI Provider, when the same choice appears in runtime modals.
Resolve providers through the feature runtime path instead of reading provider rows directly.
Do not hardcode provider IDs in feature logic.
Verification
Open AI Foundation → AI Providers and confirm at least one provider is enabled.
Open AI Foundation → AI Features.
Open the feature settings drawer.
Confirm the provider dropdown contains enabled providers.
Save a feature default.
Open the feature runtime modal and confirm the saved provider is preselected.
Troubleshooting
Dropdown is missing
Confirm the form-options service implements the correct interface.
Confirm the service is tagged with
t3af.feature_provider_form_options.Confirm the related feature card and scope provider are active.
Runtime uses the wrong provider
Confirm the request field name matches the saved setting.
Confirm the feature handles
defaultor empty values as fallback.Confirm the saved provider row still exists and is enabled.