Využití modelů pomocí koncového bodu odvozování modelů Azure AI
Článek
Odvozování modelů Azure AI ve službách Azure AI umožňuje zákazníkům využívat nejvýkonnější modely od hlavních poskytovatelů modelů pomocí jednoho koncového bodu a přihlašovacích údajů. To znamená, že můžete přepínat mezi modely a využívat je z aplikace beze změny jednoho řádku kódu.
Tento článek vysvětluje, jak k jejich vyvolání použít koncový bod odvození.
Koncové body
Služby Azure AI zveřejňují více koncových bodů v závislosti na typu práce, kterou hledáte:
Koncový bod odvozování modelu Azure AI
Koncový bod Azure OpenAI
Koncový bod odvozování Azure AI (obvykle s formulářem https://<resource-name>.services.ai.azure.com/models) umožňuje zákazníkům použít jeden koncový bod se stejným ověřováním a schématem k vygenerování odvozování pro nasazené modely v prostředku. Tuto funkci podporují všechny modely. Tento koncový bod se řídí rozhraním API pro odvozování modelů Azure AI.
Modely Azure OpenAI nasazené do služeb AI podporují také rozhraní API Azure OpenAI (obvykle s formulářem https://<resource-name>.openai.azure.com). Tento koncový bod zveřejňuje všechny funkce modelů OpenAI a podporuje další funkce, jako jsou asistenti, vlákna, soubory a dávkové odvozování.
Další informace o použití koncového bodu Azure OpenAI najdete v dokumentaci ke službě Azure OpenAI.
Použití možnosti směrování v koncovém bodu odvozování modelu Azure AI
Koncový bod odvozování směruje požadavky na dané nasazení tím, že odpovídá parametru name uvnitř požadavku s názvem nasazení. To znamená, že nasazení fungují jako alias daného modelu v určitých konfiguracích. Tato flexibilita umožňuje nasadit daný model ve službě několikrát, ale v případě potřeby v různých konfiguracích.
Pokud například vytvoříte nasazení s názvem Mistral-large, může být takové nasazení vyvoláno takto:
Nainstalujte balíček azure-ai-inference pomocí správce balíčků, například pip:
pip install azure-ai-inference>=1.0.0b5
Upozorňující
Prostředek Azure AI Services vyžaduje verzi azure-ai-inference>=1.0.0b5 pythonu.
Pak můžete balíček použít k využívání modelu. Následující příklad ukazuje, jak vytvořit klienta pro zpracování dokončení chatu:
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"]),
)
Nainstalujte balíček @azure-rest/ai-inference pomocí npm:
npm install @azure-rest/ai-inference
Pak můžete balíček použít k využívání modelu. Následující příklad ukazuje, jak vytvořit klienta pro zpracování dokončení chatu:
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;
Pak můžete balíček použít k využívání modelu. Následující příklad ukazuje, jak vytvořit klienta pro zpracování dokončení chatu:
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
V referenční části se seznámíte s návrhem rozhraní API a s dostupnými parametry. Například referenční část pro dokončování chatu podrobně popisuje, jak použít trasu /chat/completions ke generování předpovědí na základě pokynů naformátovaných chatem. Všimněte si, že cesta /models je zahrnutá do kořenového adresáře adresy URL:
Požádat
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
Pro model chatu můžete vytvořit žádost následujícím způsobem:
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());
}
Požádat
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"
}
Pokud zadáte název modelu, který neodpovídá žádnému danému nasazení modelu, zobrazí se chyba, že model neexistuje. To, které modely jsou uživatelům k dispozici, můžete řídit tak, že vytvoříte nasazení modelů, jak je vysvětleno při přidávání a konfiguraci nasazení modelu.
Omezení
Azure OpenAI Batch se nedá použít s koncovým bodem odvozování modelu Azure AI. Musíte použít vyhrazenou adresu URL nasazení, jak je vysvětleno v podpoře rozhraní API služby Batch v dokumentaci k Azure OpenAI.
V koncovém bodu odvození se nepodporuje rozhraní API v reálném čase. Použijte vyhrazenou adresu URL nasazení.