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.
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.
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.
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.
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