Skip to content

Conversation

@TheRealNeil
Copy link
Contributor

This pull request adds first-class support for Azure OpenAI as a provider in the codebase, including configuration, authentication, and endpoint handling. It introduces a dedicated provider class for Azure OpenAI, options for Azure-specific configuration, and ensures compatibility with various naming conventions. The changes also include new VCR test fixtures to verify integration with Azure OpenAI endpoints.

Azure OpenAI Provider Implementation:

  • Added AzureProvider class in lib/active_agent/providers/azure_provider.rb, which extends the OpenAI provider to support Azure-specific authentication (using the api-key header), endpoint structure, and required query parameters like api-version. Also introduces an AzureClient subclass to handle these specifics.
  • Added Azure-specific options class in lib/active_agent/providers/azure/options.rb, supporting configuration of azure_resource, deployment_id, and api_version, with validation and sensible defaults.
  • Added type and dependency requirements for Azure provider in lib/active_agent/providers/azure/_types.rb.

Provider Aliasing and Naming Consistency:

  • Updated the provider service name remapping in lib/active_agent/concerns/provider.rb to recognize multiple Azure OpenAI naming variants (e.g., AzureOpenai, AzureopenaiAzureOpenAI).
  • Added alias files (azure_open_ai_provider.rb, azure_openai_provider.rb, azureopenai_provider.rb) to ensure all common naming conventions load the Azure provider. [1] [2] [3]

Testing and Integration:

  • Added new VCR cassette fixtures for various Azure OpenAI chat completion scenarios (single instruction, multiple instructions, developer message, system with user), verifying correct API interactions and responses. [1] [2] [3] [4]

@TonsOfFun TonsOfFun merged commit ee41d3a into activeagents:main Feb 1, 2026
8 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants