Source: Aoai Assignment · GitHub · microsoft/generative-ai-for-beginners Authors: Microsoft (microsoft) Licence: MIT — https://spdx.org/licenses/MIT.html
%pip install openai python-dotenv
import os
from openai import AzureOpenAI
import numpy as np
from dotenv import load_dotenv
load_dotenv()
client = AzureOpenAI(
api_key = os.getenv("AZURE_OPENAI_API_KEY"),
api_version = "2024-10-21",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
# Dependencies for embeddings_utils
%pip install matplotlib plotly scikit-learn pandas
def cosine_similarity(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
text = 'the quick brown fox jumped over the lazy dog'
model = os.getenv("AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT", "").strip()
assert model, "AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT environment variable must be set and non-empty"
client.embeddings.create(input = [text], model=model).data[0].embedding
# compare several words
automobile_embedding = client.embeddings.create(input = 'automobile', model=model).data[0].embedding
vehicle_embedding = client.embeddings.create(input = 'vehicle', model=model).data[0].embedding
dinosaur_embedding = client.embeddings.create(input = 'dinosaur', model=model).data[0].embedding
stick_embedding = client.embeddings.create(input = 'stick', model=model).data[0].embedding
# comparing cosine similarity, automobiles vs automobiles should be 1.0, i.e exactly the same, while automobiles vs dinosaurs should be between 0 and 1, i.e. not the same
print(cosine_similarity(automobile_embedding, automobile_embedding))
print(cosine_similarity(automobile_embedding, vehicle_embedding))
print(cosine_similarity(automobile_embedding, dinosaur_embedding))
print(cosine_similarity(automobile_embedding, stick_embedding))