在 Azure AI Foundry 中部署模型后,可以通过 Azure AI Foundry API 使用其功能。 在 Azure AI Foundry 模型中,有两个不同的端点和 API 用于使用模型。
模型推理终结点
模型推理终结点(通常采用表单 https://<resource-name>.services.ai.azure.com/models
)允许客户使用相同的身份验证和架构的单个终结点来为资源中已部署的模型生成推理。 此终结点遵循 Azure AI 模型推理 API,Foundry 模型中的所有模型都支持该 API。 它支持以下形式:
路线规划
推理终结点通过将请求内的参数 name
与部署名称进行匹配,将请求路由到给定部署。 这意味着,部署在某些配置下充当给定模型的别名。 这种灵活性允许你在服务中多次部署给定的模型,但如果需要,可以在不同的配置下部署。
例如,如果你创建一个名为 Mistral-large
的部署,则可以如下所示调用此类部署:
使用包管理器(例如 pip)安装包 azure-ai-inference
:
pip install azure-ai-inference
然后,可以使用包来使用模型。 以下示例演示如何创建客户端来使用聊天补全:
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"]),
)
浏览我们的示例,并阅读 API 参考文档以开始使用。
使用 npm 安装包 @azure-rest/ai-inference
:
npm install @azure-rest/ai-inference
然后,可以使用包来使用模型。 以下示例演示如何创建客户端来使用聊天补全:
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)
);
浏览我们的示例,并阅读 API 参考文档以开始使用。
请使用以下命令安装 Azure AI 推理库:
dotnet add package Azure.AI.Inference --prerelease
导入下列命名空间:
using Azure;
using Azure.Identity;
using Azure.AI.Inference;
然后,可以使用包来使用模型。 以下示例演示如何创建客户端来使用聊天补全:
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri("https://<resource>.services.ai.azure.com/models"),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
浏览我们的示例,并阅读 API 参考文档以开始使用。
将包添加到项目:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-inference</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
然后,可以使用包来使用模型。 以下示例演示如何创建客户端来使用聊天补全:
ChatCompletionsClient client = new ChatCompletionsClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("https://<resource>.services.ai.azure.com/models")
.buildClient();
浏览我们的示例,并阅读 API 参考文档以开始使用。
使用参考部分来探索 API 设计以及可用的参数。 例如,聊天补全的参考部分详细介绍了如何使用路由 /chat/completions
根据聊天格式的指令生成预测。 请注意,URL 的根目录包含路径 /models
:
请求
POST https://<resource>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview
api-key: <api-key>
Content-Type: application/json
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());
}
请求
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 OpenAI 推理终结点
Azure AI Foundry 还支持 Azure OpenAI API。 此 API 公开 OpenAI 模型的完整功能,并支持助手、线程、文件和批推理等其他功能。 非 OpenAI 模型也可用于兼容的功能。
Azure OpenAI 终结点(通常采用 https://<resource-name>.openai.azure.com
形式)在部署级别工作,并且它们有自己的 URL,与其中每个终结点相关联。 但是,相同的身份验证机制可以用来消耗它们。 在 Azure OpenAI API 参考页中了解详细信息
每个部署都有一个 URL,该 URL 是 Azure OpenAI 基 URL 和路由 /deployments/<model-deployment-name>
的串联。
使用包管理器(例如 pip)安装包 openai
:
pip install openai --upgrade
然后,可以使用包来使用模型。 以下示例演示如何创建客户端来使用聊天补全:
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",
)
使用 npm 安装包 openai
:
npm install openai
然后,可以使用包来使用模型。 以下示例演示如何创建客户端来使用聊天补全:
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
下面是 Azure AI Foundry 资源中的模型部署的名称。
使用以下命令安装 OpenAI 库:
dotnet add package Azure.AI.OpenAI --prerelease
你可以通过包来使用模型。 以下示例演示如何创建客户端来使用聊天补全:
AzureOpenAIClient client = new(
new Uri("https://<resource>.services.ai.azure.com"),
new ApiKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
将包添加到项目:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-openai</artifactId>
<version>1.0.0-beta.16</version>
</dependency>
然后,可以使用包来使用模型。 以下示例演示如何创建客户端来使用聊天补全:
OpenAIClient client = new OpenAIClientBuilder()
.credential(new AzureKeyCredential("{key}"))
.endpoint("https://<resource>.services.ai.azure.com")
.buildClient();
使用参考部分来探索 API 设计以及可用的参数。 例如,聊天补全的参考部分详细介绍了如何使用路由 /chat/completions
根据聊天格式的指令生成预测:
请求
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
下面是 Azure AI Foundry 资源中的模型部署的名称。
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
下面是 Azure AI Foundry 资源中的模型部署的名称。
请求
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
下面是 Azure AI Foundry 资源中的模型部署的名称。
后续步骤