Поделиться через


Пакет 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:

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

Поток запроса

Семантическое ядро