O Microsoft Foundry Models oferece acesso a uma grande variedade de modelos de vários fornecedores através de um único endpoint e conjunto de credenciais. Esta funcionalidade permite-lhe alternar entre modelos e usá-los na sua aplicação sem fazer alterações de código.
Este artigo explica como os serviços Foundry organizam os modelos e como usar o endpoint de inferência para aceder a eles.
Pré-requisitos
Destacamentos
O Foundry utiliza implementações como pseudónimos para aceder aos modelos. Uma implementação dá a um modelo um nome e um conjunto de configurações. Pode aceder a um modelo utilizando o nome da implementação nos seus pedidos.
Uma implementação define:
- Um nome de modelo
- Uma versão modelo
- Um tipo de aprovisionamento ou capacidade1
- Uma configuração de filtragemde conteúdos 1
- Uma configuração de limitação de taxa1
1 Estas configurações podem mudar consoante o modelo selecionado.
Um recurso Foundry pode ter muitas implementações modelo. Só se paga pela inferência realizada em implementações de modelos. As implementações são recursos do Azure, por isso estão sujeitas às políticas do Azure.
Para mais informações sobre a criação de implementações, consulte Adicionar e configurar implementações de modelo.
Azure OpenAI ponto de inferência
A API Azure OpenAI expõe todas as capacidades dos modelos OpenAI e suporta mais funcionalidades como assistentes, threads, ficheiros e inferência em lote. Também pode usá-lo para aceder a modelos que não sejam OpenAI.
Os endpoints do Azure OpenAI são formatados como https://<resource-name>.openai.azure.com. Os endpoints correspondem às implementações, e cada deployment tem a sua própria URL associada. No entanto, pode usar o mesmo mecanismo de autenticação para consumir mais do que uma implementação. Para mais informações, consulte a página de referência para Azure OpenAI API.
Os URLs de implementação são formados pela concatenação do URL base do Azure OpenAI e da rota /deployments/<model-deployment-name>. Quando utiliza a API OpenAI v1, chame a rota /openai/v1/ na URL de base, https://<resource-name>.openai.azure.com/openai/v1/, e passe o nome da implementação no campo model do pedido. A rota /openai/v1/ usa versionamento implícito, pelo que não é necessário passar um api-version.
Os exemplos seguintes utilizam a API Responses, que suporta as mais recentes funcionalidades de inferência.
Note
A API Responses funciona com modelos OpenAI do Azure e com modelos Foundry vendidos pela Azure que a suportam, como os modelos DeepSeek, Llama e Grok. Se uma implementação não suportar a API Responses, o pedido devolve 400 Model not supported. Nesse caso, use a API Chat Completions chamando client.chat.completions.create em vez disso.
Utilizar autenticação por chave API
Pode autenticar pedidos de inferência com uma chave API do seu recurso Foundry. As chaves de API são rápidas de configurar, mas concedem acesso total ao recurso, são difíceis de definir para utilizadores ou ações específicas, e requerem rotação manual para se manterem seguras. Para cargas de trabalho de produção, utilize autenticação sem chave com Microsoft Entra ID em vez disso.
No exemplo seguinte, deepseek-v3-0324 é o nome de uma implementação de modelo no recurso Microsoft Foundry. Substitui-o pelo teu próprio nome de implementação e guarda a tua chave API na AZURE_INFERENCE_CREDENTIAL variável de ambiente.
Instale o openai pacote usando pip:
pip install openai --upgrade
Cria um cliente que aponte para o endpoint Azure OpenAI v1 e depois gera uma resposta. A rota /openai/v1/ usa versionamento implícito, pelo que não é necessário passar um api-version. Introduza o nome da sua implementação no campo model:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://<resource>.openai.azure.com/openai/v1/",
api_key=os.environ["AZURE_INFERENCE_CREDENTIAL"],
)
response = client.responses.create(
model="deepseek-v3-0324", # Replace with your model deployment name.
input="Explain the Riemann hypothesis in one paragraph.",
)
print(response.output_text)
Instale o openai pacote usando npm:
npm install openai
Crie um cliente que aponte para o endpoint Azure OpenAI v1 e depois gere uma resposta:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://<resource>.openai.azure.com/openai/v1/",
apiKey: process.env.AZURE_INFERENCE_CREDENTIAL,
});
const response = await client.responses.create({
model: "deepseek-v3-0324", // Replace with your model deployment name.
input: "Explain the Riemann hypothesis in one paragraph.",
});
console.log(response.output_text);
Instale a biblioteca OpenAI:
dotnet add package OpenAI
Crie um cliente que aponte para o endpoint Azure OpenAI v1 e depois gere uma resposta:
using System.ClientModel;
using OpenAI;
using OpenAI.Responses;
OpenAIClient client = new(
new ApiKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL")),
new OpenAIClientOptions
{
Endpoint = new Uri("https://<resource>.openai.azure.com/openai/v1/")
});
OpenAIResponseClient responseClient = client.GetResponsesClient("deepseek-v3-0324");
OpenAIResponse response = responseClient.CreateResponse(
"Explain the Riemann hypothesis in one paragraph.");
Console.WriteLine(response.GetOutputText());
Adicione o SDK Java da OpenAI ao seu projeto. Consulta o repositório Java da OpenAI para a versão mais recente.
Crie um cliente que aponte para o endpoint Azure OpenAI v1 e depois gere uma resposta:
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://<resource>.openai.azure.com/openai/v1/")
.apiKey(System.getenv("AZURE_INFERENCE_CREDENTIAL"))
.build();
Response response = client.responses().create(
ResponseCreateParams.builder()
.model("deepseek-v3-0324") // Replace with your model deployment name.
.input("Explain the Riemann hypothesis in one paragraph.")
.build());
// The Responses API has no single output-text accessor; concatenate the output items.
response.output().stream()
.flatMap(item -> item.message().stream())
.flatMap(message -> message.content().stream())
.flatMap(content -> content.outputText().stream())
.forEach(outputText -> System.out.println(outputText.text()));
Envia pedidos diretamente para a rota v1. O /openai/v1/ caminho usa versionamento implícito, por isso não se inclui um api-version parâmetro de consulta. Passe a sua chave no Authorization cabeçalho como ficha de portador:
curl -X POST https://<resource>.openai.azure.com/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_INFERENCE_CREDENTIAL" \
-d '{
"model": "deepseek-v3-0324",
"input": "Explain the Riemann hypothesis in one paragraph."
}'
Para mais informações sobre como usar o endpoint Azure OpenAI, consulte o suporte à linguagem Azure OpenAI SDK.
Use autenticação sem chave
Os modelos Foundry implementados suportam autorização sem chave com o Microsoft Entra ID. A autorização sem chave melhora a segurança, simplifica a experiência do utilizador, reduz a complexidade operacional e oferece suporte robusto de conformidade. Use autorização sem chave se a sua organização utiliza soluções de gestão de identidade seguras e escaláveis.
Para usar autenticação sem chave, configure o seu recurso e conceda acesso aos utilizadores para realizar inferências. Depois de configurar o recurso e conceder acesso, autentique da seguinte forma:
Instale o SDK OpenAI usando um gestor de pacotes como pip:
pip install openai
Para autenticação do Microsoft Entra ID, instale também:
pip install azure-identity
Use a embalagem para consumir o modelo. O exemplo seguinte mostra como criar um cliente e fazer uma chamada de teste para a API Responses usando o Microsoft Entra ID e a implementação do seu modelo.
Substitua <resource> pelo nome do seu recurso Foundry. Encontre-o no portal Azure ou executando az cognitiveservices account list. Substitui deepseek-v3-0324 pelo nome real da tua implementação.
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(),
"https://ai.azure.com/.default"
)
client = OpenAI(
base_url="https://<resource>.openai.azure.com/openai/v1/",
api_key=token_provider,
)
response = client.responses.create(
model="deepseek-v3-0324", # Replace with your model deployment name.
input="What is Azure AI?",
)
print(response.output_text)
Produção esperada
Azure AI is a comprehensive suite of artificial intelligence services and tools from Microsoft that enables developers to build intelligent applications. It includes services for natural language processing, computer vision, speech recognition, and machine learning capabilities.
Referência: OpenAI Python SDK e DefaultAzureCredential class.
Instale o SDK OpenAI:
dotnet add package OpenAI
Para autenticação Microsoft Entra ID, instale também o pacote Azure.Identity:
dotnet add package Azure.Identity
Depois, usa o pacote para consumir o modelo. O exemplo seguinte mostra como criar um cliente e fazer uma chamada de teste para a API Responses usando o Microsoft Entra ID e a implementação do seu modelo.
Substitua <resource> pelo nome do seu recurso Foundry (encontre-o no portal Azure). Substitui deepseek-v3-0324 pelo nome real da tua implementação.
using Azure.Identity;
using OpenAI;
using OpenAI.Responses;
using System.ClientModel.Primitives;
#pragma warning disable OPENAI001
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://ai.azure.com/.default"
);
OpenAIResponseClient client = new(
model: "deepseek-v3-0324", // Replace with your model deployment name.
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://<resource>.openai.azure.com/openai/v1/")
}
);
OpenAIResponse response = client.CreateResponse("What is Azure AI?");
Console.WriteLine(response.GetOutputText());
Produção esperada:
Azure AI is a comprehensive suite of artificial intelligence services and tools from Microsoft that enables developers to build intelligent applications. It includes services for natural language processing, computer vision, speech recognition, and machine learning capabilities.
Referência: OpenAI .NET SDK e DefaultAzureCredential class.
Instale o SDK OpenAI com npm:
npm install openai
Para autenticação do Microsoft Entra ID, instale também:
npm install @azure/identity
Depois, usa o pacote para consumir o modelo. O exemplo seguinte mostra como criar um cliente e fazer uma chamada de teste para a API Responses usando o Microsoft Entra ID e a implementação do seu modelo.
Substitui <resource> pelo nome do teu recurso Foundry (encontra-o no portal Azure ou correndo az cognitiveservices account list). Substitui deepseek-v3-0324 pelo nome real da tua implementação.
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import { OpenAI } from "openai";
const tokenProvider = getBearerTokenProvider(
new DefaultAzureCredential(),
'https://ai.azure.com/.default'
);
const client = new OpenAI({
baseURL: "https://<resource>.openai.azure.com/openai/v1/",
apiKey: tokenProvider
});
const response = await client.responses.create({
model: "deepseek-v3-0324", // Replace with your model deployment name.
input: "What is Azure AI?"
});
console.log(response.output_text);
Produção esperada:
Azure AI is a comprehensive suite of artificial intelligence services and tools from Microsoft that enables developers to build intelligent applications. It includes services for natural language processing, computer vision, speech recognition, and machine learning capabilities.
Referência: OpenAI Node.jsSDK e classe DefaultAzureCredential.
Adicione o SDK OpenAI ao seu projeto. Consulte o repositório Java GitHub OpenAI para a versão mais recente e as instruções de instalação.
Para autenticação do Microsoft Entra ID, adicione também:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.0</version>
</dependency>
Depois, usa o pacote para consumir o modelo. O exemplo seguinte mostra como criar um cliente e fazer uma chamada de teste para a API Responses usando o Microsoft Entra ID e a implementação do seu modelo.
Substitua <resource> pelo nome do seu recurso Foundry (encontre-o no portal Azure). Substitui deepseek-v3-0324 pelo nome real da tua implementação.
import com.azure.identity.AuthenticationUtil;
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.credential.BearerTokenCredential;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
DefaultAzureCredential tokenCredential = new DefaultAzureCredentialBuilder().build();
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://<resource>.openai.azure.com/openai/v1/")
.credential(BearerTokenCredential.create(
AuthenticationUtil.getBearerTokenSupplier(
tokenCredential,
"https://ai.azure.com/.default"
)
))
.build();
ResponseCreateParams params = ResponseCreateParams.builder()
.model("deepseek-v3-0324") // Replace with your model deployment name.
.input("What is Azure AI?")
.build();
Response response = client.responses().create(params);
// The Responses API has no single output-text accessor; concatenate the output items.
response.output().stream()
.flatMap(item -> item.message().stream())
.flatMap(message -> message.content().stream())
.flatMap(content -> content.outputText().stream())
.forEach(outputText -> System.out.println(outputText.text()));
Produção esperada:
Azure AI is a comprehensive suite of artificial intelligence services and tools from Microsoft that enables developers to build intelligent applications. It includes services for natural language processing, computer vision, speech recognition, and machine learning capabilities.
Referência: OpenAI Java SDK e DefaultAzureCredential class.
Explore o design da API na secção de referência para ver quais os parâmetros disponíveis. Insira o token de autenticação (portador) no Authorization cabeçalho.
Por exemplo, a secção de referência da API de Respostas detalha como usar a /responses rota para gerar previsões. O caminho /openai/v1/ está incluído na raiz do URL:
Pedido
Substitui <resource> pelo nome do teu recurso Foundry (encontra-o no portal Azure ou correndo az cognitiveservices account list). Substitui deepseek-v3-0324 pelo nome real da tua implementação.
A URL de base aceita os formatos https://<resource>.openai.azure.com/openai/v1/ e https://<resource>.services.ai.azure.com/openai/v1/.
curl -X POST https://<resource>.openai.azure.com/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "deepseek-v3-0324",
"input": "Explain what the bitter lesson is?"
}'
Resposta
Se a autenticação for bem-sucedida, recebe uma resposta 200 OK com os resultados da resposta no respetivo corpo:
{
"id": "resp_...",
"object": "response",
"created_at": 1738368234,
"model": "deepseek-v3-0324",
"status": "completed",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "The bitter lesson refers to a key insight in AI research that emphasizes the importance of general-purpose learning methods that leverage computation, rather than human-designed domain-specific approaches. It suggests that methods which scale with increased computation tend to be more effective in the long run."
}
]
}
],
"usage": {
"input_tokens": 28,
"output_tokens": 52,
"total_tokens": 80
}
}
Os tokens devem ser emitidos com scope https://ai.azure.com/.default.
Para efeitos de teste, a forma mais fácil de obter um token válido para a sua conta de utilizador é usar a CLI do Azure. Numa consola, inicie sessão e solicite um token executando os seguintes comandos CLI do Azure:
az login
az account get-access-token --resource https://ai.azure.com --query "accessToken" --output tsv
Este comando gera um token de acesso que podes guardar na $AZURE_OPENAI_AUTH_TOKEN variável de ambiente.
Referência: API de Respostas
Conteúdo relacionado