Freigeben über


Das Azure KI Foundry SDK

Das Azure KI Foundry SDK ist eine umfassende Toolkette, die die Entwicklung von KI-Anwendungen in Azure vereinfacht. Das SDK bietet Entwicklern folgende Möglichkeiten:

  • Zugreifen auf beliebte Modelle von verschiedenen Modellanbietern aus über eine einzige Benutzeroberfläche
  • Einfaches Kombinieren von Modellen, Daten und KI-Diensten zum Erstellen von KI-gesteuerten Anwendungen
  • Auswerten, Debuggen und Verbessern der Anwendungsqualität und -sicherheit in Entwicklungs-, Test- und Produktionsumgebungen

Das Azure KI Foundry SDK umfasst verschiedene Pakete und Dienste, die zusammenwirken. Mit der Azure KI-Projektclientbibliothek können Sie mehrere Dienste mühelos über einen einzelnen Projektclient und eine einzelne Verbindungszeichenfolge verwenden. Sie können Dienste und SDKs auch allein verwenden und direkt mit Ihren Diensten verbinden.

Wenn Sie direkt beginnen und eine App erstellen möchten, lesen Sie folgenden Artikel:

Erste Schritte mit Projekten

Der beste Einstieg in das Azure KI Foundry SDK besteht in der Verwendung eines Projekts. KI-Projekte verbinden verschiedene Daten, Ressourcen und Dienste, die Sie zum Erstellen von KI-Anwendungen benötigen. Mit dem KI-Projektclient können Sie mithilfe einer einzelnen Verbindungszeichenfolge mühelos über Ihren Code auf diese Projektkomponenten zugreifen.

Erstellen Sie zunächst ein KI-Projekt, wenn Sie noch keines haben.

Melden Sie sich mit demselben Konto bei der Azure CLI an, das Sie für den Zugriff auf Ihr KI-Projekt verwenden:

az login

Installieren Sie die Clientbibliothek für Azure KI-Projekte:

pip install azure-ai-projects azure-identity

Erstellen Sie einen Projektclient im 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

Hinzufügen mit Anweisungen:

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

Erstellen Sie einen Projektclient im Code:

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

Kopieren Sie auf der Seite Übersicht des Projekts die Projektverbindungszeichenfolge, und aktualisieren Sie den obigen Wert der Verbindungszeichenfolge.

Nachdem Sie den Projektclient erstellt haben, können Sie den Client für die Funktionen in den folgenden Abschnitten verwenden.

Sehen Sie sich unbedingt die Referenz und Beispielean.

Sehen Sie sich unbedingt die Referenz und Beispielean.

Azure OpenAI Service

Azure OpenAI Service bietet Zugriff auf OpenAI-Modelle, einschließlich GPT-4o, GPT-4o mini, GPT-4, GPT-4 Turbo mit Vision, DALLE-3, Whisper und Embeddings-Modellreihen mit den Datenresidenz-, Skalierbarkeits-, Sicherheits- und Enterprise-Funktionen von Azure.

Wenn Sie Code haben, der das OpenAI SDK verwendet, können Sie dieses mühelos auch auf Azure OpenAI Service ausrichten. Installieren Sie zunächst das OpenAI SDK:

pip install openai

Wenn Ihr bestehender Code das OpenAI SDK verwendet, können Sie mit dem Projektclient einen AzureOpenAI-Client erstellen, der die Azure OpenAI-Verbindung Ihres Projekts verwendet:

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

Hinzufügen mit Anweisungen:

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

Wenn Ihr bestehender Code das OpenAI SDK verwendet, können Sie mit dem Projektclient einen AzureOpenAI-Client erstellen, der die Azure OpenAI-Verbindung Ihres Projekts verwendet:

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

Wenn Sie das Azure OpenAI SDK bereits direkt für Azure OpenAI Service verwenden, bietet das Projekt eine bequemer Weg, Funktionen von Azure OpenAI Service zusammen mit den übrigen Azure KI Foundry-Funktionen zu nutzen.

Azure KI-Modellinferenz-API

Der Modellinferenzdienst von Azure KI bietet Zugriff auf leistungsstarke Modelle von führenden Anbietern wie OpenAI, Microsoft und Meta. Diese Modelle unterstützen Tasks wie Inhaltsgenerierung, Zusammenfassung und Codegenerierung.

Um den Modellinferenzdienst zu verwenden, müssen Sie zunächst sicherstellen, dass Ihr Projekt (im Management Center) über eine AI Services-Verbindung verfügt.

Installieren der azure-ai-inference Clientbibliothek:

pip install azure-ai-inference

Sie können mithilfe des Projektclients eine konfigurierte und authentifizierte ChatCompletionsClient- oder EmbeddingsClient-Instanz abrufen:

# 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

Hinzufügen mit Anweisungen:

using Azure.AI.Inference;

Sie können mithilfe des Projektclients eine konfigurierte und authentifizierte ChatCompletionsClient- oder EmbeddingsClient-Instanz abrufen:

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

Sie können den Modellnamen in jedes Modell ändern, das Sie für den Inferenzdienst oder Azure OpenAI Service bereitgestellt haben.

Weitere Informationen zur Verwendung des Azure KI-Inferenzclients finden Sie in der Referenz zur Azure KI-Modellinferenz.

Promptvorlagen

Der Inferenzclient unterstützt das Erstellen von Promptnachrichten aus Vorlagen. Mit Vorlagen können Sie Prompts dynamisch mithilfe von Eingaben generieren, die zur Laufzeit verfügbar sind.

Um Promptvorlagen zu verwenden, müssen Sie das azure-ai-inference-Paket installieren:

pip install azure-ai-inference

Sie können eine Promptvorlage aus einer Inlinezeichenfolge rendern:

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)

Hinweis

Führende Leerzeichen werden automatisch aus Eingabezeichenfolgen gekürzt.

Dieser Code gibt Nachrichten aus, die Sie dann an einen Chatabschlussaufruf übergeben können:

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

Sie können Prompts auch aus einer Prompty-Datei laden, wodurch Sie auch den Modellnamen und die Parameter aus der .prompty-Datei laden können:

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

Wenn eine Azure KI-Suche-Ressource mit Ihrem Projekt verbunden ist, können Sie auch mithilfe des Projektclients und der Projektverbindung einen Azure KI-Suche-Client erstellen.

Installieren Sie die Clientbibliothek von Azure KI-Suche:

pip install azure-search-documents

Instanziieren Sie die Suche und/oder den Suchindexclient nach Bedarf:

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

Hinzufügen mit Anweisungen:

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

Instanziieren Sie die Suche und/oder den Suchindexclient nach Bedarf:

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

Weitere Informationen zur Verwendung von Azure KI-Suche finden Sie in der Dokumentation zu Azure KI-Suche.

Azure KI-Agent-Dienst

Azure KI Agent Service ist ein vollständig verwalteter Dienst, mit dem Entwickler hochwertige und erweiterbare KI-Agents sicher erstellen, bereitstellen und skalieren können. Azure KI Agent Service nutzt ein umfangreiches Ökosystem aus Modellen, Tools und Funktionen von OpenAI, Microsoft und Drittanbietern und ermöglicht die Erstellung von Agents für zahlreiche Anwendungsfälle von generativer KI.

Registrieren Sie sich für die Vorschau, um Zugriff auf Agents zu erhalten.

Auswertung

Mithilfe des Projektclients können Sie mühelos eine Verbindung mit dem Azure KI-Auswertungsdienst und Modellen herstellen, die für die Ausführung Ihrer Evaluators erforderlich sind.

pip install azure-ai-evaluation

Mit dem project.scope-Parameter kann ein ViolenceEvaluator instanziiert werden:

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)

HINWEIS: Um Gewalt-Evaluators ausführen zu können, muss sich Ihr Projekt in der Region „USA, Osten 2“, „Schweden, Mitte“, „USA, Norden-Mitte“ oder „Frankreich, Mitte“ befinden.

Weitere Informationen finden Sie unter Auswertung mit dem SDK.

Ein Azure KI-Bewertungspaket ist für C# noch nicht verfügbar. Ein Beispiel zur Verwendung von Prompty und Semantic Kernel zur Bewertung finden Sie im Beispiel contoso-chat-csharp-prompty.

Ablaufverfolgung

Um die Ablaufverfolgung zu aktivieren, stellen Sie zunächst sicher, dass eine Application Insights-Ressource an Ihr Projekt angefügt wurde. Wechseln Sie zur Seite Ablaufverfolgung Ihres Projekts, und befolgen Sie die Anweisungen zum Erstellen oder Anfügen von Application Insights.

Installieren Sie das Azure Monitor-OpenTelemetry-Paket:

pip install azure-monitor-opentelemetry

Verwenden Sie den folgenden Code, um die Instrumentierung des Azure KI Inference SDK zu aktivieren und sich bei Ihrem KI-Projekt anzumelden:

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)

Die Ablaufverfolgung ist noch nicht in das Projektpaket integriert. Anweisungen zum Instrumentieren und Protokollieren von Ablaufverfolgungen aus dem Azure KI-Rückschließenpaket finden Sie unter azure-sdk-for-dotnet.

Nachstehend finden Sie hilfreiche Links zu anderen Diensten und Frameworks, die Sie mit dem Azure KI Foundry SDK verwenden können.

Azure-KI-Dienste

Clientbibliotheken:

Verwaltungsbibliotheken:

Frameworks

Azure Machine Learning

prompt flow

Semantischer Kernel