Atualmente a ver:
versão do portal Foundry (clássica) - Trocar para a versão do novo portal Foundry
O Microsoft Foundry Models permite-lhe aceder aos modelos mais poderosos dos principais fornecedores de modelos 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 alterar qualquer 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.
Importante
O Azure AI Inference beta SDK está obsoleto e será retirado a 26 de agosto de 2026. Mude para a API OpenAI/v1 geralmente disponível com um SDK OpenAI estável. Siga o guia de migração para mudar para OpenAI/v1, usando o SDK da sua linguagem de programação preferida.
Destacamentos
A Foundry utiliza implementações para disponibilizar modelos.
As implementações dão um nome a um modelo e definem configurações específicas. Pode aceder a um modelo usando o nome de implementação nos seus pedidos.
Uma implantação inclui:
- 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.
Pontos finais
Os serviços de fundição fornecem vários pontos de acesso dependendo do tipo de trabalho que pretende realizar.
Azure AI endpoint de inferência
O endpoint de inferência de IA Azure , geralmente da forma https://<resource-name>.services.ai.azure.com/models, permite-lhe usar um único endpoint com a mesma autenticação e esquema para gerar inferência para os modelos implementados no recurso. Todos os modelos Foundry suportam esta capacidade. Este endpoint segue a API de Inferência de Modelos de IA Azure, que suporta as seguintes modalidades:
- Incorporações de texto
- Embeddings de imagem
- Conclusões do chat
Roteamento
O endpoint de inferência encaminha os pedidos para uma implementação específica, associando o name parâmetro do pedido ao nome da implementação. Esta configuração significa que as implementações funcionam como um alias para um modelo em determinadas configurações. Esta flexibilidade permite-lhe implementar um modelo várias vezes no serviço, mas com configurações diferentes, se necessário.
Por exemplo, se criar uma implantação chamada Mistral-large, pode invocar essa implementação da seguinte forma:
Instala o pacote azure-ai-inference usando o teu gestor de pacotes, como o pip:
pip install azure-ai-inference
Depois, pode usar o pacote para consumir o modelo. O exemplo seguinte mostra como criar um cliente para consumir as conclusões do chat:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
client = ChatCompletionsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
)
Explore os nossos exemplos e leia a documentação de referência API para começar.
Instale o pacote @azure-rest/ai-inference usando o npm:
npm install @azure-rest/ai-inference
Depois, pode usar o pacote para consumir o modelo. O exemplo seguinte mostra como criar um cliente para consumir as conclusões do chat:
import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { AzureKeyCredential } from "@azure/core-auth";
const client = new ModelClient(
"https://<resource>.services.ai.azure.com/models",
new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);
Explore os nossos exemplos e leia a documentação de referência API para começar.
Instale a biblioteca de inferência de IA do Azure com o seguinte comando:
dotnet add package Azure.AI.Inference --prerelease
Importar os seguintes namespaces:
using Azure;
using Azure.Identity;
using Azure.AI.Inference;
Depois, pode usar o pacote para consumir o modelo. O exemplo seguinte mostra como criar um cliente para consumir as conclusões do chat:
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Explore os nossos exemplos e leia a documentação de referência da API para começar.
Adicione o pacote ao seu projeto:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-inference</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
Depois, pode usar o pacote para consumir o modelo. O exemplo seguinte mostra como criar um cliente para consumir as conclusões do chat:
ChatCompletionsClient client = new ChatCompletionsClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("https://<resource>.services.ai.azure.com/models")
.buildClient();
Explore os nossos exemplos e leia a documentação de referência API para começar.
Use a secção de referências para explorar o design da API e quais os parâmetros disponíveis. Por exemplo, a secção de referência para completamentos de chat detalha como usar a rota /chat/completions para gerar previsões baseadas em instruções no formato de chat. Note que o caminho /models está incluído até à raiz da URL:
Pedido
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
api-key: <api-key>
Content-Type: application/json
Para um modelo de chat, pode criar um pedido da seguinte forma:
from azure.ai.inference.models import SystemMessage, UserMessage
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="Explain Riemann's conjecture in 1 paragraph"),
],
model="mistral-large"
)
print(response.choices[0].message.content)
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "Explain Riemann's conjecture in 1 paragraph" },
];
var response = await client.path("/chat/completions").post({
body: {
messages: messages,
model: "mistral-large"
}
});
console.log(response.body.choices[0].message.content)
requestOptions = new ChatCompletionsOptions()
{
Messages = {
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("Explain Riemann's conjecture in 1 paragraph")
},
Model = "mistral-large"
};
response = client.Complete(requestOptions);
Console.WriteLine($"Response: {response.Value.Content}");
List<ChatRequestMessage> chatMessages = new ArrayList<>();
chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant"));
chatMessages.add(new ChatRequestUserMessage("Explain Riemann's conjecture in 1 paragraph"));
ChatCompletions chatCompletions = client.complete(new ChatCompletionsOptions(chatMessages));
for (ChatChoice choice : chatCompletions.getChoices()) {
ChatResponseMessage message = choice.getMessage();
System.out.println("Response:" + message.getContent());
}
Pedido
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
api-key: <api-key>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"model": "mistral-large"
}
Se especificar um nome de modelo que não corresponde a nenhuma implementação de modelo, recebe um erro de que o modelo não existe. Controla quais os modelos disponíveis para os utilizadores criando implementações de modelos. Para mais informações, consulte adicionar e configurar implementações de modelos.
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 podes aceder a modelos não-OpenAI por esta via.
Azure OpenAI endpoints, geralmente da forma https://<resource-name>.openai.azure.com, funcionam ao nível da implementação e cada implementação tem a sua própria URL associada. No entanto, pode usar o mesmo mecanismo de autenticação para utilizar as implementações. Para mais informações, consulte a página de referência para Azure OpenAI API.
Cada implementação tem um URL formado pela concatenação do URL base Azure OpenAI e da rota /deployments/<model-deployment-name>.
Instala o pacote openai usando o teu gestor de pacotes, como o pip:
pip install openai --upgrade
Depois, pode usar o pacote para consumir o modelo. O exemplo seguinte mostra como criar um cliente para consumir as conclusões do chat:
import os
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint = "https://<resource>.services.ai.azure.com"
api_key=os.getenv("AZURE_INFERENCE_CREDENTIAL"),
api_version="2024-10-21",
)
Instale o pacote openai usando o npm:
npm install openai
Depois, pode usar o pacote para consumir o modelo. O exemplo seguinte mostra como criar um cliente para consumir as conclusões do chat:
import { AzureKeyCredential } from "@azure/openai";
const endpoint = "https://<resource>.services.ai.azure.com";
const apiKey = new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL);
const apiVersion = "2024-10-21"
const client = new AzureOpenAI({
endpoint,
apiKey,
apiVersion,
"deepseek-v3-0324"
});
Aqui, deepseek-v3-0324 é o nome de uma implementação de modelo no recurso Microsoft Foundry.
Instale a biblioteca OpenAI com o seguinte comando:
dotnet add package Azure.AI.OpenAI --prerelease
Podes usar o pacote para consumir o modelo. O exemplo seguinte mostra como criar um cliente para consumir as conclusões do chat:
AzureOpenAIClient client = new(
new Uri("https://<resource>.services.ai.azure.com"),
new ApiKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Adicione o pacote ao seu projeto:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-openai</artifactId>
<version>1.0.0-beta.16</version>
</dependency>
Depois, pode usar o pacote para consumir o modelo. O exemplo seguinte mostra como criar um cliente para consumir as conclusões do chat:
OpenAIClient client = new OpenAIClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("https://<resource>.services.ai.azure.com")
.buildClient();
Use a secção de referências para explorar o design da API e quais os parâmetros disponíveis. Por exemplo, a secção de referência para conclusões de conversas detalha como usar a rota /chat/completions para gerar previsões baseadas em instruções no formato de chat.
Pedido
POST https://<resource>.services.ai.azure.com/openai/deployments/deepseek-v3-0324/chat/completions?api-version=2024-10-21
api-key: <api-key>
Content-Type: application/json
Aqui, deepseek-v3-0324 está o nome de uma implementação de modelo no recurso Foundry.
response = client.chat.completions.create(
model="deepseek-v3-0324", # Replace with your model deployment name.
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain Riemann's conjecture in 1 paragraph"}
]
)
print(response.model_dump_json(indent=2)
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "Explain Riemann's conjecture in 1 paragraph" },
];
const response = await client.chat.completions.create({ messages, model: "deepseek-v3-0324" });
console.log(response.choices[0].message.content)
ChatCompletion response = chatClient.CompleteChat(
[
new SystemChatMessage("You are a helpful assistant."),
new UserChatMessage("Explain Riemann's conjecture in 1 paragraph"),
]);
Console.WriteLine($"{response.Role}: {response.Content[0].Text}");
List<ChatRequestMessage> chatMessages = new ArrayList<>();
chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant"));
chatMessages.add(new ChatRequestUserMessage("Explain Riemann's conjecture in 1 paragraph"));
ChatCompletions chatCompletions = client.getChatCompletions("deepseek-v3-0324",
new ChatCompletionsOptions(chatMessages));
System.out.printf("Model ID=%s is created at %s.%n", chatCompletions.getId(), chatCompletions.getCreatedAt());
for (ChatChoice choice : chatCompletions.getChoices()) {
ChatResponseMessage message = choice.getMessage();
System.out.printf("Index: %d, Chat Role: %s.%n", choice.getIndex(), message.getRole());
System.out.println("Message:");
System.out.println(message.getContent());
}
Aqui, deepseek-v3-0324 é o nome de uma implementação de modelo no recurso Microsoft Foundry.
Pedido
POST https://<resource>.services.ai.azure.com/openai/deployments/deepseek-v3-0324/chat/completions?api-version=2024-10-21
api-key: <api-key>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
]
}
Aqui, deepseek-v3-0324 está o nome de uma implementação de modelo no recurso Foundry.
Para mais informações sobre como usar o endpoint Azure OpenAI, consulte Azure OpenAI na documentação de Foundry Models.
Autenticação sem chave
Os modelos implementados no Foundry Models no Foundry Tools suportam autorização sem chave através do 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 para o desenvolvimento moderno. Torna a autorização sem chave uma escolha forte para organizações que adotam 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 para consumir concluções de chat com o Microsoft Entra ID e fazer uma chamada de teste para o endpoint de conclusão de chat com 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.1 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,
)
completion = client.chat.completions.create(
model="DeepSeek-V3.1", # Required: your deployment name
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is Azure AI?"}
]
)
print(completion.choices[0].message.content)
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
Importar os seguintes namespaces:
using Azure.Identity;
using OpenAI;
using OpenAI.Chat;
using System.ClientModel.Primitives;
Depois, usa o pacote para consumir o modelo. O exemplo seguinte mostra como criar um cliente para consumir conclusões de chat com o Microsoft Entra ID, e depois realizar uma chamada de teste ao endpoint de conclusões de chat com a implementação do seu modelo.
Substitua <resource> pelo nome do seu recurso Foundry (encontre-o no portal Azure). Substitui gpt-4o-mini pelo nome real da tua implementação.
#pragma warning disable OPENAI001
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://ai.azure.com/.default"
);
ChatClient client = new(
model: "gpt-4o-mini", // Your deployment name
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions() {
Endpoint = new Uri("https://<resource>.openai.azure.com/openai/v1/")
}
);
ChatCompletion completion = client.CompleteChat(
new SystemChatMessage("You are a helpful assistant."),
new UserChatMessage("What is Azure AI?")
);
Console.WriteLine(completion.Content[0].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 .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 para consumir conclusões de chat com o Microsoft Entra ID, e depois realizar uma chamada de teste ao endpoint de conclusões de chat com 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.1 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 completion = await client.chat.completions.create({
model: "DeepSeek-V3.1", // Required: your deployment name
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "What is Azure AI?" }
]
});
console.log(completion.choices[0].message.content);
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 para consumir conclusões de chat com o Microsoft Entra ID, e depois realizar uma chamada de teste ao endpoint de conclusões de chat com a implementação do seu modelo.
Substitua <resource> pelo nome do seu recurso Foundry (encontre-o no portal Azure). Substitui DeepSeek-V3.1 pelo nome real da tua implementação.
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.models.chat.completions.*;
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();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.addSystemMessage("You are a helpful assistant.")
.addUserMessage("What is Azure AI?")
.model("DeepSeek-V3.1") // Required: your deployment name
.build();
ChatCompletion completion = client.chat().completions().create(params);
System.out.println(completion.choices().get(0).message().content());
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. Indique o token de autenticação no cabeçalho Authorization. Por exemplo, a secção de referência de conclusão do chat detalha como usar a /chat/completions rota para gerar previsões baseadas em instruções formatadas pelo chat. O caminho /models está incluído na raiz da URL:
Pedido
Substitui <resource> pelo nome do teu recurso Foundry (encontra-o no portal Azure ou correndo az cognitiveservices account list). Substitui MAI-DS-R1 pelo nome real da tua implementação.
O base_url aceitará 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/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "MAI-DS-R1",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Explain what the bitter lesson is?"
}
]
}'
Resposta
Se a autenticação for bem-sucedida, receberá uma 200 OK resposta com os resultados de conclusão do chat no corpo desta:
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1738368234,
"model": "MAI-DS-R1",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "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."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_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, execute o seguinte comando CLI do Azure:
az account get-access-token --resource https://cognitiveservices.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 Completação de Chat
Limitações
- Não podes usar o Azure OpenAI Batch com o endpoint Foundry Models. Tem de usar o URL dedicado de implementação conforme explicado na documentação de suporte da API Batch no Azure OpenAI.
- A API em tempo real não é suportada no endpoint de inferência. Use o URL dedicado de implementação.
Conteúdo relacionado