Overview
The Azure OpenAI provider connects core-ai to Azure OpenAI chat deployments. It uses the Azure OpenAI v1 Chat Completions API by default through the official OpenAI SDK.
Pass Azure OpenAI deployment names to chatModel(). The provider sends the deployment name as the Chat Completions model field.
Installation
npm install @core-ai/azure-openai
createAzureOpenAI()
Create an Azure OpenAI provider instance.
import { createAzureOpenAI } from '@core-ai/azure-openai';
const azure = createAzureOpenAI({
apiKey: process.env.AZURE_OPENAI_API_KEY,
endpoint: process.env.AZURE_OPENAI_ENDPOINT,
});
Options
Your Azure OpenAI API key.
Your Azure OpenAI resource endpoint, for example
https://my-resource.openai.azure.com. You can also pass a full v1 base URL
such as https://my-resource.openai.azure.com/openai/v1.
API surface to use. Defaults to v1. Set classic to use Azure’s classic
API surface.
Required when api is classic. Azure OpenAI API version, for example
2025-04-01-preview.
Classic mode only. Default Azure OpenAI deployment for the underlying SDK
client.
Classic mode only. Token provider for Microsoft Entra ID authentication.
Provide your own configured Azure OpenAI chat client.
Returns
AzureOpenAIProvider with method chatModel().
Authentication
Use an API key with the v1 API:
const azure = createAzureOpenAI({
apiKey: process.env.AZURE_OPENAI_API_KEY,
endpoint: process.env.AZURE_OPENAI_ENDPOINT,
});
Use the classic API by setting api: 'classic' and passing an API version:
const azure = createAzureOpenAI({
api: 'classic',
apiKey: process.env.AZURE_OPENAI_API_KEY,
endpoint: process.env.AZURE_OPENAI_ENDPOINT,
apiVersion: '2025-04-01-preview',
});
Classic mode can use Microsoft Entra ID by passing a token provider:
import {
DefaultAzureCredential,
getBearerTokenProvider,
} from '@azure/identity';
import { createAzureOpenAI } from '@core-ai/azure-openai';
const credential = new DefaultAzureCredential();
const azureADTokenProvider = getBearerTokenProvider(
credential,
'https://cognitiveservices.azure.com/.default'
);
const azure = createAzureOpenAI({
api: 'classic',
azureADTokenProvider,
endpoint: process.env.AZURE_OPENAI_ENDPOINT,
apiVersion: '2025-04-01-preview',
});
Model IDs
Use your Azure OpenAI deployment name as the model id:
const model = azure.chatModel('customer-support-gpt-5-mini');
If your deployment name is different from the base model name, pass the deployment name.
Examples
Basic chat
import { generate } from '@core-ai/core-ai';
import { createAzureOpenAI } from '@core-ai/azure-openai';
const azure = createAzureOpenAI({
apiKey: process.env.AZURE_OPENAI_API_KEY,
endpoint: process.env.AZURE_OPENAI_ENDPOINT,
});
const result = await generate({
model: azure.chatModel('gpt-5-mini-deployment'),
messages: [{ role: 'user', content: 'Hello!' }],
});
console.log(result.content);
Streaming
import { stream } from '@core-ai/core-ai';
import { createAzureOpenAI } from '@core-ai/azure-openai';
const azure = createAzureOpenAI({
apiKey: process.env.AZURE_OPENAI_API_KEY,
endpoint: process.env.AZURE_OPENAI_ENDPOINT,
});
const result = await stream({
model: azure.chatModel('gpt-5-mini-deployment'),
messages: [{ role: 'user', content: 'Count to five.' }],
});
for await (const chunk of result.textStream) {
process.stdout.write(chunk);
}
Provider-specific options
The provider follows the OpenAI Chat Completions API. Pass options via providerOptions.openai:
await generate({
model: azure.chatModel('gpt-5-mini-deployment'),
messages: [{ role: 'user', content: 'Hello!' }],
providerOptions: {
openai: {
seed: 42,
},
},
});
See the OpenAI compat provider docs for available Chat Completions options.
The Azure OpenAI provider supports chat models. Use @core-ai/openai for
OpenAI Responses API, embeddings, and image generation.