Delen via


De Azure AI Foundry SDK

De Azure AI Foundry SDK is een uitgebreide hulpprogrammaketen die is ontworpen om de ontwikkeling van AI-toepassingen in Azure te vereenvoudigen. Hiermee kunnen ontwikkelaars het volgende doen:

  • Toegang krijgen tot populaire modellen van verschillende modelproviders via één interface
  • Eenvoudig modellen, gegevens en AI-services combineren om ai-toepassingen te bouwen
  • De kwaliteit en veiligheid van toepassingen evalueren, fouten opsporen en verbeteren in ontwikkel-, test- en productieomgevingen

De Azure AI Foundry SDK is een set pakketten en services die zijn ontworpen om samen te werken. U kunt de Azure AI Projects-clientbibliotheek gebruiken om eenvoudig meerdere services te gebruiken via één projectclient en verbindingsreeks. U kunt ook zelf services en SDK's gebruiken en rechtstreeks verbinding maken met uw services.

Als u meteen wilt beginnen met het bouwen van een app, raadpleegt u:

Aan de slag met Projecten

De beste manier om aan de slag te gaan met de Azure AI Foundry SDK is met behulp van een project. AI-projecten verbinden verschillende gegevens, assets en services die u nodig hebt om AI-toepassingen te bouwen. Met de AI-projectclient kunt u eenvoudig toegang krijgen tot deze projectonderdelen vanuit uw code met behulp van één verbindingsreeks.

Voer eerst de stappen uit om een AI-project te maken als u er nog geen hebt.

Meld u aan met de Azure CLI met hetzelfde account dat u gebruikt voor toegang tot uw AI-project:

az login

Installeer de Clientbibliotheek van Azure AI-projecten:

pip install azure-ai-projects azure-identity

Maak een projectclient in code:

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

Gebruiksinstructies toevoegen:

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

Maak een projectclient in code:

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

Kopieer het project verbindingsreeks op de pagina Overzicht van het project en werk de bovenstaande verbindingsreekswaarde bij.

Nadat u de projectclient hebt gemaakt, kunt u de client gebruiken voor de mogelijkheden in de volgende secties.

Zorg ervoor dat u de naslaginformatie en voorbeelden bekijkt.

Zorg ervoor dat u de naslaginformatie en voorbeelden bekijkt.

Azure OpenAI Service

De Azure OpenAI-service biedt toegang tot de modellen van OpenAI, waaronder de modelreeks GPT-4o, GPT-4o, GPT-4, GPT-4 Turbo met Vision, DALLE-3, Whisper en Embeddings met de gegevenslocatie, schaalbaarheid, veiligheid, beveiliging en bedrijfsmogelijkheden van Azure.

Als u code hebt die gebruikmaakt van de OpenAI SDK, kunt u uw code eenvoudig richten op het gebruik van de Azure OpenAI-service. Installeer eerst de OpenAI SDK:

pip install openai

Als u bestaande code hebt die gebruikmaakt van de OpenAI SDK, kunt u de projectclient gebruiken om een AzureOpenAI client te maken die gebruikmaakt van de Azure OpenAI-verbinding van uw project:

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

Gebruiksinstructies toevoegen:

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

Als u bestaande code hebt die gebruikmaakt van de OpenAI SDK, kunt u de projectclient gebruiken om een AzureOpenAI client te maken die gebruikmaakt van de Azure OpenAI-verbinding van uw project:

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

Als u de Azure OpenAI SDK al rechtstreeks gebruikt voor de Azure OpenAI-service, biedt het project een handige manier om azure OpenAI Service-mogelijkheden te gebruiken naast de rest van de Azure AI Foundry-mogelijkheden.

Azure AI-modeldeductieservice

De azure AI-modeldeductieservice biedt toegang tot krachtige modellen van toonaangevende providers zoals OpenAI, Microsoft, Meta en meer. Deze modellen ondersteunen taken zoals het genereren van inhoud, samenvatting en het genereren van code.

Als u de modeldeductieservice wilt gebruiken, moet u eerst controleren of uw project een AI Services-verbinding heeft (in het beheercentrum).

Installeer de azure-ai-inference clientbibliotheek:

pip install azure-ai-inference

U kunt de projectclient gebruiken om een geconfigureerde en geverifieerde ChatCompletionsClient of 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

Gebruiksinstructies toevoegen:

using Azure.AI.Inference;

U kunt de projectclient gebruiken om een geconfigureerde en geverifieerde ChatCompletionsClient of 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);

U kunt de modelnaam wijzigen in elk model dat u hebt geïmplementeerd in de deductieservice of Azure OpenAI-service.

Voor meer informatie over het gebruik van de Azure AI-deductieclient raadpleegt u de naslaginformatie over het Azure AI-modeldeductie.

Promptsjablonen

De deductieclient ondersteunt het maken van promptberichten van sjablonen. Met de sjabloon kunt u dynamisch prompts genereren met behulp van invoer die tijdens runtime beschikbaar zijn.

Als u promptsjablonen wilt gebruiken, installeert u het azure-ai-inference pakket:

pip install azure-ai-inference

U kunt een promptsjabloon weergeven vanuit een inlinetekenreeks:

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)

Notitie

Voorloopspaties worden automatisch afgekapt uit invoertekenreeksen.

Met deze code worden berichten uitgevoerd die u vervolgens kunt doorgeven aan een chat-voltooiingsgesprek:

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

U kunt ook prompts uit een Prompty bestand laden, zodat u ook de modelnaam en parameters uit het .prompty bestand kunt laden:

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

Als u een Azure AI Search-resource hebt verbonden met uw project, kunt u ook de projectclient gebruiken om een Azure AI Search-client te maken met behulp van de projectverbinding.

Installeer de Azure AI Search-clientbibliotheek:

pip install azure-search-documents

Instantieer de zoek- en/of zoekindexclient naar wens:

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

Gebruiksinstructies toevoegen:

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

Instantieer de zoek- en/of zoekindexclient naar wens:

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

Raadpleeg de Documentatie van Azure AI Search voor meer informatie over het gebruik van Azure AI Search.

Azure AI Agent Service

Azure AI Agent Service is een volledig beheerde service die ontwikkelaars in staat stelt veilig hoogwaardige en uitbreidbare AI-agents te bouwen, implementeren en schalen. Met behulp van een uitgebreid ecosysteem van modellen, hulpprogramma's en mogelijkheden van OpenAI-, Microsoft- en externe providers maakt Azure AI Agent Service het mogelijk om agents te bouwen voor een breed scala aan generatieve AI-gebruiksvoorbeelden.

Meld u aan voor de preview om toegang te krijgen tot agents.

Beoordeling

U kunt de projectclient gebruiken om eenvoudig verbinding te maken met de Azure AI-evaluatieservice en modellen die nodig zijn voor het uitvoeren van uw evaluators.

pip install azure-ai-evaluation

Met behulp van de project.scope parameter kunnen we een instantie maken van: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)

OPMERKING: om gewelds evaluators uit te voeren moet uw project zich in VS - oost 2, Zweden - centraal, VS - noord-centraal, Frankrijk - centraal.

Bekijk Evaluatie met behulp van de SDK voor meer informatie.

Er is nog geen Azure AI-evaluatiepakket beschikbaar voor C#. Zie het voorbeeld contoso-chat-csharp-prompty voor meer informatie over het gebruik van Prompty en Semantic Kernel voor evaluatie.

Tracering

Als u tracering wilt inschakelen, moet u eerst controleren of uw project een gekoppelde Application Insights-resource heeft. Ga naar de pagina Tracering van uw project en volg de instructies om Application Insights te maken of bij te voegen.

Installeer het Azure Monitor OpenTelemetry-pakket:

pip install azure-monitor-opentelemetry

Gebruik de volgende code om instrumentatie van de Azure AI-deductie-SDK in te schakelen en logboekregistratie voor uw AI-project in te schakelen:

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)

Tracering is nog niet geïntegreerd in het projectenpakket. Zie azure-sdk-for-dotnet voor instructies over het instrumenteren en vastleggen van traceringen van het Azure AI-deductiepakket.

Hieronder vindt u enkele nuttige koppelingen naar andere services en frameworks die u kunt gebruiken met de Azure AI Foundry SDK.

Azure AI Services

Clientbibliotheken:

Beheerbibliotheken:

Frameworks

Azure Machine Learning

Promptstroom

Semantic Kernel