Пакет SDK для Azure AI Foundry
Пакет SDK для Azure AI Foundry — это комплексная цепочка инструментов, предназначенная для упрощения разработки приложений ИИ в Azure. Это позволяет разработчикам:
- Доступ к популярным моделям из различных поставщиков моделей через единый интерфейс
- Простое объединение моделей, данных и служб ИИ для создания приложений, на основе ИИ
- Оценка, отладка и повышение качества приложений в средах разработки, тестирования и рабочей среды
Пакет SDK для ИИ Foundry — это набор пакетов и служб, предназначенных для совместной работы. Клиентская библиотека Azure AI Projects позволяет легко использовать несколько служб с помощью одного клиента проекта и строка подключения. Вы также можете использовать службы и пакеты SDK самостоятельно и подключаться непосредственно к вашим службам.
Если вы хотите перейти вправо и начать создание приложения, ознакомьтесь со следующими сведениями:
Начало работы с проектами
Лучший способ приступить к работе с пакетом SDK для Azure AI Foundry — использовать проект. Проекты ИИ объединяют различные данные, ресурсы и службы, необходимые для создания приложений ИИ. Клиент проекта ИИ позволяет легко получить доступ к этим компонентам проекта из кода с помощью одной строка подключения.
Сначала выполните действия, чтобы создать проект ИИ, если у вас еще нет этого проекта .
Войдите с помощью Azure CLI с помощью той же учетной записи, которую вы используете для доступа к проекту ИИ:
az login
Установите клиентную библиотеку проектов ИИ Azure:
pip install azure-ai-projects azure-identity
Создайте клиент проекта в коде:
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
project_connection_string="your_connection_string"
project = AIProjectClient.from_connection_string(
conn_str=project_connection_string,
credential=DefaultAzureCredential())
dotnet add package Azure.AI.Projects
dotnet add package Azure.Identity
Добавьте инструкции using:
using Azure.Identity;
using Azure.AI.Projects;
Создайте клиент проекта в коде:
var connectionString = "<your_connection_string>";
var projectClient = new AIProjectClient(connectionString, new DefaultAzureCredential());
Скопируйте проект строка подключения на странице обзора проекта и обновите указанное выше строковое значение подключения.
После создания клиента проекта можно использовать клиент для возможностей в следующих разделах.
Обязательно ознакомьтесь со ссылкой и примерами.
Обязательно ознакомьтесь со ссылкой и примерами.
Служба Azure OpenAI
Служба Azure OpenAI предоставляет доступ к моделям OpenAI, включая серии моделей GPT-4o, GPT-4o mini, GPT-4, GPT-4 Turbo с Vision, DALLE-3, Whisper и Embeddings серии моделей с размещением данных, масштабируемостью, безопасностью, безопасностью и корпоративными возможностями Azure.
Если у вас есть код, использующий пакет SDK OpenAI, вы можете легко нацелить код на использование службы Azure OpenAI. Сначала установите пакет SDK OpenAI:
pip install openai
Если у вас есть код, использующий пакет SDK OpenAI, можно использовать клиент проекта для создания AzureOpenAI
клиента, использующего подключение Azure OpenAI проекта:
openai = project.inference.get_azure_openai_client(api_version="2024-06-01")
response = openai.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful writing assistant"},
{"role": "user", "content": "Write me a poem about flowers"},
]
)
print(response.choices[0].message.content)
dotnet add package Azure.AI.OpenAI
Добавьте инструкции using:
using OpenAI.Chat;
using Azure.AI.OpenAI;
Если у вас есть код, использующий пакет SDK OpenAI, можно использовать клиент проекта для создания AzureOpenAI
клиента, использующего подключение Azure OpenAI проекта:
var connections = projectClient.GetConnectionsClient();
ConnectionResponse connection = connections.GetDefaultConnection(ConnectionType.AzureOpenAI, withCredential: true);
var properties = connection.Properties as ConnectionPropertiesApiKeyAuth;
if (properties == null) {
throw new Exception("Invalid auth type, expected API key auth");
}
// Create and use an Azure OpenAI client
AzureOpenAIClient azureOpenAIClient = new(
new Uri(properties.Target),
new AzureKeyCredential(properties.Credentials.Key));
// This must match the custom deployment name you chose for your model
ChatClient chatClient = azureOpenAIClient.GetChatClient("gpt-4o-mini");
ChatCompletion completion = chatClient.CompleteChat(
[
new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
new UserChatMessage("Does Azure OpenAI support customer managed keys?"),
new AssistantChatMessage("Yes, customer managed keys are supported by Azure OpenAI"),
new UserChatMessage("Do other Azure AI services support this too?")
]);
Console.WriteLine($"{completion.Role}: {completion.Content[0].Text}");
Если вы уже используете пакет SDK Для Azure OpenAI непосредственно в службе Azure OpenAI, проект предоставляет удобный способ использования возможностей Службы Azure OpenAI вместе с остальными возможностями ИИ Foundry.
Служба вывода модели искусственного интеллекта Azure
Служба вывода модели искусственного интеллекта Azure предоставляет доступ к мощным моделям от ведущих поставщиков, таких как OpenAI, Microsoft, Meta и многое другое. Эти модели поддерживают такие задачи, как создание контента, сводка и создание кода.
Чтобы использовать службу вывода модели, сначала убедитесь, что проект имеет подключение служб AI (в центре управления).
Установите клиентская azure-ai-inferencing
библиотека:
pip install azure-ai-inference
Клиент проекта можно использовать для получения настроенных и прошедших проверку подлинности ChatCompletionsClient
или EmbeddingsClient
:
# get an chat inferencing client using the project's default model inferencing endpoint
chat = project.inference.get_chat_completions_client()
# run a chat completion using the inferencing client
response = chat.complete(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful writing assistant"},
{"role": "user", "content": "Write me a poem about flowers"},
]
)
print(response.choices[0].message.content)
dotnet add package Azure.AI.Inference
Добавьте инструкции using:
using Azure.AI.Inference;
Клиент проекта можно использовать для получения настроенных и прошедших проверку подлинности ChatCompletionsClient
или EmbeddingsClient
:
var connectionString = Environment.GetEnvironmentVariable("AIPROJECT_CONNECTION_STRING");
var projectClient = new AIProjectClient(connectionString, new DefaultAzureCredential());
ChatCompletionsClient chatClient = projectClient.GetChatCompletionsClient();
var requestOptions = new ChatCompletionsOptions()
{
Messages =
{
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("How many feet are in a mile?"),
},
Model = "gpt-4o-mini"
};
Response<ChatCompletions> response = chatClient.Complete(requestOptions);
Console.WriteLine(response.Value.Content);
Имя модели можно изменить на любую модель, развернутую в службе вывода или службе Azure OpenAI.
Дополнительные сведения об использовании клиента вывода СИ Azure см. в справочнике по модели искусственного интеллекта Azure.
Шаблоны запросов
Клиент вывода поддерживает создание сообщений запроса из шаблонов. Шаблон позволяет динамически создавать запросы с помощью входных данных, доступных во время выполнения.
Чтобы использовать шаблоны запросов, установите azure-ai-inferencing
пакет:
pip install azure-ai-inference
Шаблон запроса можно отобразить из встроенной строки:
from azure.ai.inference.prompts import PromptTemplate
# create a prompt template from an inline string (using mustache syntax)
prompt_template = PromptTemplate.from_string(prompt_template="""
system:
You are a helpful writing assistant.
The user's first name is {{first_name}} and their last name is {{last_name}}.
user:
Write me a poem about flowers
""")
# generate system message from the template, passing in the context as variables
messages = prompt_template.create_messages(first_name="Jane", last_name="Doe")
print(messages)
Примечание.
Ведущие пробелы автоматически обрезаются из входных строк.
Этот код выводит сообщения, которые затем можно передать в вызов завершения чата:
[
{'role': 'system', 'content': "You are a helpful writing assistant.\nThe user's first name is Jane and their last name is Doe."}
{'role': 'user', 'content': 'Write me a poem about flowers'}
]
Вы также можете загрузить запросы из Prompty
файла, чтобы также загрузить имя модели и параметры из .prompty
файла:
from azure.ai.inference.prompts import PromptTemplate
prompt_template = PromptTemplate.from_prompty("myprompt.prompty")
messages = prompt_template.create_messages(first_name="Jane", last_name="Doe")
response = chat.complete(
messages=messages,
model=prompt_template.model_name,
**prompt_template.parameters,
)
Поиск с использованием ИИ Azure
Если у вас есть ресурс поиска ИИ Azure, подключенный к проекту, вы также можете использовать клиент проекта для создания клиента поиска ИИ Azure с помощью подключения к проекту.
Установите клиентную библиотеку поиска ИИ Azure:
pip install azure-search-documents
Создайте экземпляр клиента индекса поиска и (или) индекса поиска по мере необходимости:
from azure.core.credentials import AzureKeyCredential
from azure.ai.projects.models import ConnectionType
from azure.search.documents import SearchClient
from azure.search.documents.indexes import SearchIndexClient
# use the project client to get the default search connection
search_connection = project.connections.get_default(
connection_type=ConnectionType.AZURE_AI_SEARCH,
with_credentials=True)
# Create a client to create and manage search indexes
index_client = SearchIndexClient(
endpoint=search_connection.endpoint_url,
credential=AzureKeyCredential(key=search_connection.key)
)
# Create a client to run search queries
search_client = SearchClient(
index_name="your_index_name",
endpoint=search_connection.endpoint_url,
credential=AzureKeyCredential(key=search_connection.key)
)
dotnet add package Azure.Search.Documents
Добавьте инструкции using:
using Azure.Search.Documents;
using Azure.Search.Documents.Models;
Создайте экземпляр клиента индекса поиска и (или) индекса поиска по мере необходимости:
var connections = projectClient.GetConnectionsClient();
var connection = connections.GetDefaultConnection(ConnectionType.AzureAISearch, withCredential: true).Value;
var properties = connection.Properties as ConnectionPropertiesApiKeyAuth;
if (properties == null) {
throw new Exception("Invalid auth type, expected API key auth");
}
SearchClient searchClient = new SearchClient(
new Uri(properties.Target),
"products",
new AzureKeyCredential(properties.Credentials.Key));
Дополнительные сведения об использовании службы "Поиск ИИ Azure" см . в документации по поиску ИИ Azure.
Служба агента ИИ Azure
Служба агента ИИ Azure — это полностью управляемая служба, предназначенная для обеспечения безопасной сборки, развертывания и масштабирования высококлассных агентов ИИ и расширяемых агентов ИИ. Используя обширную экосистему моделей, инструментов и возможностей от OpenAI, Майкрософт и сторонних поставщиков, служба агента ИИ Azure позволяет создавать агенты для широкого спектра вариантов использования ими.
Чтобы получить доступ к агентам, зарегистрируйтесь в предварительной версии.
Оценка
Вы можете использовать клиент проекта для легкого подключения к службе оценки ИИ Azure и моделей, необходимых для запуска оценщиков.
pip install azure-ai-evaluation
project.scope
С помощью параметра можно создать экземпляр :ViolenceEvaluator
from azure.ai.evaluation import ViolenceEvaluator
from azure.identity import DefaultAzureCredential
# Initializing Violence Evaluator with project information
violence_eval = ViolenceEvaluator(
azure_ai_project=project.scope,
credential=DefaultAzureCredential())
# Running Violence Evaluator on single input row
violence_score = violence_eval(query="what's the capital of france", response="Paris")
print(violence_score)
ПРИМЕЧАНИЕ. Для запуска оценщиков насилия ваш проект должен находиться в восточной части США 2, Центральной Швеции, Северной Части США, Центральной Франции.
Дополнительные сведения см. в этой версии с помощью пакета SDK.
Пакет оценки ИИ Azure еще недоступен для C#. Пример использования запроса и семантического ядра для оценки см. в примере с запросом contoso-chat-csharp-prompty .
Трассировка
Чтобы включить трассировку, сначала убедитесь, что в проекте есть подключенный ресурс Application Insights. Перейдите на страницу трассировки проекта и следуйте инструкциям по созданию или присоединению Application Insights.
Установите пакет OpenTelemetry Для Azure Monitor:
pip install azure-monitor-opentelemetry
Используйте следующий код, чтобы включить инструментирование пакета SDK вывода ИИ Azure и ведение журнала в проекте ИИ:
# Enable instrumentation of AI packages (inference, agents, openai, langchain)
project.telemetry.enable()
# Log traces to the project's application insights resource
application_insights_connection_string = project.telemetry.get_connection_string()
if application_insights_connection_string:
configure_azure_monitor(connection_string=application_insights_connection_string)
Трассировка еще не интегрирована в пакет проектов. Инструкции по инструментированию и отслеживанию трассировки журналов из пакета вывода искусственного интеллекта Azure см. в статье azure-sdk-for-dotnet.
Связанный контент
Ниже приведены некоторые полезные ссылки на другие службы и платформы, которые можно использовать с пакетом SDK для Azure AI Foundry.
Службы ИИ Azure
Клиентские библиотеки.
Библиотеки управления:
Платформы
Машинное обучение Azure
- пакет SDK для Python Машинное обучение Azure (версия 2)
- Машинное обучение Azure CLI (версия 2)
- REST API Машинного обучения Azure
Поток запроса
Семантическое ядро