From 68aa9cdb1998303f7c2df832908eae585e78b45f Mon Sep 17 00:00:00 2001 From: Fernando de Oliveira <5161098+fedeoliv@users.noreply.github.com> Date: Wed, 9 Oct 2024 21:04:02 -0400 Subject: [PATCH 1/2] docs: async azure ad token provider example --- examples/azure_ad.py | 77 ++++++++++++++++++++++++++++++++------------ 1 file changed, 56 insertions(+), 21 deletions(-) diff --git a/examples/azure_ad.py b/examples/azure_ad.py index 1b0d81863d..09419eb902 100755 --- a/examples/azure_ad.py +++ b/examples/azure_ad.py @@ -1,30 +1,65 @@ -from azure.identity import DefaultAzureCredential, get_bearer_token_provider +import asyncio -from openai import AzureOpenAI +from openai.lib.azure import AzureOpenAI, AsyncAzureOpenAI, AzureADTokenProvider, AsyncAzureADTokenProvider -token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default") +scopes = "https://cognitiveservices.azure.com/.default" - -# may change in the future +# May change in the future # https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#rest-api-versioning api_version = "2023-07-01-preview" # https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal#create-a-resource endpoint = "https://my-resource.openai.azure.com" -client = AzureOpenAI( - api_version=api_version, - azure_endpoint=endpoint, - azure_ad_token_provider=token_provider, -) - -completion = client.chat.completions.create( - model="deployment-name", # e.g. gpt-35-instant - messages=[ - { - "role": "user", - "content": "How do I output all files in a directory using Python?", - }, - ], -) -print(completion.to_json()) +deployment_name = "deployment-name" # e.g. gpt-35-instant + +def sync_main() -> None: + from azure.identity import DefaultAzureCredential, get_bearer_token_provider + + token_provider: AzureADTokenProvider = get_bearer_token_provider(DefaultAzureCredential(), scopes) + + client = AzureOpenAI( + api_version=api_version, + azure_endpoint=endpoint, + azure_ad_token_provider=token_provider, + ) + + completion = client.chat.completions.create( + model=deployment_name, + messages=[ + { + "role": "user", + "content": "How do I output all files in a directory using Python?", + } + ] + ) + + print(completion.to_json()) + + +async def async_main() -> None: + from azure.identity.aio import DefaultAzureCredential, get_bearer_token_provider + + token_provider: AsyncAzureADTokenProvider = get_bearer_token_provider(DefaultAzureCredential(), scopes) + + client = AsyncAzureOpenAI( + api_version=api_version, + azure_endpoint=endpoint, + azure_ad_token_provider=token_provider, + ) + + completion = await client.chat.completions.create( + model=deployment_name, + messages=[ + { + "role": "user", + "content": "How do I output all files in a directory using Python?", + } + ] + ) + + print(completion.to_json()) + +sync_main() + +asyncio.run(async_main()) From aa17a45ef6c31492bb3e033b439f0553a1375f17 Mon Sep 17 00:00:00 2001 From: Fernando de Oliveira <5161098+fedeoliv@users.noreply.github.com> Date: Wed, 9 Oct 2024 21:08:31 -0400 Subject: [PATCH 2/2] fix: azure ad example formatting --- examples/azure_ad.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/azure_ad.py b/examples/azure_ad.py index 09419eb902..67e2f23713 100755 --- a/examples/azure_ad.py +++ b/examples/azure_ad.py @@ -13,6 +13,7 @@ deployment_name = "deployment-name" # e.g. gpt-35-instant + def sync_main() -> None: from azure.identity import DefaultAzureCredential, get_bearer_token_provider @@ -31,7 +32,7 @@ def sync_main() -> None: "role": "user", "content": "How do I output all files in a directory using Python?", } - ] + ], ) print(completion.to_json()) @@ -55,11 +56,12 @@ async def async_main() -> None: "role": "user", "content": "How do I output all files in a directory using Python?", } - ] + ], ) print(completion.to_json()) + sync_main() asyncio.run(async_main())