Azure OpenAI
Provider azure. Adapter sobre o Azure OpenAI Service — os mesmos modelos
da OpenAI (GPT-4o, GPT-4.1, o-series, embeddings…), só que hospedados no Azure,
com SLA, residência de dados e isolamento de rede da Microsoft. Como o dialeto é
o chat.completions da OpenAI, herda de _OpenAICompatible; muda só a
autenticação e o fato de o "modelo" ser o nome do deployment.
pip install "jangada-ai[openai]"provider=:"azure"- Variáveis de ambiente:
AZURE_OPENAI_API_KEY,AZURE_OPENAI_ENDPOINT(ex.:https://meu-recurso.openai.azure.com) eAZURE_OPENAI_API_VERSION(ex.:2024-10-21). - Modelo: o nome do deployment que você criou no portal do Azure (não o
nome bruto do modelo). Ex.: um deployment chamado
gpt-4o.
from jangada_ai import LLM
# usa AZURE_OPENAI_API_KEY / AZURE_OPENAI_ENDPOINT / AZURE_OPENAI_API_VERSION
llm = LLM("azure", "gpt-4o") # "gpt-4o" = nome do seu deployment
resp = llm.complete("Resuma {{ tema }} em uma frase.", tema="jangadas")
print(resp.text, resp.cost)Configuração via ambiente
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_ENDPOINT=https://meu-recurso.openai.azure.com
AZURE_OPENAI_API_VERSION=2024-10-21O endpoint e a api_version podem ir explícitos no construtor (via extra=)
quando você precisa apontar para outro recurso sem mexer no ambiente.
O que faz
Tudo o que o provider openai faz, já que compartilham a base
_OpenAICompatible:
- Texto, streaming e structured output (
parse) comchat.completions.parse. - Vision (
images=) e documentos (files=). - Transcrição de áudio e embeddings quando você tem deployments
correspondentes (ex.:
whisper,text-embedding-3-large).
Atenção: cada capacidade depende de existir um deployment daquele modelo no seu recurso Azure. Sem deployment de embeddings, não há
embed.
Quando escolher Azure OpenAI
Quando a empresa já é Azure e precisa de conformidade, residência de dados e
contrato corporativo com a Microsoft, mantendo os modelos da OpenAI. O código
é idêntico ao da OpenAI direta — troque LLM("openai", ...) por
LLM("azure", ...). Veja OpenAI e
Providers.
O que mudou na 1.9.0
profile_model=: omodelna Azure é o nome do deployment, então as regras por modelo (gpt-5 semtemperature,max_completion_tokens…) não tinham como casar. Informe o modelo base:LLM("azure", "meu-deploy", profile_model="gpt-5").- Responses API pela API v1: MCP remoto e tools nativas (web
search, file search, code interpreter, image generation) usam
<endpoint>/openai/v1/, semapi_version. O chat.completions segue comapi_version(padrão2024-10-21, sobrescrevível). - Chunks de filtro de conteúdo (sem
choices) não quebram mais o stream.