Azure AI サービスにおいて Azure AI 推論を使用すると、顧客は 1 つのエンドポイントと資格情報を使用して、フラグシップ モデル プロバイダーの最も強力なモデルを実行できるようになります。 つまり、1 行のコードも変更することなく、モデルを切り替えてお使いのアプリケーションから実行できます。
この記事では、推論エンドポイントを使用してそれらを呼び出す方法について説明します。
エンドポイント
Azure AI サービスは、ユーザーが求めている作業の種類に応じて複数のエンドポイントを公開します。
Azure AI モデル推論エンドポイント
Azure OpenAI エンドポイント
Azure AI 推論エンドポイント (通常は https://<resource-name>.services.ai.azure.com/models の形式) を使用すると、顧客は同じ認証とスキーマを持つ 1 つのエンドポイントを使用して、リソース内にデプロイされたモデルの推論を生成できるようになります。 すべてのモデルでこの機能がサポートされています。 このエンドポイントは、Azure AI Model Inference API に従います。
AI サービスにデプロイされた Azure OpenAI モデルでは、Azure OpenAI API もサポートされます (通常は https://<resource-name>.openai.azure.com の形式)。 このエンドポイントでは、OpenAI モデルのすべての機能が公開され、アシスタント、スレッド、ファイル、バッチ推論などのさらに多くの機能がサポートされます。
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"]),
)
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)
);
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
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());
}
Request
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"
}
Azure AI サービスの Azure AI モデル推論にデプロイされたモデルは、Microsoft Entra ID を使用したキーレス認証をサポートしています。 キーレス認証により、セキュリティが強化され、ユーザー エクスペリエンスが簡素化され、運用の複雑さが軽減され、最新の開発に対する堅牢なコンプライアンス サポートが提供されます。 これは、セキュリティで保護されたスケーラブルな ID 管理ソリューションを導入する組織にとって強力な選択肢となります。