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?