Azure KI-Modellinferenzendpunkt verwenden, um Modelle zu nutzen
Artikel
Azure KI-Modellinferenz in Azure KI Services ermöglicht es Kunden, die leistungsstärksten Modelle von führenden Modellanbietern mit einem einzigen Endpunkt und Anmeldeinformationen zu nutzen. Dies bedeutet, dass Sie zwischen Modellen wechseln und diese aus Ihrer Anwendung nutzen können, ohne eine einzelne Codezeile zu ändern.
In diesem Artikel wird erläutert, wie Sie den Inferenzendpunkt verwenden, um sie aufzurufen.
Endpunkte
Azure KI Services macht je nach Art der gesuchten Arbeit mehrere Endpunkte verfügbar:
Azure KI-Modellinferenzendpunkt
Azure OpenAI-Endpunkt
Der Azure KI-Inferenzendpunkt (üblicherweise in der Form https://<resource-name>.services.ai.azure.com/models) ermöglicht es Kunden, einen einzelnen Endpunkt mit der gleichen Authentifizierung und demselben Schema zu verwenden, um Inferenz für die bereitgestellten Modelle in der Ressource zu generieren. Alle Modelle unterstützen diese Funktion. Dieser Endpunkt folgt der Azure KI-Modellinferenz-API.
Für KI-Dienste bereitgestellte Azure OpenAI-Modelle unterstützen die Azure OpenAI-API (üblicherweise in der Form https://<resource-name>.openai.azure.com) ebenfalls. Dieser Endpunkt macht die alle Funktionen von OpenAI-Modellen verfügbar und unterstützt weitere Features wie Assistenten, Threads, Dateien und Batchinferenz.
Verwenden der Routingfunktion im Azure KI-Modellinferenzendpunkt
Der Rückschlussendpunkt leitet Anforderungen an eine bestimmte Bereitstellung weiter, indem er den Parameter name innerhalb der Anforderung mit dem Namen der Bereitstellung abgleicht. Dies bedeutet, dass Bereitstellungen unter bestimmten Konfigurationen als Alias eines bestimmten Modells funktionieren. Diese Flexibilität ermöglicht es Ihnen, ein bestimmtes Modell mehrmals im Dienst bereitzustellen, aber bei Bedarf unter verschiedenen Konfigurationen.
Wenn Sie z. B. eine Bereitstellung mit dem Namen Mistral-large erstellen, dann kann diese Bereitstellung aufgerufen werden als:
Installieren Sie das Paket azure-ai-inference mit Ihrem Paket-Manager, z. B. pip:
pip install azure-ai-inference>=1.0.0b5
Warnung
Azure KI Services-Ressource erfordert die Version azure-ai-inference>=1.0.0b5 für Python.
Anschließend können Sie das Paket verwenden, um das Modell zu nutzen. Das folgende Beispiel zeigt, wie Sie einen Client erstellen, um Chatvervollständigungen zu nutzen:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
model = ChatCompletionsClient(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=AzureKeyCredential(os.environ["AZUREAI_ENDPOINT_KEY"]),
)
Installieren Sie das Paket @azure-rest/ai-inference mithilfe von npm:
npm install @azure-rest/ai-inference
Anschließend können Sie das Paket verwenden, um das Modell zu nutzen. Das folgende Beispiel zeigt, wie Sie einen Client erstellen, um Chatvervollständigungen zu nutzen:
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.AZUREAI_ENDPOINT_KEY)
);
using Azure;
using Azure.Identity;
using Azure.AI.Inference;
Anschließend können Sie das Paket verwenden, um das Modell zu nutzen. Das folgende Beispiel zeigt, wie Sie einen Client erstellen, um Chatvervollständigungen zu nutzen:
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Anschließend können Sie das Paket verwenden, um das Modell zu nutzen. Das folgende Beispiel zeigt, wie Sie einen Client erstellen, um Chatvervollständigungen zu nutzen:
ChatCompletionsClient client = new ChatCompletionsClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("{endpoint}")
.buildClient();
Im Referenzabschnitt finden Sie Informationen zum API-Entwurf und zu den verfügbaren Parametern. Beispiel: Im Referenzabschnitt für Chatvervollständigungen wird erläutert, wie Sie die Route /chat/completions zum Generieren von Vorhersagen basierend auf Anweisungen im Chatformat verwenden. Beachten Sie, dass der Pfad /models in den Stamm der URL eingeschlossen ist:
Anfordern
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
Für ein Chatmodell können Sie eine Anforderung wie folgt erstellen:
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.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());
}
Anforderung
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
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"
}
Wenn Sie einen Modellnamen angeben, der keiner bestimmten Modellimplementierung entspricht, wird eine Fehlermeldung angezeigt, dass das Modell nicht vorhanden ist. Sie können steuern, welche Modelle für Benutzende verfügbar sind, indem Sie Modellimplementierungen erstellen, wie unter Hinzufügen und Konfigurieren von Modellimplementierungen erläutert.