Estimated setup time: 20 minutes

Prerequisites

This tutorial assumes you have an Azure account and have installed the Azure CLI app. Follow this tutorial to install the Azure CLI app- here

Your Azure account must have a Cognitive Services Contributor role assigned in order for you to agree to the responsible AI terms and create a resource- Learn More

Provision OpenAI resources on Azure

This tutorial largely follows the steps outlined here

  1. Login to Azure
az login
  1. Create a resource group for Mayil
az group create --name mayil-rg --location westus

Skip this step if already created during Kubernetes setup.

  1. Create a Congnitiveservices account specific to Mayil
az cognitiveservices account create --kind OpenAI --location eastus --name mayil-cs-eastus --resource-group mayil-rg --sku s0

We have selected the region based on the availability of OpenAI models. See here

  1. Deploy required models for Mayil

GPT40

az cognitiveservices account deployment create \
--name mayil-cs-eastus \
--resource-group  mayil-rg \
--deployment-name GPT4O \
--model-name gpt-4o \
--model-version "2024-05-13"  \
--model-format OpenAI

Text-embedding-3-large

az cognitiveservices account deployment create \
--name mayil-cs-eastus \
--resource-group  mayil-rg \
--deployment-name embedding \
--model-name text-embedding-3-large \
--model-version "1"  \
--model-format OpenAI

GPT3

x

It is critical to set up all the listed models for a fully functioning Mayil. Pricing is based on usage and the number of instances spun up has no effect.

Configuring Mayil’s backend API

Various details generated during the setup process above will need to be copied and provided to Mayil’s backend API as configuration details. Update the JSON block below with all the procured information.

    "ENDPOINTS": [
      {
        "deployment": "GPT4O",
        "deployment_type": "azure_oai",
        "endpoint": "https://mayil-cs-eastus.openai.azure.com/",
        "key": "GPT4O",
        "token": "INSERT TOKEN"
      },
      {
        "deployment": "embedding",
        "deployment_type": "azure_oai",
        "endpoint": "https://mayil-cs-eastus.openai.azure.com/",
        "key": "EMBEDDING",
        "token": "<INSERT TOKEN>"
      },
      {
        "deployment": "35Turbo1106",
        "deployment_type": "azure_oai",
        "endpoint": "https://mayil-ai.openai.azure.com/",
        "key": "GPT3",
        "token": "<INSERT TOKEN>"
      }
    ],

If the variable names provided in the commands in the previous step were used as is, few modifications need to be made to the config.

  1. deployment - Enter the deployment-name used while creating the service in Azure
  2. endpoint - A link to the resource group we created - https://<resource_group_name>.openai.azure.com/
  3. deployment_type is always “azure_oai” for Azure OpenAI endpoints
  4. key - AN identifier used by Mayil. Can be one of [“GPT4O”, “EMBEDDING”, “GPT3”]
  5. token - Procure a bearer token by running this command-
az cognitiveservices account keys list --name mayil-cs-eastus --resource-group mayil-rg

After populating the config details, add this config block to ENDPOINTS as outlined in the Configuration page.

Access Control

It is critical to manage access to these endpoints from a privacy and security point of view. It is strongly recommended that these endpoints be configured to only be accessible from a company-only subnet. Details on how to do this is documented here