02-04-06 — Azure OpenAI Service
TL;DR
Azure OpenAI Service é o acesso enterprise aos modelos da OpenAI (GPT-4o, o1, o3) com as garantias da Microsoft: dados não saem para treino, networking privado via VNet, content filtering configurável, SLA de 99.9% e contratos Enterprise Agreement. Para consultoras .NET com clientes em setores regulados, é o caminho padrão — mesma API da OpenAI, zero mudança de código.
O que é e por que existe
A OpenAI tem ótimos modelos mas infraestrutura SaaS pública: seus dados passam pelos servidores deles, sujeitos à política de privacidade deles. Para clientes corporativos com dados sensíveis, isso é bloqueador.
Azure OpenAI Service resolve isso: Microsoft hospeda os mesmos modelos dentro da infraestrutura Azure — com todas as garantias enterprise que a Microsoft já oferece para outros serviços.
Compliance e segurança enterprise
Data residency
Você escolhe a região Azure onde o modelo fica: Brazil South, East US, West Europe, etc. Dados processados ficam nessa região — importante para LGPD e regulações setoriais.
Private Endpoint / VNet Integration
Configure o Azure OpenAI como recurso privado dentro de uma VNet. Suas aplicações acessam via IP privado — sem tráfego passando pela internet pública. Combine com Azure Private DNS Zone para resolução interna.
Managed Identity
Nada de chaves de API hardcoded. Use Managed Identity para que sua aplicação Azure (App Service, AKS, Azure Function) se autentique automaticamente via AAD, sem segredos.
// C# com Managed Identity — sem chave de API no código
using Azure.AI.OpenAI;
using Azure.Identity;
// DefaultAzureCredential usa Managed Identity em produção,
// az login em desenvolvimento local
var client = new AzureOpenAIClient(
new Uri("https://SEU-RECURSO.openai.azure.com/"),
new DefaultAzureCredential()
);
var chatClient = client.GetChatClient("gpt-4o"); // nome do deployment
var response = await chatClient.CompleteChatAsync(
new[]
{
new SystemChatMessage("Você é um assistente especializado em .NET."),
new UserChatMessage("Explique async/await com exemplo prático.")
},
new ChatCompletionOptions
{
Temperature = 0.7f,
MaxOutputTokenCount = 800
}
);
Console.WriteLine(response.Value.Content[0].Text);
Content Filtering
Filtros configuráveis por deployment para 4 categorias: ódio, violência, automutilação e conteúdo sexual. Cada categoria tem threshold independente (low/medium/high). Você pode criar políticas customizadas para seu domínio.
Modelos disponíveis (2025)
| Modelo | Uso principal | Contexto |
|---|---|---|
| GPT-4o | Multimodal, uso geral | 128K tokens |
| GPT-4o mini | Custo/benefício | 128K tokens |
| o1 / o1-mini | Raciocínio complexo | 200K tokens |
| o3-mini | Raciocínio eficiente | 200K tokens |
| text-embedding-3-large | Embeddings para RAG | 8K tokens |
| DALL-E 3 | Geração de imagens | — |
| Whisper | Transcrição de áudio | — |
| Phi-4 | SLM edge/local | 16K tokens |
PTU vs Token-based pricing
Azure OpenAI tem dois modelos de cobrança radicalmente diferentes:
Pay-as-you-go (token-based)
- Paga por token consumido (input + output separados)
- Sem compromisso
- Sujeito a rate limits compartilhados (TPM — tokens per minute)
- Melhor para: protótipos, workloads variáveis, início de projeto
PTU — Provisioned Throughput Units
- Reserva de capacidade dedicada (como RI para VMs)
- Throughput garantido independente de carga na plataforma
- Preço fixo mensal por PTU (varia por modelo e região)
- Desconto significativo vs pay-as-you-go em alto volume
- Melhor para: produção com volume previsível e alto, SLA crítico
Exemplo completo: chat com streaming em Python
import os
from openai import AzureOpenAI
# Configure via variáveis de ambiente — nunca hardcode
client = AzureOpenAI(
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_key=os.environ["AZURE_OPENAI_API_KEY"],
api_version="2024-12-01-preview"
)
# Com streaming — melhor UX para interfaces de chat
stream = client.chat.completions.create(
model="gpt-4o", # nome do deployment no seu recurso
messages=[
{"role": "system", "content": "Você é um arquiteto de software .NET sênior."},
{"role": "user", "content": "Quais são as principais mudanças do .NET 9 para performance?"}
],
temperature=0.5,
max_tokens=1000,
stream=True
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
print() # nova linha ao final
Estrutura recomendada de deployment
Como isso se conecta
- → 02-04-01 — GPT (OpenAI): mesmos modelos, wrapper enterprise do Azure
- → 02-04-05 — Phi family: também disponível via Azure AI Foundry
- → 02-05-01 — Parâmetros de inferência: temperature, top_p funcionam igual na API Azure
- → Módulo 04 — Semantic Kernel: SDK .NET que integra nativamente com Azure OpenAI
- → Módulo 05 — RAG: Azure AI Search + Azure OpenAI Embeddings é o stack padrão Microsoft