- Notifications
You must be signed in to change notification settings - Fork 3k
/
Copy pathsample_embeddings_azure_openai.py
81 lines (67 loc) · 3.38 KB
/
sample_embeddings_azure_openai.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# ------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# ------------------------------------
"""
DESCRIPTION:
This sample demonstrates how to get text embeddings for a list of sentences
using a synchronous client, with an Azure OpenAI (AOAI) endpoint.
Two types of authentications are shown: key authentication and Entra ID
authentication.
USAGE:
1. Update `key_auth` below to `True` for key authentication, or `False` for
Entra ID authentication.
2. Update `api_version` (the AOAI REST API version) as needed.
See the "Data plane - inference" row in the table here for latest AOAI api-version:
https://aka.ms/azsdk/azure-ai-inference/azure-openai-api-versions
3. Set one or two environment variables, depending on your authentication method:
* AZURE_OPENAI_EMBEDDINGS_ENDPOINT - Your AOAI endpoint URL, with partial path, in the form
https://<your-unique-resouce-name>.openai.azure.com/openai/deployments/<your-deployment-name>
where `your-unique-resource-name` is your globally unique AOAI resource name,
and `your-deployment-name` is your AI Model deployment name.
For example: https://your-unique-host.openai.azure.com/openai/deployments/gpt-4o
* AZURE_OPENAI_EMBEDDINGS_KEY - Your model key. Keep it secret. This
is only required for key authentication.
4. Run the sample:
python sample_embeddings_azure_openai.py
"""
defsample_embeddings_azure_openai():
importos
fromazure.ai.inferenceimportEmbeddingsClient
try:
endpoint=os.environ["AZURE_OPENAI_EMBEDDINGS_ENDPOINT"]
exceptKeyError:
print("Missing environment variable 'AZURE_OPENAI_EMBEDDINGS_ENDPOINT'")
print("Set it before running this sample.")
exit()
key_auth=True# Set to True for key authentication, or False for Entra ID authentication.
ifkey_auth:
fromazure.core.credentialsimportAzureKeyCredential
try:
key=os.environ["AZURE_OPENAI_EMBEDDINGS_KEY"]
exceptKeyError:
print("Missing environment variable 'AZURE_OPENAI_EMBEDDINGS_KEY'")
print("Set it before running this sample.")
exit()
client=EmbeddingsClient(
endpoint=endpoint,
credential=AzureKeyCredential(key),
api_version="2024-06-01", # Azure OpenAI api-version. See https://aka.ms/azsdk/azure-ai-inference/azure-openai-api-versions
)
else: # Entra ID authentication
fromazure.identityimportDefaultAzureCredential
client=EmbeddingsClient(
endpoint=endpoint,
credential=DefaultAzureCredential(exclude_interactive_browser_credential=False),
credential_scopes=["https://cognitiveservices.azure.com/.default"],
api_version="2024-06-01", # Azure OpenAI api-version. See https://aka.ms/azsdk/azure-ai-inference/azure-openai-api-versions
)
response=client.embed(input=["first phrase", "second phrase", "third phrase"])
foriteminresponse.data:
length=len(item.embedding)
print(
f"data[{item.index}]: length={length}, [{item.embedding[0]}, {item.embedding[1]}, "
f"..., {item.embedding[length-2]}, {item.embedding[length-1]}]"
)
if__name__=="__main__":
sample_embeddings_azure_openai()