Source: Oai 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 OpenAI
from dotenv import load_dotenv
import numpy as np
load_dotenv()
API_KEY = os.getenv("OPENAI_API_KEY","")
assert API_KEY, "ERROR: OpenAI Key is missing"
client = OpenAI(
api_key=API_KEY
)
# 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 = 'text-embedding-ada-002'
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))
Disclaimer: This document has been translated using the AI translation service Co-op Translator. While we strive for accuracy, please be aware that automated translations may contain errors or inaccuracies. The original document in its native language should be considered the authoritative source. For critical information, professional human translation is recommended. We are not liable for any misunderstandings or misinterpretations arising from the use of this translation.