Microsoft Foundry Models обеспечивают возможность доступа к самым мощным моделям от ведущих поставщиков моделей через одну конечную точку и набор данных для входа. Эта возможность позволяет переключаться между моделями и использовать их в приложении без изменения кода.
В этой статье объясняется, как службы Foundry упорядочивают модели и как использовать конечную точку вывода для доступа к ним.
Ресурс Foundry может содержать множество развертываний моделей. Вы платите только за вывод, выполненный при развертывании моделей. Развертывания являются Azure ресурсами, поэтому они подвергаются Azure политикам.
Установите пакет openai с помощью диспетчера пакетов, например pip:
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",
)
Установите пакет openai с помощью npm:
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 — это имя развертывания модели в ресурсе Microsoft 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 Ниже приведено имя развертывания модели в ресурсе Foundry.
response = client.chat.completions.create(
model="deepseek-v3-0324", # Replace with your model deployment 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 — это имя развертывания модели в ресурсе Microsoft 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 Ниже приведено имя развертывания модели в ресурсе Foundry.
Модели, развернутые в Foundry Models в Foundry Tools, поддерживают бесключевую аутентификацию с помощью Microsoft Entra ID. Авторизация без ключей повышает безопасность, упрощает взаимодействие с пользователем, снижает операционную сложность и обеспечивает надежную поддержку соответствия требованиям для современной разработки. Это делает бессерверную авторизацию надежным выбором для организаций, внедряющих безопасные и масштабируемые решения по управлению удостоверениями.
Установите пакет SDK OpenAI с помощью диспетчера пакетов, например pip:
pip install openai
Для проверки подлинности Microsoft Entra ID также установите следующее:
pip install azure-identity
Используйте пакет для работы с моделью. В следующем примере показано, как создать клиента для потребления завершения чата с Microsoft Entra ID и выполнить тестовый запрос к конечной точке завершения чата, используя развернутую модель.
Замените <resource> именем вашего ресурса Foundry. Найдите его на портале Azure или запустив az cognitiveservices account list. Замените DeepSeek-V3.1 фактическим именем развертывания.
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(),
"https://ai.azure.com/.default"
)
client = OpenAI(
base_url="https://<resource>.openai.azure.com/openai/v1/",
api_key=token_provider,
)
completion = client.chat.completions.create(
model="DeepSeek-V3.1", # Required: your deployment name
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is Azure AI?"}
]
)
print(completion.choices[0].message.content)
Ожидаемые выходные данные
Azure AI is a comprehensive suite of artificial intelligence services and tools from Microsoft that enables developers to build intelligent applications. It includes services for natural language processing, computer vision, speech recognition, and machine learning capabilities.
Справочные материалы: OpenAI Python SDK и DefaultAzureCredential class.
Установите пакет SDK OpenAI:
dotnet add package OpenAI
Для проверки подлинности Microsoft Entra ID также установите пакет Azure.Identity:
dotnet add package Azure.Identity
Импортируйте следующие пространства имен:
using Azure.Identity;
using OpenAI;
using OpenAI.Chat;
using System.ClientModel.Primitives;
Затем используйте пакет для использования модели. В следующем примере показано, как создать клиент для работы с генерацией текста в чате с Microsoft Entra ID, а затем выполнить тестовый вызов к эндпоинту завершения чата, используя развернутую модель.
Замените <resource> именем ресурса Foundry (найдите его на портале Azure). Замените gpt-4o-mini фактическим именем развертывания.
#pragma warning disable OPENAI001
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://ai.azure.com/.default"
);
ChatClient client = new(
model: "gpt-4o-mini", // Your deployment name
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions() {
Endpoint = new Uri("https://<resource>.openai.azure.com/openai/v1/")
}
);
ChatCompletion completion = client.CompleteChat(
new SystemChatMessage("You are a helpful assistant."),
new UserChatMessage("What is Azure AI?")
);
Console.WriteLine(completion.Content[0].Text);
Ожидаемые выходные данные:
Azure AI is a comprehensive suite of artificial intelligence services and tools from Microsoft that enables developers to build intelligent applications. It includes services for natural language processing, computer vision, speech recognition, and machine learning capabilities.
Ссылки: OpenAI .NET SDK и класс DefaultAzureCredential.
Установите пакет SDK OpenAI с помощью npm:
npm install openai
Для проверки подлинности Microsoft Entra ID также установите следующее:
npm install @azure/identity
Затем используйте пакет для использования модели. В следующем примере показано, как создать клиент для работы с генерацией текста в чате с Microsoft Entra ID, а затем выполнить тестовый вызов к эндпоинту завершения чата, используя развернутую модель.
Замените <resource> именем ресурса Foundry (найдите его на портале Azure или запустив az cognitiveservices account list). Замените DeepSeek-V3.1 фактическим именем развертывания.
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import { OpenAI } from "openai";
const tokenProvider = getBearerTokenProvider(
new DefaultAzureCredential(),
'https://ai.azure.com/.default'
);
const client = new OpenAI({
baseURL: "https://<resource>.openai.azure.com/openai/v1/",
apiKey: tokenProvider
});
const completion = await client.chat.completions.create({
model: "DeepSeek-V3.1", // Required: your deployment name
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "What is Azure AI?" }
]
});
console.log(completion.choices[0].message.content);
Ожидаемые выходные данные:
Azure AI is a comprehensive suite of artificial intelligence services and tools from Microsoft that enables developers to build intelligent applications. It includes services for natural language processing, computer vision, speech recognition, and machine learning capabilities.
Справочник. Пакет SDK для OpenAI Node.js и класс DefaultAzureCredential.
Добавьте пакет SDK OpenAI в проект. Проверьте репозиторий OpenAI Java GitHub для получения последней версии и инструкций по установке.
Для проверки подлинности Microsoft Entra ID также добавьте:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.0</version>
</dependency>
Затем используйте пакет для использования модели. В следующем примере показано, как создать клиент для работы с генерацией текста в чате с Microsoft Entra ID, а затем выполнить тестовый вызов к эндпоинту завершения чата, используя развернутую модель.
Замените <resource> именем ресурса Foundry (найдите его на портале Azure). Замените DeepSeek-V3.1 фактическим именем развертывания.
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.models.chat.completions.*;
DefaultAzureCredential tokenCredential = new DefaultAzureCredentialBuilder().build();
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://<resource>.openai.azure.com/openai/v1/")
.credential(BearerTokenCredential.create(
AuthenticationUtil.getBearerTokenSupplier(
tokenCredential,
"https://ai.azure.com/.default"
)
))
.build();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.addSystemMessage("You are a helpful assistant.")
.addUserMessage("What is Azure AI?")
.model("DeepSeek-V3.1") // Required: your deployment name
.build();
ChatCompletion completion = client.chat().completions().create(params);
System.out.println(completion.choices().get(0).message().content());
Ожидаемые выходные данные:
Azure AI is a comprehensive suite of artificial intelligence services and tools from Microsoft that enables developers to build intelligent applications. It includes services for natural language processing, computer vision, speech recognition, and machine learning capabilities.
Справочник: пакет SDK OpenAI Java и DefaultAzureCredential class.
Изучите структуру API в справочном разделе, чтобы узнать, какие параметры доступны. Укажите маркер проверки подлинности в заголовке Authorization. Например, в разделе "Справочник по завершению чата " описано, как использовать /chat/completions маршрут для создания прогнозов на основе инструкций, отформатированных в чате. Путь /models включен в корневой каталог URL-адреса:
Запрос
Замените <resource> именем ресурса Foundry (найдите его на портале Azure или запустив az cognitiveservices account list). Замените MAI-DS-R1 фактическим именем развертывания.
Base_url будет принимать форматы как https://<resource>.openai.azure.com/openai/v1/, так и https://<resource>.services.ai.azure.com/openai/v1/.
curl -X POST https://<resource>.openai.azure.com/openai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_OPENAI_AUTH_TOKEN" \
-d '{
"model": "MAI-DS-R1",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Explain what the bitter lesson is?"
}
]
}'
Ответ
Если проверка подлинности выполнена успешно, вы получите 200 OK ответ с завершением чата в тексте ответа:
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1738368234,
"model": "MAI-DS-R1",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "The bitter lesson refers to a key insight in AI research that emphasizes the importance of general-purpose learning methods that leverage computation, rather than human-designed domain-specific approaches. It suggests that methods which scale with increased computation tend to be more effective in the long run."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 52,
"total_tokens": 80
}
}
Маркеры должны выдаваться с областью https://ai.azure.com/.defaultдействия.
Для тестирования самый простой способ получить действительный маркер для учетной записи пользователя — использовать Azure CLI. В консоли выполните следующую команду Azure CLI:
az account get-access-token --resource https://cognitiveservices.azure.com --query "accessToken" --output tsv
Эта команда выводит маркер доступа, который можно сохранить в переменной $AZURE_OPENAI_AUTH_TOKEN среды.
Справочник. API завершения чата