Sdílet prostřednictvím


Sada Azure AI Foundry SDK

Sada Azure AI Foundry SDK je komplexní sada nástrojů navržená tak, aby zjednodušila vývoj aplikací AI v Azure. Umožňuje vývojářům:

  • Přístup k oblíbeným modelům od různých poskytovatelů modelů prostřednictvím jediného rozhraní
  • Snadné kombinování modelů, dat a služeb AI za účelem vytváření aplikací využívajících AI
  • Vyhodnocení, ladění a zlepšení kvality a bezpečnosti aplikací napříč vývojovými, testovacími a produkčními prostředími

Sada Azure AI Foundry SDK je sada balíčků a služeb navržených pro spolupráci. Klientskou knihovnu Azure AI Projects můžete použít k snadnému používání více služeb prostřednictvím jednoho klienta projektu a připojovací řetězec. Můžete také používat služby a sady SDK samostatně a připojovat se přímo k vašim službám.

Pokud chcete rovnou začít vytvářet aplikaci, podívejte se na:

Začínáme s projekty

Nejlepší způsob, jak začít používat sadu Azure AI Foundry SDK, je použití projektu. Projekty AI spojují různá data, prostředky a služby, které potřebujete k vytváření aplikací AI. Klient projektu AI umožňuje snadný přístup k těmto komponentám projektu z kódu pomocí jediného připojovací řetězec.

Pokud ho ještě nemáte, postupujte podle kroků a vytvořte projekt AI.

Přihlaste se pomocí Azure CLI pomocí stejného účtu, který používáte pro přístup k projektu AI:

az login

Nainstalujte klientskou knihovnu projektů Azure AI:

pip install azure-ai-projects azure-identity

Vytvořte klienta projektu v kódu:

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

Přidat příkazy using:

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

Vytvořte klienta projektu v kódu:

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

Zkopírujte projekt připojovací řetězec ze stránky Přehled projektu a aktualizujte hodnotu připojovacího řetězce výše.

Jakmile vytvoříte klienta projektu, můžete ho použít pro funkce v následujících částech.

Nezapomeňte si prohlédnout referenční informace a ukázky.

Nezapomeňte si prohlédnout referenční informace a ukázky.

Azure OpenAI Service

Služba Azure OpenAI poskytuje přístup k modelům OpenAI, včetně modelů GPT-4o, GPT-4o mini, GPT-4, GPT-4 Turbo s vision, DALLE-3, Whisper a Embeddings s možností rezidence dat, škálovatelnosti, bezpečnosti, zabezpečení a podniku v Azure.

Pokud máte kód, který používá sadu OpenAI SDK, můžete snadno cílit na použití služby Azure OpenAI. Nejprve nainstalujte sadu OpenAI SDK:

pip install openai

Pokud máte existující kód, který používá sadu OpenAI SDK, můžete pomocí klienta projektu vytvořit AzureOpenAI klienta, který používá připojení Azure OpenAI vašeho 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

Přidat příkazy using:

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

Pokud máte existující kód, který používá sadu OpenAI SDK, můžete pomocí klienta projektu vytvořit AzureOpenAI klienta, který používá připojení Azure OpenAI vašeho 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}");

Pokud už používáte sadu Azure OpenAI SDK přímo se službou Azure OpenAI, poskytuje projekt pohodlný způsob použití funkcí služby Azure OpenAI společně se zbývajícími možnostmi Azure AI Foundry.

Služba odvozování modelů Azure AI

Služba odvozování modelů Azure AI nabízí přístup k výkonným modelům od předních poskytovatelů, jako jsou OpenAI, Microsoft, Meta a další. Tyto modely podporují úlohy, jako je generování obsahu, sumarizace a generování kódu.

Pokud chcete použít službu odvozování modelu, nejprve se ujistěte, že má váš projekt připojení AI Services (v centru pro správu).

Nainstalujte klientskou knihovnu azure-ai-inference :

pip install azure-ai-inference

Klienta projektu můžete použít k získání nakonfigurovaného a ověřeného ChatCompletionsClient klienta nebo 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

Přidat příkazy using:

using Azure.AI.Inference;

Klienta projektu můžete použít k získání nakonfigurovaného a ověřeného ChatCompletionsClient klienta nebo 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);

Název modelu můžete změnit na jakýkoli model, který jste nasadili do služby odvozování nebo služby Azure OpenAI.

Další informace o používání klienta odvozování Azure AI najdete v referenčních informacích k odvozování modelu Azure AI.

Šablony výzvy

Klient odvozování podporuje vytváření zpráv s výzvou ze šablon. Šablona umožňuje dynamicky generovat výzvy pomocí vstupů, které jsou k dispozici za běhu.

Pokud chcete použít šablony výzvy, nainstalujte azure-ai-inference balíček:

pip install azure-ai-inference

Šablonu výzvy můžete vykreslit z vloženého řetězce:

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)

Poznámka:

Úvodní prázdné znaky se automaticky oříznou ze vstupních řetězců.

Tento kód vypíše zprávy, které pak můžete předat do volání dokončení chatu:

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

Můžete také načíst výzvy ze Prompty souboru, které vám umožní načíst také název a parametry modelu ze .prompty souboru:

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

Pokud máte k projektu připojený prostředek Azure AI Search, můžete pomocí klienta projektu vytvořit klienta Azure AI Search pomocí připojení k projektu.

Nainstalujte klientskou knihovnu Azure AI Search:

pip install azure-search-documents

Vytvořte instanci klienta indexu vyhledávání nebo vyhledávání podle potřeby:

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

Přidat příkazy using:

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

Vytvořte instanci klienta indexu vyhledávání nebo vyhledávání podle potřeby:

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

Další informace o používání služby Azure AI Search najdete v dokumentaci ke službě Azure AI Search.

Služba agenta Azure AI

Azure AI Agent Service je plně spravovaná služba navržená tak, aby vývojářům mohla bezpečně vytvářet, nasazovat a škálovat vysoce kvalitní a rozšiřitelné agenty AI. Díky rozsáhlému ekosystému modelů, nástrojů a funkcí od poskytovatelů OpenAI, Microsoftu a třetích stran umožňuje služba Azure AI Agent Service vytvářet agenty pro celou řadu případů použití generující umělé inteligence.

Pokud chcete získat přístup k agentům, zaregistrujte se do verze Preview.

Hodnocení

Pomocí klienta projektu se můžete snadno připojit ke službě hodnocení Azure AI a k modelům potřebným pro spuštění vyhodnocovačů.

pip install azure-ai-evaluation

Pomocí parametru project.scope můžeme vytvořit ViolenceEvaluatorinstanci :

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)

POZNÁMKA: Aby bylo možné spustit vyhodnocování násilí, musí být váš projekt v oblasti USA – východ 2, Švédsko – střed, USA – středosever, Francie – střed.

Další informace najdete v tématu Vyhodnocení pomocí sady SDK.

Zkušební balíček Azure AI ještě není pro C# k dispozici. Ukázku použití prompty a sémantického jádra k vyhodnocení najdete v ukázce contoso-chat-csharp-prompty .

Sledování

Pokud chcete povolit trasování, nejprve se ujistěte, že váš projekt obsahuje připojený prostředek Application Insights. Přejděte na stránku Trasování projektu a postupujte podle pokynů k vytvoření nebo připojení Application Insights.

Nainstalujte balíček OpenTelemetry služby Azure Monitor:

pip install azure-monitor-opentelemetry

Pomocí následujícího kódu povolte instrumentaci sady Azure AI Inference SDK a protokolování do projektu AI:

from azure.monitor.opentelemetry import configure_azure_monitor

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

Trasování ještě není integrované do balíčku projektů. Pokyny k instrumentaci a protokolování trasování z balíčku odvozování AI Azure najdete v tématu azure-sdk-for-dotnet.

Níže najdete několik užitečných odkazů na jiné služby a architektury, které můžete použít se sadou Azure AI Foundry SDK.

Azure AI Služby

Klientské knihovny:

Knihovny pro správu:

Architektury

Azure Machine Learning

Tok výzvy

Sémantické jádro