Microsoft Foundry Models ger åtkomst till en mängd olika modeller från många leverantörer via en enda slutpunkt och en uppsättning autentiseringsuppgifter. Med den här funktionen kan du växla mellan modeller och använda dem i ditt program utan att göra kodändringar.
Den här artikeln beskriver hur Foundry-tjänsterna organiserar modeller och hur du använder slutpunkten för slutsatsdragning för att komma åt dem.
Förutsättningar
Implementeringar
Foundry använder distributioner som alias för modellåtkomst. En distribution ger en modell ett namn och en uppsättning konfigurationer. Du får tillgång till en modell genom att använda dess distributionsnamn i dina anrop.
En driftsättning definierar:
- Ett modellnamn
- En modellversion
- En provisionering eller kapacitetstyp1
- En innehållsfiltreringskonfiguration1
- En hastighetsbegränsningskonfiguration1
1 Dessa konfigurationer kan ändras beroende på den valda modellen.
En Foundry-resurs kan ha många modellimplementationer. Du betalar bara för inferens som utförs på modellutplaceringar. Distributioner är Azure resurser, så de omfattas av Azure principer.
Mer information om hur du skapar distributioner finns i Lägga till och konfigurera modelldistributioner.
Azure Slutpunkt för OpenAI-slutsatsdragning
Azure OpenAI API exponerar alla funktioner i OpenAI-modeller och stöder fler funktioner som assistenter, trådar, filer och batchinferens. Du kan också använda den för att komma åt icke-OpenAI-modeller.
Azure OpenAI-slutpunkter formateras som https://<resource-name>.openai.azure.com. Slutpunkter mappas till distributioner och varje distribution har en egen associerad URL. Du kan dock använda samma autentiseringsmekanism för att använda mer än en distribution. Mer information finns på referenssidan för Azure OpenAI API.
Distributions-URL:er skapas genom att sammanlänka Azure OpenAI-bas-URL:en och vägen /deployments/<model-deployment-name>. När du använder OpenAI v1-API:et anropar du routen /openai/v1/ på bas-URL:en https://<resource-name>.openai.azure.com/openai/v1/, och anger distributionens namn i fältet model i din begäran. Vägen /openai/v1/ använder implicit versionshantering, så att du inte skickar en api-version.
I följande exempel används Svars-API:et, som stöder de senaste slutsatsdragningsfunktionerna.
Note
Svars-API:et fungerar med Azure OpenAI-modeller och med Foundry-modeller som säljs av Azure som stöder det, till exempel DeepSeek-, Llama- och Grok-modeller. Om en distribution inte stöder Responses API returnerar begäran 400 Model not supported. I så fall använder du API:et För slutförande av chatt genom att anropa client.chat.completions.create i stället.
Använda API-nyckelautentisering
Du kan autentisera slutsatsdragningsbegäranden med en API-nyckel från din Foundry-resurs. API-nycklar är snabba att konfigurera, men de ger fullständig åtkomst till resursen, är svåra att begränsa till specifika användare eller åtgärder och kräver manuell rotation för att hålla sig säker. För produktionsarbetsbelastningar använder du nyckellös autentisering med Microsoft Entra ID i stället.
I följande exempel deepseek-v3-0324 är namnet på en modelldistribution i resursen Microsoft Foundry. Ersätt den med ditt eget distributionsnamn och lagra DIN API-nyckel i AZURE_INFERENCE_CREDENTIAL miljövariabeln.
openai Installera paketet med pip:
pip install openai --upgrade
Skapa en klient som pekar på Azure OpenAI v1-slutpunkten och generera sedan ett svar. Vägen /openai/v1/ använder implicit versionshantering, så att du inte skickar en api-version. Skicka distributionsnamnet i fältet 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)
openai Installera paketet med npm:
npm install openai
Skapa en klient som pekar på Azure OpenAI v1-slutpunkten och generera sedan ett svar:
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);
Installera OpenAI-biblioteket:
dotnet add package OpenAI
Skapa en klient som pekar på Azure OpenAI v1-slutpunkten och generera sedan ett svar:
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());
Lägg till OpenAI Java SDK i projektet. Kontrollera openAI-Java-lagringsplatsen för den senaste versionen.
Skapa en klient som pekar på Azure OpenAI v1-slutpunkten och generera sedan ett svar:
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()));
Skicka begäranden direkt till v1-vägen. Sökvägen /openai/v1/ använder implicit versionshantering, så du tar inte med någon frågeparameter api-version . Skicka din nyckel i Authorization-headern som en 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."
}'
Mer information om hur du använder Azure OpenAI-slutpunkten finnsi Azure openAI SDK-språkstöd.
Använda nyckellös autentisering
Distribuerade Foundry-modeller stöder nyckellös auktorisering med Microsoft Entra ID. Nyckellös auktorisering förbättrar säkerheten, förenklar användarupplevelsen, minskar driftkomplexiteten och ger robust efterlevnadsstöd. Använd nyckellös auktorisering om din organisation använder säkra och skalbara identitetshanteringslösningar.
Om du vill använda nyckellös autentisering konfigurerar du resursen och beviljar åtkomst till användare för att utföra slutsatsdragning. När du har konfigurerat resursen och beviljat åtkomst autentiserar du på följande sätt:
Installera OpenAI SDK med hjälp av en pakethanterare som pip:
pip install openai
Installera även för Microsoft Entra ID-autentisering:
pip install azure-identity
Använd paketet för att konsumera modellen. I följande exempel visas hur du skapar en klient och gör ett testanrop till svars-API:et med hjälp av Microsoft Entra ID och din modelldistribution.
Ersätt <resource> med namnet på foundry-resursen. Hitta den i Azure-portalen eller genom att köra az cognitiveservices account list. Ersätt deepseek-v3-0324 med ditt faktiska distributionsnamn.
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)
Förväntade utdata
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.
Referens: OpenAI Python SDK och DefaultAzureCredential-klass.
Installera OpenAI utvecklingspaket:
dotnet add package OpenAI
För Microsoft Entra ID-autentisering installerar du även paketet Azure.Identity:
dotnet add package Azure.Identity
Använd sedan paketet för att förbruka modellen. I följande exempel visas hur du skapar en klient och gör ett testanrop till svars-API:et med hjälp av Microsoft Entra ID och din modelldistribution.
Ersätt <resource> med ditt Foundry-resursnamn (hitta det i Azure-portalen). Ersätt deepseek-v3-0324 med ditt faktiska distributionsnamn.
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());
Förväntade utdata:
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.
Referens: OpenAI .NET SDK och DefaultAzureCredential-klass.
Installera OpenAI SDK med npm:
npm install openai
Installera även för Microsoft Entra ID-autentisering:
npm install @azure/identity
Använd sedan paketet för att förbruka modellen. I följande exempel visas hur du skapar en klient och gör ett testanrop till svars-API:et med hjälp av Microsoft Entra ID och din modelldistribution.
Ersätt <resource> med ditt Foundry-resursnamn (hitta det i Azure-portalen eller genom att köra az cognitiveservices account list). Ersätt deepseek-v3-0324 med ditt faktiska distributionsnamn.
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);
Förväntade utdata:
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.
Referens: Klassen OpenAI Node.js SDK och DefaultAzureCredential.
Lägg till OpenAI SDK i projektet. Kontrollera lagringsplatsen OpenAI Java GitHub för den senaste versionen och installationsanvisningarna.
För Microsoft Entra ID-autentisering lägger du även till:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.0</version>
</dependency>
Använd sedan paketet för att förbruka modellen. I följande exempel visas hur du skapar en klient och gör ett testanrop till svars-API:et med hjälp av Microsoft Entra ID och din modelldistribution.
Ersätt <resource> med ditt Foundry-resursnamn (hitta det i Azure-portalen). Ersätt deepseek-v3-0324 med ditt faktiska distributionsnamn.
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()));
Förväntade utdata:
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.
Referens: OpenAI Java SDK och DefaultAzureCredential-klass.
Utforska API-designen i referensavsnittet för att se vilka parametrar som är tillgängliga. Infoga autentiseringstoken (ägartoken) i Authorization rubriken.
I referensavsnittet svars-API beskrivs till exempel hur du använder /responses vägen för att generera förutsägelser. Sökvägen /openai/v1/ ingår i roten av URL:en:
Begäran
Ersätt <resource> med ditt Foundry-resursnamn (hitta det i Azure-portalen eller genom att köra az cognitiveservices account list). Ersätt deepseek-v3-0324 med ditt faktiska distributionsnamn.
Bas-URL:en accepterar både https://<resource>.openai.azure.com/openai/v1/ och https://<resource>.services.ai.azure.com/openai/v1/ format.
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?"
}'
Svar
Om autentiseringen lyckas får du ett 200 OK svar med svarsresultatet i svarstexten:
{
"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åste utfärdas med omfånget https://ai.azure.com/.default.
I testsyfte är det enklaste sättet att få en giltig token för ditt användarkonto att använda Azure CLI. I en konsol loggar du in och begär en token genom att köra följande Azure CLI kommandon:
az login
az account get-access-token --resource https://ai.azure.com --query "accessToken" --output tsv
Det här kommandot matar ut en åtkomsttoken som du kan lagra i $AZURE_OPENAI_AUTH_TOKEN miljövariabeln.
Referens: Svars-API
Relaterat innehåll