Complete Azure OpenAI Service Tutorial: Enterprise AI with GPT Models
Azure OpenAI Service provides REST API access to OpenAI's powerful language models including GPT-4, GPT-3.5-Turbo, and embedding models. It combines OpenAI's capabilities with Azure's enterprise security and compliance.
Why Azure OpenAI?
Key Benefits:- Enterprise security: Azure security and compliance
- Data privacy: Your data stays in your Azure subscription
- Regional availability: Deploy in multiple Azure regions
- Integration: Native Azure service integration
- Responsible AI: Built-in content filtering
- GPT-4 and GPT-4 Turbo
- GPT-3.5-Turbo
- DALL-E 3
- Embeddings (text-embedding-ada-002)
- Whisper
Prerequisites
pip install openai azure-identity
Azure CLI
az login
Setup
1. Create Azure OpenAI Resource
from azure.mgmt.cognitiveservices import CognitiveServicesManagementClient
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
client = CognitiveServicesManagementClient(
credential=credential,
subscriptionid="your-subscription-id"
)
Create resource
resource = client.accounts.begincreate(
resourcegroupname="my-resource-group",
accountname="my-openai-resource",
account={
"location": "eastus",
"kind": "OpenAI",
"sku": {"name": "S0"},
"properties": {}
}
).result()
print(f"Resource created: {resource.name}")
2. Deploy Model
# Deploy GPT-4 model
deployment = client.deployments.begincreateorupdate(
resourcegroupname="my-resource-group",
accountname="my-openai-resource",
deploymentname="gpt-4-deployment",
deployment={
"sku": {"name": "Standard", "capacity": 10},
"properties": {
"model": {
"format": "OpenAI",
"name": "gpt-4",
"version": "0613"
}
}
}
).result()
print(f"Deployment created: {deployment.name}")
3. Connect to Azure OpenAI
from openai import AzureOpenAI
client = AzureOpenAI(
apikey="your-api-key",
apiversion="2024-02-01",
azureendpoint="https://my-openai-resource.openai.azure.com"
)
Or use Azure Identity
from azure.identity import DefaultAzureCredential, getbearertokenprovider
tokenprovider = getbearertokenprovider(
DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default"
)
client = AzureOpenAI(
azureadtokenprovider=tokenprovider,
apiversion="2024-02-01",
azureendpoint="https://my-openai-resource.openai.azure.com"
)
Chat Completions
1. Basic Chat
response = client.chat.completions.create(
model="gpt-4-deployment",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is machine learning?"}
]
)
print(response.choices[0].message.content)
2. Multi-turn Conversation
class ChatBot:
def init(self, client, deploymentname, systemprompt):
self.client = client
self.deploymentname = deploymentname
self.messages = [{"role": "system", "content": systemprompt}]
def chat(self, usermessage):
self.messages.append({"role": "user", "content": usermessage})
response = self.client.chat.completions.create(
model=self.deploymentname,
messages=self.messages,
temperature=0.7,
maxtokens=1000
)
assistantmessage = response.choices[0].message.content
self.messages.append({"role": "assistant", "content": assistantmessage})
return assistantmessage