Med Azure AI Foundry Models kan du komma åt de mest kraftfulla modellerna från ledande modellleverantö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 ändra någon kod.
Den här artikeln beskriver hur Azure AI Foundry-tjänsterna (tidigare kallade Azure AI Services) organiserar modeller och hur du använder slutpunkten för slutsatsdragning för att komma åt dem.
Utrullningar
Azure AI Foundry använder distributioner för att göra modeller tillgängliga.
Distributioner ger en modell ett namn och anger specifika konfigurationer. Du kan komma åt en modell med dess distributionsnamn i dina begäranden.
En distribution omfattar:
- Ett modellnamn
- En modellversion
- En etablering eller kapacitetstyp1
- En innehållsfiltreringskonfiguration1
- En hastighetsbegränsningskonfiguration1
1 Dessa konfigurationer kan ändras beroende på den valda modellen.
En Azure AI Foundry-resurs kan ha många modelldistributioner. Du betalar bara för slutsatsdragning som utförs på modelldistributioner. 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.
Slutpunkter
Azure AI Foundry-tjänster tillhandahåller flera slutpunkter beroende på vilken typ av arbete du vill utföra:
Slutpunkt för Azure AI-slutsatsdragning
Med Slutpunkten för Azure AI-slutsatsdragning, vanligtvis i formuläret https://<resource-name>.services.ai.azure.com/models, kan du använda en enda slutpunkt med samma autentisering och schema för att generera slutsatsdragning för de distribuerade modellerna i resursen. Alla Foundry-modeller stöder den här funktionen. Den här slutpunkten följer API:et för Azure AI-modellinferens, som stöder följande metoder:
- Text inbäddningar
- Bildinbäddningar
- Chatten har slutförts
Routing
Slutpunkten för slutsatsdragning dirigerar begäranden till en specifik distribution genom att matcha parametern name i begäran till namnet på distributionen. Den här konfigurationen innebär att distributioner fungerar som ett alias för en modell under vissa konfigurationer. Med den här flexibiliteten kan du distribuera en modell flera gånger i tjänsten, men med olika konfigurationer om det behövs.
Om du till exempel skapar en distribution med namnet Mistral-largekan du anropa distributionen på följande sätt:
Installera paketet azure-ai-inference med hjälp av pakethanteraren, till exempel pip:
pip install azure-ai-inference
Sedan kan du använda paketet för att konsumera modellen. I följande exempel visas hur du skapar en klient för att hantera chattavslut:
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"]),
)
Utforska våra exempel och läs API-referensdokumentationen för att komma igång.
Installera paketet @azure-rest/ai-inference med npm:
npm install @azure-rest/ai-inference
Sedan kan du använda paketet för att konsumera modellen. I följande exempel visas hur du skapar en klient för att hantera chattavslut:
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)
);
Utforska våra exempel och läs API-referensdokumentationen för att komma igång.
Installera Azure AI-slutsatsdragningsbiblioteket med följande kommando:
dotnet add package Azure.AI.Inference --prerelease
Importera följande namnområden:
using Azure;
using Azure.Identity;
using Azure.AI.Inference;
Sedan kan du använda paketet för att konsumera modellen. I följande exempel visas hur du skapar en klient för att hantera chattavslut:
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Utforska våra exempel och läs API-referensdokumentationen för att komma igång.
Lägg till paketet i projektet:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-inference</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
Sedan kan du använda paketet för att konsumera modellen. I följande exempel visas hur du skapar en klient för att hantera chattavslut:
ChatCompletionsClient client = new ChatCompletionsClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("https://<resource>.services.ai.azure.com/models")
.buildClient();
Utforska våra exempel och läs API-referensdokumentationen för att komma igång.
Använd referensavsnittet för att utforska API-designen och vilka parametrar som är tillgängliga. Referensavsnittet för chattavslut beskriver till exempel hur du använder vägen /chat/completions för att generera förutsägelser baserat på chattformaterade instruktioner. Observera att sökvägen /models ingår i URL:ens rot:
Förfrågan
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
api-key: <api-key>
Content-Type: application/json
För en chattmodell kan du skapa en begäran på följande sätt:
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());
}
Förfrågan
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"
}
Om du anger ett modellnamn som inte matchar någon modelldistribution får du ett felmeddelande om att modellen inte finns. Du styr vilka modeller som är tillgängliga för användare genom att skapa modelldistributioner. Mer information finns i lägga till och konfigurera modelldistributioner.
Slutpunkt för Azure OpenAI-slutsatsdragning
Azure OpenAI-API:et exponerar alla funktioner i OpenAI-modeller och stöder fler funktioner som assistenter, trådar, filer och batchinferens. Du kan också komma åt icke-OpenAI-modeller via den här vägen.
Azure OpenAI-slutpunkter, vanligtvis i formuläret https://<resource-name>.openai.azure.com, fungerar på distributionsnivå och varje distribution har en egen associerad URL. Du kan dock använda samma autentiseringsmekanism för att använda distributionerna. Mer information finns på referenssidan för Azure OpenAI API.
Varje distribution har en URL som skapas genom att sammanlänka Azure OpenAI-bas-URL :en och vägen /deployments/<model-deployment-name>.
Installera paketet openai med hjälp av pakethanteraren, till exempel pip:
pip install openai --upgrade
Sedan kan du använda paketet för att konsumera modellen. I följande exempel visas hur du skapar en klient för att hantera chattavslut:
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",
)
Installera paketet openai med npm:
npm install openai
Sedan kan du använda paketet för att konsumera modellen. I följande exempel visas hur du skapar en klient för att hantera chattavslut:
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"
});
deepseek-v3-0324 Här är namnet på en modelldistribution i Azure AI Foundry-resursen.
Installera OpenAI-biblioteket med följande kommando:
dotnet add package Azure.AI.OpenAI --prerelease
Du kan använda paketet för att använda modellen. I följande exempel visas hur du skapar en klient för att hantera chattavslut:
AzureOpenAIClient client = new(
new Uri("https://<resource>.services.ai.azure.com"),
new ApiKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Lägg till paketet i projektet:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-openai</artifactId>
<version>1.0.0-beta.16</version>
</dependency>
Sedan kan du använda paketet för att konsumera modellen. I följande exempel visas hur du skapar en klient för att hantera chattavslut:
OpenAIClient client = new OpenAIClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("https://<resource>.services.ai.azure.com")
.buildClient();
Använd referensavsnittet för att utforska API-designen och vilka parametrar som är tillgängliga. Referensavsnittet för chattavslut beskriver till exempel hur du använder vägen /chat/completions för att generera förutsägelser baserat på chattformaterade instruktioner:
Förfrågan
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
deepseek-v3-0324 Här är namnet på en modelldistribution i Azure AI Foundry-resursen.
response = client.chat.completions.create(
model="deepseek-v3-0324", # Replace with your model dpeloyment 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());
}
deepseek-v3-0324 Här är namnet på en modelldistribution i Azure AI Foundry-resursen.
Förfrågan
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"
}
]
}
deepseek-v3-0324 Här är namnet på en modelldistribution i Azure AI Foundry-resursen.
Mer information om hur du använder Azure OpenAI-slutpunkten finnsi dokumentationen om Azure OpenAI i Azure AI Foundry Models.
Nyckellös autentisering
Modeller som distribueras till Azure AI Foundry Models i Azure AI-tjänster stöder nyckellös auktorisering med hjälp av Microsoft Entra-ID. Nyckellös auktorisering förbättrar säkerheten, förenklar användarupplevelsen, minskar driftkomplexiteten och ger robust efterlevnadsstöd för modern utveckling. Det gör nyckellös auktorisering till ett starkt val för organisationer som 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:
azure-ai-inference Installera paketet med hjälp av en pakethanterare som pip:
pip install azure-ai-inference
Använd sedan paketet för att förbruka modellen. I följande exempel visas hur du konfigurerar en klient för att utföra chatt-kompletteringar med Microsoft Entra-ID.
import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import DefaultAzureCredential
client = ChatCompletionsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=DefaultAzureCredential(),
credential_scopes=["https://cognitiveservices.azure.com/.default"],
)
@azure-rest/ai-inference Installera paketet med npm:
npm install @azure-rest/ai-inference
Använd sedan paketet för att förbruka modellen. I följande exempel visas hur du konfigurerar en klient för att utföra chatt-kompletteringar med Microsoft Entra-ID.
import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { DefaultAzureCredential } from "@azure/identity";
const clientOptions = { credentials: { "https://cognitiveservices.azure.com" } };
const client = new ModelClient(
"https://<resource>.services.ai.azure.com/models",
new DefaultAzureCredential(),
clientOptions,
);
Installera Azure AI-slutsatsdragningsbiblioteket med följande kommando:
dotnet add package Azure.AI.Inference --prerelease
Installera Azure.Identity-paketet:
dotnet add package Azure.Identity
Importera följande namnområden:
using Azure;
using Azure.Identity;
using Azure.AI.Inference;
Använd sedan paketet för att förbruka modellen. I följande exempel visas hur du konfigurerar en klient för att utföra chatt-kompletteringar med Microsoft Entra-ID.
TokenCredential credential = new DefaultAzureCredential();
AzureAIInferenceClientOptions clientOptions = new AzureAIInferenceClientOptions();
BearerTokenAuthenticationPolicy tokenPolicy = new BearerTokenAuthenticationPolicy(credential, new string[] { "https://cognitiveservices.azure.com/.default" });
clientOptions.AddPolicy(tokenPolicy, HttpPipelinePosition.PerRetry);
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
credential,
clientOptions.
);
Lägg till paketet i projektet:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-inference</artifactId>
<version>1.0.0-beta.4</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.15.3</version>
</dependency>
Använd sedan paketet för att förbruka modellen. I följande exempel visas hur du skapar en klient för att hantera chattavslut:
TokenCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
ChatCompletionsClient client = new ChatCompletionsClientBuilder()
.credential(defaultCredential)
.endpoint("https://<resource>.services.ai.azure.com/models")
.buildClient();
Utforska våra exempel och läs API-referensdokumentationen för att komma igång.
Använd referensavsnittet för att utforska API-designen och se vilka parametrar som är tillgängliga. Ange autentiseringstoken i rubriken Authorization. Referensavsnittet för chattavslut beskriver till exempel hur du använder vägen /chat/completions för att generera förutsägelser baserat på chattformaterade instruktioner. Sökvägen /models ingår i url:ens rot:
Förfrågan
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
Tokenen må utfärdas med omfånget https://cognitiveservices.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. Kör följande Azure CLI-kommando i en konsol:
az account get-access-token --resource https://cognitiveservices.azure.com --query "accessToken" --output tsv
Begränsningar
- Du kan inte använda Azure OpenAI Batch med slutpunkten Foundry Models. Du måste använda url:en för dedikerad distribution enligt beskrivningen i Batch API-stöd i Azure OpenAI-dokumentationen.
- Realtids-API stöds inte i slutpunkten för slutsatsdragning. Använd den dedikerade distributions-URL:en.
Relaterat innehåll