Udostępnij za pośrednictwem


Zestaw SDK usługi Azure AI Foundry

Zestaw AZURE AI Foundry SDK to kompleksowy łańcuch narzędzi zaprojektowany w celu uproszczenia tworzenia aplikacji sztucznej inteligencji na platformie Azure. Umożliwia deweloperom:

  • Uzyskiwanie dostępu do popularnych modeli od różnych dostawców modeli za pośrednictwem jednego interfejsu
  • Łatwe łączenie modeli, danych i usług sztucznej inteligencji w celu tworzenia aplikacji opartych na sztucznej inteligencji
  • Ocenianie, debugowanie i ulepszanie jakości aplikacji i bezpieczeństwa w środowiskach deweloperskich, testowych i produkcyjnych

Zestaw SDK usługi AI Foundry to zestaw pakietów i usług przeznaczonych do współpracy. Bibliotekę kliencką usługi Azure AI Projects można łatwo używać wielu usług za pośrednictwem jednego klienta projektu i parametry połączenia. Usługi i zestawy SDK można również używać samodzielnie i łączyć się bezpośrednio z usługami.

Jeśli chcesz przejść bezpośrednio do aplikacji i rozpocząć tworzenie aplikacji, zapoznaj się z:

Wprowadzenie do projektów

Najlepszym sposobem rozpoczęcia korzystania z zestawu AZURE AI Foundry SDK jest użycie projektu. Projekty sztucznej inteligencji łączą się ze sobą różne dane, zasoby i usługi potrzebne do tworzenia aplikacji sztucznej inteligencji. Klient projektu sztucznej inteligencji umożliwia łatwy dostęp do tych składników projektu z poziomu kodu przy użyciu jednego parametry połączenia.

Najpierw wykonaj kroki tworzenia projektu sztucznej inteligencji, jeśli jeszcze go nie masz.

Zaloguj się przy użyciu interfejsu wiersza polecenia platformy Azure przy użyciu tego samego konta, którego używasz do uzyskiwania dostępu do projektu sztucznej inteligencji:

az login

Zainstaluj bibliotekę klienta projektów sztucznej inteligencji platformy Azure:

pip install azure-ai-projects azure-identity

Utwórz klienta projektu w kodzie:

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

Dodaj instrukcje using:

using Azure.Identity;
using Azure.AI.Projects;

Utwórz klienta projektu w kodzie:

var connectionString = "<your_connection_string>";
var projectClient = new AIProjectClient(connectionString, new DefaultAzureCredential());

Skopiuj parametry połączenia Project ze strony Przegląd projektu i zaktualizuj wartość parametrów połączeń powyżej.

Po utworzeniu klienta projektu możesz użyć klienta do obsługi funkcji w poniższych sekcjach.

Pamiętaj, aby zapoznać się z dokumentacją i przykładami.

Pamiętaj, aby zapoznać się z dokumentacją i przykładami.

Azure OpenAI Service

Usługa Azure OpenAI Service zapewnia dostęp do modeli OpenAI, w tym modeli GPT-4o, GPT-4o mini, GPT-4, GPT-4 Turbo with Vision, DALLE-3, Whisper i Embeddings z możliwością przechowywania danych, skalowalności, bezpieczeństwa, zabezpieczeń i przedsiębiorstwa platformy Azure.

Jeśli masz kod korzystający z zestawu OpenAI SDK, możesz łatwo kierować kod do korzystania z usługi Azure OpenAI. Najpierw zainstaluj zestaw OpenAI SDK:

pip install openai

Jeśli masz istniejący kod korzystający z zestawu OpenAI SDK, możesz użyć klienta projektu do utworzenia AzureOpenAI klienta korzystającego z połączenia Azure OpenAI projektu:

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

Dodaj instrukcje using:

using OpenAI.Chat;
using Azure.AI.OpenAI;

Jeśli masz istniejący kod korzystający z zestawu OpenAI SDK, możesz użyć klienta projektu do utworzenia AzureOpenAI klienta korzystającego z połączenia Azure OpenAI projektu:

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}");

Jeśli już używasz zestawu Azure OpenAI SDK bezpośrednio w usłudze Azure OpenAI Service, projekt zapewnia wygodny sposób korzystania z funkcji usługi Azure OpenAI Service wraz z pozostałymi funkcjami rozwiązania AI Foundry.

Usługa wnioskowania modelu AI platformy Azure

Usługa wnioskowania modelu sztucznej inteligencji platformy Azure oferuje dostęp do zaawansowanych modeli od wiodących dostawców, takich jak OpenAI, Microsoft, Meta i inne. Te modele obsługują zadania, takie jak generowanie zawartości, podsumowywanie i generowanie kodu.

Aby użyć usługi wnioskowania modelu, najpierw upewnij się, że projekt ma połączenie usług sztucznej inteligencji (w centrum zarządzania).

Zainstaluj bibliotekę azure-ai-inferencing klienta:

pip install azure-ai-inference

Możesz użyć klienta projektu, aby uzyskać skonfigurowany i uwierzytelniony ChatCompletionsClient lub 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

Dodaj instrukcje using:

using Azure.AI.Inference;

Możesz użyć klienta projektu, aby uzyskać skonfigurowany i uwierzytelniony ChatCompletionsClient lub 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);

Nazwę modelu można zmienić na dowolny model wdrożony w usłudze wnioskowania lub usłudze Azure OpenAI.

Aby dowiedzieć się więcej na temat korzystania z klienta wnioskowania sztucznej inteligencji platformy Azure, zapoznaj się z dokumentacją wnioskowania modelu AI platformy Azure.

Szablony monitów

Klient wnioskowania obsługuje tworzenie komunikatów monitów na podstawie szablonów. Szablon umożliwia dynamiczne generowanie monitów przy użyciu danych wejściowych dostępnych w czasie wykonywania.

Aby użyć szablonów monitów, zainstaluj azure-ai-inferencing pakiet:

pip install azure-ai-inference

Szablon monitu można renderować z ciągu wbudowanego:

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)

Uwaga

Wiodące białe znaki są automatycznie przycinane z ciągów wejściowych.

Ten kod generuje komunikaty, które można następnie przekazać do wywołania ukończenia czatu:

[
  {'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'}
]

Możesz również załadować monity z Prompty pliku, umożliwiając również załadowanie nazwy i parametrów modelu z .prompty pliku:

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,
)

Jeśli masz zasób usługi Azure AI Search połączony z projektem, możesz również użyć klienta projektu do utworzenia klienta usługi Azure AI Search przy użyciu połączenia projektu.

Zainstaluj bibliotekę klienta usługi Azure AI Search:

pip install azure-search-documents

Utwórz wystąpienie klienta wyszukiwania i/lub indeksu wyszukiwania zgodnie z potrzebami:

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

Dodaj instrukcje using:

using Azure.Search.Documents;
using Azure.Search.Documents.Models;

Utwórz wystąpienie klienta wyszukiwania i/lub indeksu wyszukiwania zgodnie z potrzebami:

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));

Aby dowiedzieć się więcej na temat korzystania z usługi Azure AI Search, zapoznaj się z dokumentacją usługi Azure AI Search.

Usługa agenta sztucznej inteligencji platformy Azure

Usługa agenta sztucznej inteligencji platformy Azure to w pełni zarządzana usługa umożliwiająca deweloperom bezpieczne tworzenie, wdrażanie i skalowanie wysokiej jakości oraz rozszerzalnych agentów sztucznej inteligencji. Korzystając z rozbudowanego ekosystemu modeli, narzędzi i możliwości oferowanych przez dostawców openAI, Microsoft i innych firm, usługa Azure AI Agent Service umożliwia tworzenie agentów dla szerokiej gamy generowanych przypadków użycia sztucznej inteligencji.

Aby uzyskać dostęp do agentów, zarejestruj się w celu uzyskania dostępu do wersji zapoznawczej.

Ocena

Możesz użyć klienta projektu, aby łatwo nawiązać połączenie z usługą oceny AI platformy Azure i modelami wymaganymi do uruchamiania ewaluatorów.

pip install azure-ai-evaluation

Za pomocą parametru project.scope możemy utworzyć wystąpienie elementu 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)

UWAGA: aby uruchomić ewaluatorów przemocy, twój projekt musi znajdować się w regionie Wschodnie stany USA 2, Szwecja Środkowa, Północno-środkowe stany USA, Francja Środkowa.

Aby dowiedzieć się więcej, zapoznaj się z tematem Ocena przy użyciu zestawu SDK.

Pakiet ewaluacyjny sztucznej inteligencji platformy Azure nie jest jeszcze dostępny dla języka C#. Aby zapoznać się z przykładem używania jądra Prompty i Semantic do oceny, zobacz przykład contoso-chat-csharp-prompty .

Śledzenie

Aby włączyć śledzenie, najpierw upewnij się, że projekt ma dołączony zasób usługi Application Insights. Przejdź do strony Śledzenie projektu i postępuj zgodnie z instrukcjami, aby utworzyć lub dołączyć usługę Application Insights.

Zainstaluj pakiet OpenTelemetry usługi Azure Monitor:

pip install azure-monitor-opentelemetry

Użyj następującego kodu, aby włączyć instrumentację zestawu AZURE AI Inference SDK i rejestrowanie w projekcie sztucznej inteligencji:

# 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)

Śledzenie nie jest jeszcze zintegrowane z pakietem projektów. Aby uzyskać instrukcje dotyczące instrumentacji i rejestrowania śladów z pakietu wnioskowania usługi Azure AI, zobacz azure-sdk-for-dotnet.

Poniżej przedstawiono kilka przydatnych linków do innych usług i struktur, których można używać z zestawem AZURE AI Foundry SDK.

Usługi platformy Azure AI

Biblioteki klienta:

Biblioteki zarządzania:

Platformy

Azure Machine Learning

Przepływ monitu

Jądro semantyczne