In order to be able to use OpenAI models on Azure, they first need to be deployed. Please refer to Azure OpenAI documentation on how to deploy a model on Azure.

Once these models are deployed, using Azure OpenAI is easy to do. Just follow these steps -

  • Set the following environment variables -
AZURE_OPENAI_API_INSTANCE_NAME=<YOUR_INSTANCE_NAME>
AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME=<YOUR_EMBEDDINGS_DEPLOYMENT_NAME>
AZURE_OPENAI_API_VERSION="2024-02-01" #or a newer version
AZURE_OPENAI_API_KEY=<YOUR_KEY>

Install OpenAI addon

npm install @llm-tools/embedjs-openai

Usage

import { RAGApplicationBuilder } from '@llm-tools/embedjs';
import { AzureOpenAiEmbeddings } from '@llm-tools/embedjs-openai';
import { HNSWDb } from '@llm-tools/embedjs-hnswlib';

const app = await new RAGApplicationBuilder()
.setEmbeddingModel(new AzureOpenAiEmbeddings({
    model: 'text-embedding-3-large'
}))

The following embedding models do not require you to pass a dimension parameter -

  • text-embedding-3-large
  • text-embedding-3-small
  • text-embedding-ada-002

All other models require you provide one.

To use Azure Managed Identity, you can use something similar to the following code snippet -

import {
  DefaultAzureCredential,
  getBearerTokenProvider,
} from "@azure/identity";
import { AzureOpenAiEmbeddings } from '@llm-tools/embedjs-openai';

const credentials = new DefaultAzureCredential();
const azureADTokenProvider = getBearerTokenProvider(
  credentials,
  "https://cognitiveservices.azure.com/.default"
);

const app = await new RAGApplicationBuilder()
.setEmbeddingModel(new AzureOpenAiEmbeddings({
    azureADTokenProvider,
    azureOpenAIApiInstanceName: "<your_instance_name>",
    azureOpenAIApiEmbeddingsDeploymentName: "<your_embeddings_deployment_name>",
    azureOpenAIApiVersion: "<api_version>",
}))

Was this page helpful?