{"id":295084,"date":"2026-04-08T18:01:47","date_gmt":"2026-04-08T18:01:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-provider-for-azure-openai\/"},"modified":"2026-05-11T07:27:58","modified_gmt":"2026-05-11T07:27:58","slug":"ai-provider-for-azure-ai-foundry","status":"publish","type":"plugin","link":"https:\/\/es-mx.wordpress.org\/plugins\/ai-provider-for-azure-ai-foundry\/","author":3803,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.4","stable_tag":"1.2.4","tested":"7.0","requires":"7.0","requires_php":"8.3","requires_plugins":null,"header_name":"AI Provider for Azure AI Foundry","header_author":"Per S\u00f8derlind","header_description":"Connect WordPress to Azure AI Foundry Model Inference API for text generation, embeddings, and more.","assets_banners_color":"","last_updated":"2026-05-11 07:27:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/soderlind\/azure-ai-foundry","header_author_uri":"https:\/\/soderlind.no\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":278,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"PerS","date":"2026-04-08 21:35:02"},"1.2.2":{"tag":"1.2.2","author":"PerS","date":"2026-04-29 16:19:34"},"1.2.3":{"tag":"1.2.3","author":"PerS","date":"2026-05-10 21:12:47"},"1.2.4":{"tag":"1.2.4","author":"PerS","date":"2026-05-11 07:27:58"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3501910,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1","1.2.2","1.2.3","1.2.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3501910,"resolution":"1","location":"assets","locale":"","width":2288,"height":1540}},"screenshots":{"1":"Azure AI Foundry Connector in the WordPress admin Connectors page, showing detected deployments and capabilities."}},"plugin_section":[],"plugin_tags":[2353,259757,13289,25308,259756],"plugin_category":[],"plugin_contributors":[78884],"plugin_business_model":[],"class_list":["post-295084","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-ai-provider","plugin_tags-azure","plugin_tags-connector","plugin_tags-foundry","plugin_contributors-pers","plugin_committers-pers"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/ai-provider-for-azure-ai-foundry\/assets\/icon.svg?rev=3501910","icon":"https:\/\/ps.w.org\/ai-provider-for-azure-ai-foundry\/assets\/icon.svg?rev=3501910","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ai-provider-for-azure-ai-foundry\/assets\/screenshot-1.png?rev=3501910","caption":"Azure AI Foundry Connector in the WordPress admin Connectors page, showing detected deployments and capabilities."}],"raw_content":"<!--section=description-->\n<p>AI Provider for Azure AI Foundry registers an AI provider with the WordPress 7.0 AI Client, enabling text generation, image generation, embeddings, and text-to-speech via the <a href=\"https:\/\/learn.microsoft.com\/en-us\/rest\/api\/aifoundry\/modelinference\/\">Azure AI Foundry Model Inference API<\/a>.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>AI Client integration<\/strong> \u2014 usable via <code>wp_ai_client_prompt()<\/code> and the Settings \u2192 Connectors page.<\/li>\n<li><strong>OpenAI-compatible<\/strong> \u2014 uses the Azure AI Foundry <code>\/chat\/completions<\/code> endpoint.<\/li>\n<li><strong>Capability detection<\/strong> \u2014 auto-detects deployed models and capabilities (text generation, chat history, image generation, embeddings, text-to-speech) by probing the Azure endpoint.<\/li>\n<li><strong>Multiple endpoint types<\/strong> \u2014 supports Azure AI Services, Azure OpenAI, and Cognitive Services endpoints.<\/li>\n<li><strong>Auto-detection<\/strong> \u2014 discovers all deployed models via POST-based probing. No manual model name or API version configuration needed.<\/li>\n<li><strong>Custom authentication<\/strong> \u2014 sends the <code>api-key<\/code> header required by Azure.<\/li>\n<li><strong>Endpoint validation<\/strong> \u2014 validates Azure endpoint URLs with inline error messages.<\/li>\n<li><strong>Environment variable fallback<\/strong> \u2014 every setting can be overridden via environment variables or <code>wp-config.php<\/code> constants.<\/li>\n<li><strong>Connectors page UI<\/strong> \u2014 custom connector with fields for API key and endpoint URL. Detected deployments and capabilities displayed as read-only chips.<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 7.0 or later<\/li>\n<li>PHP 8.3+<\/li>\n<li>An Azure AI Foundry resource with a deployed model<\/li>\n<\/ul>\n\n<h4>Documentation<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/soderlind\/ai-provider-for-azure-ai-foundry\/blob\/main\/docs\/how-to-add-ai-provider.md\">Building an AI Provider Plugin for WordPress 7<\/a>, a deep-dive into provider registration, settings, authentication, and the Connectors page UI.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>From WordPress.org<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong> in your WordPress admin.<\/li>\n<li>Search for \"AI Provider for Azure AI Foundry\".<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin from WordPress.org.<\/li>\n<li>Upload the <code>ai-provider-for-azure-ai-foundry<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu.<\/li>\n<\/ol>\n\n<h4>Configuration<\/h4>\n\n<ol>\n<li>Go to <strong>Settings \u2192 Connectors<\/strong>.<\/li>\n<li>Find \"Azure AI Foundry\" and click <strong>Set Up<\/strong>.<\/li>\n<li>Enter your API Key and Endpoint URL.<\/li>\n<li>Click <strong>Connect &amp; Detect<\/strong> \u2014 the plugin probes your endpoint, discovers deployed models, and saves the configuration automatically.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20an%20api%20key%3F\"><h3>Where do I get an API key?<\/h3><\/dt>\n<dd><p>Sign in to <a href=\"https:\/\/ai.azure.com\/\">Azure AI Foundry<\/a> and create or select a project. Deploy a model and copy the API key from the endpoint details.<\/p><\/dd>\n<dt id=\"what%20is%20the%20endpoint%20url%3F\"><h3>What is the Endpoint URL?<\/h3><\/dt>\n<dd><p>The plugin supports three Azure endpoint types:<\/p>\n\n<ul>\n<li><code>https:\/\/{resource}.services.ai.azure.com\/api\/projects\/PROJECT-NAME<\/code> (Azure AI Services)<\/li>\n<li><code>https:\/\/{resource}.openai.azure.com<\/code> (Azure OpenAI)<\/li>\n<li><code>https:\/\/{resource}.cognitiveservices.azure.com<\/code> (Cognitive Services)<\/li>\n<\/ul>\n\n<p>You can find your endpoint in the Azure AI Foundry portal under your model deployment.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20specify%20a%20model%20name%3F\"><h3>Do I need to specify a model name?<\/h3><\/dt>\n<dd><p>No. The plugin auto-detects all deployed models by probing your Azure endpoint. Model names and capabilities are saved automatically when you click \"Connect &amp; Detect\".<\/p><\/dd>\n<dt id=\"can%20i%20configure%20settings%20without%20the%20admin%20ui%3F\"><h3>Can I configure settings without the admin UI?<\/h3><\/dt>\n<dd><p>Yes. Set any of these environment variables or define them as constants in <code>wp-config.php<\/code>:<\/p>\n\n<ul>\n<li><code>AZURE_AI_FOUNDRY_API_KEY<\/code><\/li>\n<li><code>AZURE_AI_FOUNDRY_ENDPOINT<\/code><\/li>\n<li><code>AZURE_AI_FOUNDRY_MODEL<\/code> (comma-separated deployment names)<\/li>\n<li><code>AZURE_AI_FOUNDRY_CAPABILITIES<\/code> (comma-separated, e.g. <code>text_generation,chat_history<\/code>)<\/li>\n<\/ul><\/dd>\n<dt id=\"what%20capabilities%20are%20supported%3F\"><h3>What capabilities are supported?<\/h3><\/dt>\n<dd><p>The plugin supports five capabilities: <code>text_generation<\/code>, <code>chat_history<\/code>, <code>image_generation<\/code>, <code>embedding_generation<\/code>, and <code>text_to_speech_conversion<\/code>. By default, <code>text_generation<\/code> and <code>chat_history<\/code> are enabled. Use \"Connect &amp; Detect\" to discover capabilities automatically.<\/p><\/dd>\n<dt id=\"what%20api%20version%20is%20used%3F\"><h3>What API version is used?<\/h3><\/dt>\n<dd><p>The plugin uses <code>2025-04-01-preview<\/code> for the Azure OpenAI surface. This is hardcoded and not user-configurable.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Update npm development dependencies and resolve npm audit findings.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Fix AI plugin connector detection on WordPress 7.0 RC3 by pointing the hidden sentinel connector at its synced setting.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Added <code>wpai_preferred_text_models<\/code> filter to prepend Azure text-generation models to the AI plugin preferred list.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fixed PHP syntax compatibility with WordPress.org SVN linter (removed typed constants).<\/li>\n<li>Added PHPUnit tests with Brain Monkey.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added plugin icon for WordPress.org.<\/li>\n<li>Updated installation instructions for WordPress.org plugin directory.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Renamed plugin from \"Azure AI Foundry Connector\" to \"AI Provider for Azure AI Foundry\" to avoid confusion with official Microsoft products.<\/li>\n<li>Fixed GitHub Actions release workflow content-length mismatch error.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Renamed main plugin file to <code>ai-provider-for-azure-ai-foundry.php<\/code> to comply with WordPress plugin naming guidelines.<\/li>\n<li>Changed text domain to <code>ai-provider-for-azure-ai-foundry<\/code>.<\/li>\n<li>GitHub release artifact renamed to <code>ai-provider-for-azure-ai-foundry.zip<\/code>.<\/li>\n<li>Added internationalization (i18n) support with npm scripts for generating translation files.<\/li>\n<li>Added Norwegian Bokm\u00e5l (nb_NO) translation.<\/li>\n<li>Added <code>.distignore<\/code> file to exclude development files from distribution packages.<\/li>\n<li>Removed GitHub Updater support to comply with WordPress plugin naming guidelines.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Added embedding generation model \u2014 supports text-embedding-ada-002, text-embedding-3-small\/large deployments.<\/li>\n<li>Added text-to-speech model \u2014 supports tts-1 and tts-1-hd deployments.<\/li>\n<li>Auto-detection now resolves separate deployment names for text, image, embedding, and TTS models.<\/li>\n<li>Added audio input modality for text generation models (vision + audio support).<\/li>\n<li>Added topK supported option for text generation models.<\/li>\n<li>Added AI client conflict detection \u2014 warns when the \"AI Experiments\" plugin overrides the built-in AI client.<\/li>\n<li>Fixed TTS response parsing \u2014 uses raw body instead of JSON-decoded data to correctly capture audio binary output.<\/li>\n<\/ul>\n\n<h4>0.3.3<\/h4>\n\n<ul>\n<li>Fixed the Connect &amp; Detect flow so it saves the API key and endpoint before deployment detection.<\/li>\n<li>Fixed WordPress AI plugin compatibility so configured Azure AI Foundry credentials are recognized as a valid AI Connector.<\/li>\n<\/ul>\n\n<h4>0.3.2<\/h4>\n\n<ul>\n<li>Escaped output in exception message (WordPress Plugin Check compliance).<\/li>\n<li>Added direct file access protection to autoload.php and ConnectorSettings.php.<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Fixed connector description to list all supported capabilities instead of only text generation.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Simplified settings to API Key and Endpoint URL only \u2014 model names and capabilities are auto-detected.<\/li>\n<li>\"Connect &amp; Detect\" probes deployments via POST and saves detected configuration directly.<\/li>\n<li>Detects all deployed models (text and image), not just the first match.<\/li>\n<li>Added candidateCount support for title generation.<\/li>\n<li>Removed API Version and Model Name input fields.<\/li>\n<li>Removed capability checkboxes (auto-detected as read-only chips).<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Capabilities setting with 5 options: text generation, chat history, image generation, embedding generation, text-to-speech.<\/li>\n<li>\"Detect from Endpoint\" button auto-detects capabilities from Azure endpoint.<\/li>\n<li>Endpoint URL validation with inline error message.<\/li>\n<li>Capabilities displayed as read-only chips.<\/li>\n<li>Save Settings button shows loading spinner and success\/error feedback.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>AI Client provider for Azure AI Foundry Model Inference API.<\/li>\n<li>Text generation via OpenAI-compatible chat\/completions endpoint.<\/li>\n<li>Auto-detection of deployed model via \/info endpoint.<\/li>\n<li>Custom api-key header authentication.<\/li>\n<li>Connectors page UI with API key, endpoint, model name, and API version fields.<\/li>\n<li>Environment variable and wp-config.php constant fallbacks.<\/li>\n<li>API key masking in REST API responses.<\/li>\n<\/ul>","raw_excerpt":"Connect WordPress to Azure AI Foundry for text generation, image generation, embeddings, and more.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/295084","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=295084"}],"author":[{"embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pers"}],"wp:attachment":[{"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=295084"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=295084"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=295084"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=295084"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=295084"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-mx.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=295084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}