Microsoft Foundry Models bietet Zugriff auf eine Vielzahl von Modellen von vielen Anbietern über einen einzelnen Endpunkt und einen Satz von Anmeldeinformationen. Mit dieser Funktion können Sie zwischen Modellen wechseln und sie in Ihrer Anwendung verwenden, ohne Codeänderungen vorzunehmen.
In diesem Artikel wird erläutert, wie die Foundry-Dienste Modelle organisieren und wie Sie den Ableitungsendpunkt verwenden, um darauf zuzugreifen.
Voraussetzungen
Bereitstellungen
Foundry verwendet Deployments als Aliase für den Zugriff auf Modelle. Eine Bereitstellung gibt einem Modell einen Namen und eine Reihe von Konfigurationen. Sie greifen auf ein Modell zu, indem Sie in Ihren Anfragen dessen Bereitstellungsnamen verwenden.
Eine Bereitstellung definiert Folgendes:
- Ein Modellname
- Eine Modellversion
- Bereitstellungs- oder Kapazitätstyp1
- Konfiguration der Inhaltsfilterung1
- Eine Ratenbegrenzungskonfiguration1
1 Diese Konfigurationen können sich je nach ausgewähltem Modell ändern.
Eine Foundry-Ressource kann viele Modellimplementierungen aufweisen. Sie zahlen nur für Rückschlüsse, die für Modellbereitstellungen ausgeführt wurden. Bereitstellungen sind Azure Ressourcen, sodass sie Azure Richtlinien unterliegen.
Weitere Informationen zum Erstellen von Bereitstellungen finden Sie unter Hinzufügen und Konfigurieren von Modellbereitstellungen.
Azure OpenAI-Inference-Endpunkt
Die Azure OpenAI-API macht die vollständigen Funktionen von OpenAI-Modellen verfügbar und unterstützt weitere Features wie Assistenten, Threads, Dateien und Batcheinschluss. Sie können es auch verwenden, um auf Nicht-OpenAI-Modelle zuzugreifen.
Azure OpenAI-Endpunkte haben das Format https://<resource-name>.openai.azure.com. Endpunkte sind Bereitstellungen zugeordnet, und jede Bereitstellung verfügt über eine eigene URL. Sie können jedoch denselben Authentifizierungsmechanismus verwenden, um mehrere Bereitstellungen zu nutzen. Weitere Informationen finden Sie auf der Referenzseite für Azure OpenAI-API.
Bereitstellungs-URLs werden durch Verketten der Azure OpenAI-Basis-URL und der Route /deployments/<model-deployment-name>gebildet. Wenn Sie die OpenAI v1-API verwenden, rufen Sie die /openai/v1/ Route auf der Basis-URL auf, https://<resource-name>.openai.azure.com/openai/v1/und übergeben Sie den Bereitstellungsnamen im model Feld Ihrer Anforderung. Die /openai/v1/-Route verwendet implizite Versionierung, sodass Sie kein api-version übergeben.
In den folgenden Beispielen wird die Antwort-API verwendet, die die neuesten Rückschlussfunktionen unterstützt.
Note
Die Antwort-API funktioniert mit Azure OpenAI-Modellen und mit Foundry-Modellen, die von Azure verkauft werden, die es unterstützen, z. B. DeepSeek-, Llama- und Grok-Modelle. Wenn eine Bereitstellung die Antwort-API nicht unterstützt, wird die Anforderung zurückgegeben 400 Model not supported. Verwenden Sie in diesem Fall die Chatabschluss-API, indem Sie stattdessen aufrufen client.chat.completions.create .
Verwenden der API-Schlüsselauthentifizierung
Sie können Rückschlussanforderungen mit einem API-Schlüssel aus Ihrer Foundry-Ressource authentifizieren. API-Schlüssel sind schnell einzurichten, aber sie gewähren vollzugriff auf die Ressource, sind schwer auf bestimmte Benutzer oder Aktionen zu beschränken und erfordern eine manuelle Drehung, um sicher zu bleiben. Verwenden Sie für Produktionsworkloads stattdessen die schlüssellose Authentifizierung mit Microsoft Entra ID.
Im folgenden Beispiel deepseek-v3-0324 ist der Name einer Modellbereitstellung in der Microsoft Foundry-Ressource. Ersetzen Sie ihn durch Ihren eigenen Bereitstellungsnamen, und speichern Sie Ihren API-Schlüssel in der AZURE_INFERENCE_CREDENTIAL Umgebungsvariable.
Installieren Sie das openai Paket mithilfe von pip:
pip install openai --upgrade
Erstellen Sie einen Client, der auf den Azure OpenAI v1-Endpunkt verweist, und generieren Sie dann eine Antwort. Die /openai/v1/-Route verwendet implizite Versionierung, sodass Sie kein api-version übergeben. Geben Sie Ihren Deployment-Namen im Feld model ein:
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)
Installieren Sie das openai Paket mithilfe von npm:
npm install openai
Erstellen Sie einen Client, der auf den Azure OpenAI v1-Endpunkt verweist, und generieren Sie dann eine Antwort:
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);
Installieren Sie die OpenAI-Bibliothek:
dotnet add package OpenAI
Erstellen Sie einen Client, der auf den Azure OpenAI v1-Endpunkt verweist, und generieren Sie dann eine Antwort:
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());
Fügen Sie ihrem Projekt das OpenAI Java SDK hinzu. Überprüfen Sie das OpenAI Java Repository für die neueste Version.
Erstellen Sie einen Client, der auf den Azure OpenAI v1-Endpunkt verweist, und generieren Sie dann eine Antwort:
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()));
Senden Sie Anfragen direkt an die v1-Route. Der /openai/v1/-Pfad verwendet eine implizite Versionierung, daher geben Sie den Abfrageparameter api-version nicht an. Übergeben Sie Ihren Schlüssel im Authorization Header als Bearer-Token:
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."
}'
Weitere Informationen zur Verwendung des Azure OpenAI-Endpunkts finden Sie unter Azure OpenAI SDK-Sprachunterstützung.
Verwenden der schlüssellosen Authentifizierung
Bereitgestellte Foundry Models unterstützen die schlüssellose Autorisierung mit Microsoft Entra ID. Die schlüssellose Autorisierung verbessert die Sicherheit, vereinfacht die Benutzererfahrung, verringert die Betriebskomplexität und bietet eine robuste Complianceunterstützung. Verwenden Sie schlüssellose Autorisierung, wenn Ihre Organisation sichere und skalierbare Identitätsverwaltungslösungen verwendet.
Um die schlüssellose Authentifizierung zu verwenden, konfigurieren Sie Ihre Ressource, und gewähren Sie Benutzern Zugriff auf die Durchführung von Rückschlüssen. Nachdem Sie die Ressource konfiguriert und Zugriff gewährt haben, authentifizieren Sie sich wie folgt:
Installieren Sie das OpenAI SDK mit einem Paket-Manager wie pip:
pip install openai
Installieren Sie für Microsoft Entra ID Authentifizierung auch Folgendes:
pip install azure-identity
Verwenden des Pakets, um das Modell zu nutzen. Das folgende Beispiel zeigt, wie Sie einen Client erstellen und mithilfe von Microsoft Entra ID und Ihrer Modellbereitstellung einen Testaufruf für die Responses-API ausführen.
Ersetzen Sie <resource> durch den Namen Ihrer Foundry-Ressource. Suchen Sie es im Azure-Portal oder indem Sie az cognitiveservices account list ausführen. Ersetzen Sie deepseek-v3-0324 durch Ihren tatsächlichen Bereitstellungsnamen.
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)
Erwartete Ausgabe
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.
Referenz: OpenAI Python SDK und DefaultAzureCredential-Klasse.
Installieren Sie das OpenAI SDK:
dotnet add package OpenAI
Installieren Sie für Microsoft Entra ID Authentifizierung auch das paket Azure.Identity:
dotnet add package Azure.Identity
Verwenden Sie dann das Paket, um das Modell zu nutzen. Das folgende Beispiel zeigt, wie Sie einen Client erstellen und mithilfe von Microsoft Entra ID und Ihrer Modellbereitstellung einen Testaufruf für die Responses-API ausführen.
Ersetzen Sie <resource> durch ihren Findry-Ressourcennamen (suchen Sie sie im Azure-Portal). Ersetzen Sie deepseek-v3-0324 durch Ihren tatsächlichen Bereitstellungsnamen.
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());
Erwartete Ausgabe:
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.
Referenz: OpenAI .NET SDK und DefaultAzureCredential-Klasse.
Installieren Sie das OpenAI SDK mit npm:
npm install openai
Installieren Sie für Microsoft Entra ID Authentifizierung auch Folgendes:
npm install @azure/identity
Verwenden Sie dann das Paket, um das Modell zu nutzen. Das folgende Beispiel zeigt, wie Sie einen Client erstellen und mithilfe von Microsoft Entra ID und Ihrer Modellbereitstellung einen Testaufruf für die Responses-API ausführen.
Ersetzen Sie <resource> durch den Namen Ihrer Foundry-Ressource (finden Sie diesen im Azure-Portal oder indem Sie az cognitiveservices account list ausführen). Ersetzen Sie deepseek-v3-0324 durch Ihren tatsächlichen Bereitstellungsnamen.
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);
Erwartete Ausgabe:
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.
Referenz: OpenAI Node.js SDK und DefaultAzureCredential-Klasse.
Fügen Sie das OpenAI SDK zu Ihrem Projekt hinzu. Überprüfen Sie das OpenAI Java GitHub Repository auf die neuesten Versions- und Installationsanweisungen.
Fügen Sie für Microsoft Entra ID Authentifizierung auch Folgendes hinzu:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.0</version>
</dependency>
Verwenden Sie dann das Paket, um das Modell zu nutzen. Das folgende Beispiel zeigt, wie Sie einen Client erstellen und mithilfe von Microsoft Entra ID und Ihrer Modellbereitstellung einen Testaufruf für die Responses-API ausführen.
Ersetzen Sie <resource> durch ihren Findry-Ressourcennamen (suchen Sie sie im Azure-Portal). Ersetzen Sie deepseek-v3-0324 durch Ihren tatsächlichen Bereitstellungsnamen.
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()));
Erwartete Ausgabe:
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.
Referenz: OpenAI Java SDK und DefaultAzureCredential-Klasse.
Erkunden Sie den API-Entwurf im Referenzabschnitt , um zu sehen, welche Parameter verfügbar sind. Fügen Sie das Authentifizierungstoken (Bearertoken) in den Authorization-Header ein.
Im Referenzabschnitt " Antworten-API " wird z. B. erläutert, wie Die /responses Route zum Generieren von Vorhersagen verwendet wird. Der /openai/v1/ Pfad ist im Stamm der URL enthalten:
Anfrage
Ersetzen Sie <resource> durch den Namen Ihrer Foundry-Ressource (finden Sie diesen im Azure-Portal oder indem Sie az cognitiveservices account list ausführen). Ersetzen Sie deepseek-v3-0324 durch Ihren tatsächlichen Bereitstellungsnamen.
Die Basis-URL akzeptiert beide https://<resource>.openai.azure.com/openai/v1/ Formate und https://<resource>.services.ai.azure.com/openai/v1/ Formate.
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?"
}'
Antwort
Wenn die Authentifizierung erfolgreich ist, erhalten Sie eine 200 OK Antwort mit den Antwortergebnissen im Antworttext:
{
"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
}
}
Token müssen mit dem Gültigkeitsbereich https://ai.azure.com/.default ausgegeben werden.
Zu Testzwecken besteht die einfachste Möglichkeit, ein gültiges Token für Ihr Benutzerkonto zu erhalten, darin, die Azure CLI zu verwenden. Melden Sie sich in einer Konsole an, und fordern Sie ein Token an, indem Sie die folgenden Azure CLI Befehle ausführen:
az login
az account get-access-token --resource https://ai.azure.com --query "accessToken" --output tsv
Mit diesem Befehl wird ein Zugriffstoken ausgegeben, das Sie in der $AZURE_OPENAI_AUTH_TOKEN Umgebungsvariable speichern können.
Referenz: Antwort-API
Verwandte Inhalte