Connecting to Azure OpenAI to get embeddings
Connecting to Azure OpenAI to get embeddings
First set up:
# Load config values
with open(r'config.json') as config_file:
config_details = json.load(config_file)
# Setting up the deployment name
deployment_name = config_details['EMBEDDINGS_MODEL']
# This is set to `azure`
openai.api_type = "azure"
# The API key for your Azure OpenAI resource.
openai.api_key = os.getenv("OPENAI_API_KEY")
# The base URL for your Azure OpenAI resource. e.g. "https://<your resource name>.openai.azure.com"
openai.api_base = config_details['OPENAI_API_BASE']
# Currently OPENAI API have the following versions available: 2022-12-01
openai.api_version = config_details['OPENAI_API_VERSION']
Then connect and get embeddings
deployment_name
in the example below should in most cases be text-embedding-ada-002
try:
# Get embeddings
embeddings = openai.Embedding.create(engine=deployment_name, input="The food was delicious and the waiter...")["data"][0]["embedding"]
# Number of embeddings
len(embeddings)
# Print embeddings
print(embeddings[:20])
except openai.error.APIError as e:
# Handle API error here, e.g. retry or log
print(f"OpenAI API returned an API Error: {e}")
except openai.error.AuthenticationError as e:
# Handle Authentication error here, e.g. invalid API key
print(f"OpenAI API returned an Authentication Error: {e}")
except openai.error.APIConnectionError as e:
# Handle connection error here
print(f"Failed to connect to OpenAI API: {e}")
except openai.error.InvalidRequestError as e:
# Handle connection error here
print(f"Invalid Request Error: {e}")
except openai.error.RateLimitError as e:
# Handle rate limit error
print(f"OpenAI API request exceeded rate limit: {e}")
except openai.error.ServiceUnavailableError as e:
# Handle Service Unavailable error
print(f"Service Unavailable: {e}")
except openai.error.Timeout as e:
# Handle request timeout
print(f"Request timed out: {e}")