main
1import asyncio
2
3from openai.lib.azure import AzureOpenAI, AsyncAzureOpenAI, AzureADTokenProvider, AsyncAzureADTokenProvider
4
5scopes = "https://cognitiveservices.azure.com/.default"
6
7# May change in the future
8# https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#rest-api-versioning
9api_version = "2023-07-01-preview"
10
11# https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal#create-a-resource
12endpoint = "https://my-resource.openai.azure.com"
13
14deployment_name = "deployment-name" # e.g. gpt-35-instant
15
16
17def sync_main() -> None:
18 from azure.identity import DefaultAzureCredential, get_bearer_token_provider
19
20 token_provider: AzureADTokenProvider = get_bearer_token_provider(DefaultAzureCredential(), scopes)
21
22 client = AzureOpenAI(
23 api_version=api_version,
24 azure_endpoint=endpoint,
25 azure_ad_token_provider=token_provider,
26 )
27
28 completion = client.chat.completions.create(
29 model=deployment_name,
30 messages=[
31 {
32 "role": "user",
33 "content": "How do I output all files in a directory using Python?",
34 }
35 ],
36 )
37
38 print(completion.to_json())
39
40
41async def async_main() -> None:
42 from azure.identity.aio import DefaultAzureCredential, get_bearer_token_provider
43
44 token_provider: AsyncAzureADTokenProvider = get_bearer_token_provider(DefaultAzureCredential(), scopes)
45
46 client = AsyncAzureOpenAI(
47 api_version=api_version,
48 azure_endpoint=endpoint,
49 azure_ad_token_provider=token_provider,
50 )
51
52 completion = await client.chat.completions.create(
53 model=deployment_name,
54 messages=[
55 {
56 "role": "user",
57 "content": "How do I output all files in a directory using Python?",
58 }
59 ],
60 )
61
62 print(completion.to_json())
63
64
65sync_main()
66
67asyncio.run(async_main())