Microsoft Foundry Models permet d’accéder à un large éventail de modèles de nombreux fournisseurs via un point de terminaison unique et un ensemble d’informations d’identification. Cette fonctionnalité vous permet de basculer entre les modèles et de les utiliser dans votre application sans apporter de modifications de code.
Cet article explique comment les services Foundry organisent les modèles et comment utiliser le point de terminaison d’inférence pour y accéder.
Prerequisites
Déploiements
Foundry utilise les déploiements comme alias pour accéder au modèle. Un déploiement donne un nom et un ensemble de configurations à un modèle. Vous accédez à un modèle à l’aide de son nom de déploiement dans vos demandes.
Un déploiement définit :
- Nom d’un modèle
- Version d’un modèle
- Un provisionnement ou un type de capacité1
- Configuration du filtrage de contenu1
- Configuration de limitation de débit1
1 Ces configurations peuvent changer en fonction du modèle sélectionné.
Une ressource Foundry peut avoir de nombreux déploiements de modèles. Vous payez uniquement pour l’inférence effectuée sur les déploiements de modèles. Les déploiements sont des ressources Azure, donc soumis à des stratégies Azure.
Pour plus d’informations sur la création de déploiements, consultez Ajouter et configurer des déploiements de modèles.
Point de terminaison d’inférence Azure OpenAI
Le Azure API OpenAI expose les fonctionnalités complètes des modèles OpenAI et prend en charge d’autres fonctionnalités telles que les assistants, les threads, les fichiers et l’inférence par lots. Vous pouvez également l’utiliser pour accéder aux modèles non OpenAI.
Les points de terminaison Azure OpenAI se présentent sous la forme de https://<resource-name>.openai.azure.com. Les points de terminaison correspondent aux déploiements, et chaque déploiement possède sa propre URL. Toutefois, vous pouvez utiliser le même mécanisme d’authentification pour consommer plusieurs déploiements. Pour plus d’informations, consultez la page de référence de Azure API OpenAI.
Les URL de déploiement sont formées en concaténant l’URL de base Azure OpenAI et l’itinéraire/deployments/<model-deployment-name>. Lorsque vous utilisez l’API OpenAI v1, appelez la route /openai/v1/ sur l’URL de base, https://<resource-name>.openai.azure.com/openai/v1/, et transmettez le nom du déploiement dans le champ model de votre requête. La route /openai/v1/ utilise le versionnement implicite, vous n’avez donc pas à passer de api-version.
Les exemples suivants utilisent l’API Réponses, qui prend en charge les dernières fonctionnalités d’inférence.
Note
L’API Responses fonctionne avec les modèles Azure OpenAI ainsi qu’avec les modèles Foundry vendus par Azure compatibles avec celle-ci, tels que les modèles DeepSeek, Llama et Grok. Si un déploiement ne prend pas en charge l’API Réponses, la requête retourne 400 Model not supported. Dans ce cas, utilisez plutôt l’API Chat Completions en appelant client.chat.completions.create.
Utiliser l’authentification par clé API
Vous pouvez authentifier les demandes d’inférence avec une clé API à partir de votre ressource Foundry. Les clés API sont rapides à configurer, mais elles accordent un accès complet à la ressource, sont difficiles à étendre à des utilisateurs ou actions spécifiques et nécessitent une rotation manuelle pour rester sécurisée. Pour les charges de travail de production, utilisez plutôt l’authentification sans clé avec Microsoft Entra ID.
Dans l’exemple suivant, deepseek-v3-0324 il s’agit du nom d’un déploiement de modèle dans la ressource Microsoft Foundry. Remplacez-le par votre propre nom de déploiement et stockez votre clé API dans la variable d’environnement AZURE_INFERENCE_CREDENTIAL .
Installez le paquet openai à l’aide de pip :
pip install openai --upgrade
Créez un client qui pointe vers le point de terminaison Azure OpenAI v1, puis générez une réponse. La route /openai/v1/ utilise le versionnement implicite, vous n’avez donc pas à passer de api-version. Transmettez votre nom de déploiement dans le model champ :
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)
Installez le package openai à l’aide de npm :
npm install openai
Créez un client qui pointe vers le point de terminaison Azure OpenAI v1, puis générez une réponse :
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);
Installez la bibliothèque OpenAI :
dotnet add package OpenAI
Créez un client qui pointe vers le point de terminaison Azure OpenAI v1, puis générez une réponse :
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());
Ajoutez le Kit de développement logiciel (SDK) OpenAI Java à votre projet. Consultez le référentiel openAI Java pour obtenir la dernière version.
Créez un client qui pointe vers le point de terminaison Azure OpenAI v1, puis générez une réponse :
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()));
Envoyez des requêtes directement à l’itinéraire v1. Le chemin utilise le /openai/v1/ contrôle de version implicite. Vous n’incluez donc pas de api-version paramètre de requête. Transmettez votre clé dans l’en-tête Authorization sous forme de jeton du porteur :
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."
}'
Pour plus d’informations sur l’utilisation du point de terminaison Azure OpenAI, consultez prise en charge des langages du SDK Azure OpenAI.
Utiliser l’authentification sans clé
Les modèles Foundry déployés prennent en charge l’autorisation sans clé avec Microsoft Entra ID. L’autorisation sans clé améliore la sécurité, simplifie l’expérience utilisateur, réduit la complexité opérationnelle et fournit une prise en charge robuste de la conformité. Utilisez l’autorisation sans clé si votre organisation utilise des solutions de gestion des identités sécurisées et évolutives.
Pour utiliser l’authentification sans clé, configurez votre ressource et accordez l’accès aux utilisateurs pour effectuer l’inférence. Après avoir configuré la ressource et accordé l’accès, authentifiez-vous comme suit :
Installez le Kit de développement logiciel (SDK) OpenAI à l’aide d’un gestionnaire de package tel que pip :
pip install openai
Pour l’authentification Microsoft Entra ID, installez également :
pip install azure-identity
Utilisez le package logiciel pour exploiter le modèle. L’exemple suivant montre comment créer un client et effectuer un appel de test à l’API Réponses à l’aide de Microsoft Entra ID et de votre déploiement de modèle.
Remplacez par <resource> le nom de votre ressource Foundry. Recherchez-le dans le portail Azure ou en exécutant az cognitiveservices account list. Remplacez par deepseek-v3-0324 votre nom de déploiement réel.
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)
Sortie attendue
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.
Référence : OpenAI Python SDK et DefaultAzureCredential class.
Installez le Kit de développement logiciel (SDK) OpenAI :
dotnet add package OpenAI
Pour l’authentification Microsoft Entra ID, installez également le package Azure.Identity :
dotnet add package Azure.Identity
Ensuite, utilisez le package pour exploiter le modèle. L’exemple suivant montre comment créer un client et effectuer un appel de test à l’API Réponses à l’aide de Microsoft Entra ID et de votre déploiement de modèle.
Remplacez <resource> par le nom de votre ressource Foundry (recherchez-la dans le portail Azure). Remplacez par deepseek-v3-0324 votre nom de déploiement réel.
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());
Sortie attendue :
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.
Référence : OpenAI .NET SDK et DefaultAzureCredential class.
Installez le Kit de développement logiciel (SDK) OpenAI avec npm :
npm install openai
Pour l’authentification Microsoft Entra ID, installez également :
npm install @azure/identity
Ensuite, utilisez le package pour exploiter le modèle. L’exemple suivant montre comment créer un client et effectuer un appel de test à l’API Réponses à l’aide de Microsoft Entra ID et de votre déploiement de modèle.
Remplacez <resource> par le nom de votre ressource Foundry (recherchez-la dans le portail Azure ou en exécutant az cognitiveservices account list). Remplacez par deepseek-v3-0324 votre nom de déploiement réel.
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);
Sortie attendue :
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.
Référence : Kit de développement logiciel (SDK) OpenAI Node.js et classe DefaultAzureCredential.
Ajoutez le Kit de développement logiciel (SDK) OpenAI à votre projet. Consultez le référentiel OpenAI Java GitHub pour obtenir les dernières instructions d’installation et de version.
Pour l’authentification Microsoft Entra ID, ajoutez également :
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.0</version>
</dependency>
Ensuite, utilisez le package pour exploiter le modèle. L’exemple suivant montre comment créer un client et effectuer un appel de test à l’API Réponses à l’aide de Microsoft Entra ID et de votre déploiement de modèle.
Remplacez <resource> par le nom de votre ressource Foundry (recherchez-la dans le portail Azure). Remplacez par deepseek-v3-0324 votre nom de déploiement réel.
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()));
Sortie attendue :
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.
Référence : OpenAI Java SDK et la classe DefaultAzureCredential.
Explorez la conception de l’API dans la section référence pour voir quels paramètres sont disponibles. Insérez le jeton d’authentification (porteur) dans l’en-tête Authorization .
Par exemple, la section de référence de l’API Réponses explique comment utiliser l’itinéraire /responses pour générer des prédictions. Le chemin /openai/v1/ est inclus dans la racine de l’URL :
Demande
Remplacez <resource> par le nom de votre ressource Foundry (recherchez-la dans le portail Azure ou en exécutant az cognitiveservices account list). Remplacez par deepseek-v3-0324 votre nom de déploiement réel.
L’URL de base accepte les formats https://<resource>.services.ai.azure.com/openai/v1/ et https://<resource>.openai.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?"
}'
Réponse
Si l’authentification réussit, vous recevez une 200 OK réponse avec les résultats de la réponse dans le corps de la réponse :
{
"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
}
}
Les jetons doivent être émis avec le périmètre https://ai.azure.com/.default.
À des fins de test, le moyen le plus simple d’obtenir un jeton valide pour votre compte d’utilisateur consiste à utiliser le Azure CLI. Dans une console, connectez-vous et demandez un jeton en exécutant les commandes Azure CLI suivantes :
az login
az account get-access-token --resource https://ai.azure.com --query "accessToken" --output tsv
Cette commande génère un jeton d’accès que vous pouvez stocker dans la variable d’environnement $AZURE_OPENAI_AUTH_TOKEN .
Référence : API Réponses
Contenu connexe