Verwenden des Azure OpenAI SDK

Abgeschlossen

Zusätzlich zu den REST-APIs, die in der vorherigen Lerneinheit behandelt wurden, können Benutzer*innen auch über C#- und Python-SDKs auf Azure OpenAI-Modelle zugreifen. Die gleiche Funktionalität ist sowohl über REST als auch über diese SDKs verfügbar.

Hinweis

Bevor Sie über eines der SDKs mit der API interagieren, müssen Sie eine Azure OpenAI-Ressource im Azure-Portal erstellen, ein Modell in dieser Ressource bereitstellen und Ihren Endpunkt und Ihre Schlüssel abrufen. Informationen dazu finden Sie unter Erste Schritte mit Azure OpenAI Service.

Sie benötigen für beide in dieser Lerneinheit behandelten SDKs den Endpunkt und einen Schlüssel aus Ihrer Azure OpenAI-Ressource sowie den Namen, den Sie für Ihr bereitgestelltes Modell angegeben haben. In den folgenden Codeschnipseln werden die folgenden Platzhalter verwendet:

Platzhaltername Wert
YOUR_ENDPOINT_NAME Dieser Basisendpunkt befindet sich im Abschnitt Schlüssel und Endpunkt im Azure-Portal. Dies ist der Basisendpunkt Ihrer Ressource, z. B. https://sample.openai.azure.com/.
YOUR_API_KEY Schlüssel befinden sich im Abschnitt Schlüssel und Endpunkt im Azure-Portal. Sie können beide Schlüssel für Ihre Ressource verwenden.
YOUR_DEPLOYMENT_NAME Dieser Bereitstellungsname ist der Name, den Sie beim Bereitstellen Ihres Modells in Azure KI Studio angegeben haben.

Installieren von Bibliotheken

Installieren Sie zunächst die Clientbibliothek für Ihre bevorzugte Sprache. Das C#-SDK ist eine .NET-Adaptation der REST-APIs, die speziell für Azure OpenAI entwickelt wurde. Es kann jedoch zum Herstellen einer Verbindung mit Azure OpenAI-Ressourcen oder Nicht-Azure-OpenAI-Endpunkten verwendet werden. Das Python-SDK wird von OpenAI entwickelt und verwaltet.

dotnet add package Azure.AI.OpenAI --version <insert preferred version>
pip install openai

Konfigurieren der App für den Zugriff auf Azure OpenAI-Ressourcen

Die Konfiguration für jede Sprache variiert geringfügig, aber für beide müssen dieselben Parameter festgelegt werden. Die notwendigen Parameter sind endpoint, key und der Name Ihrer Bereitstellung, der beim Senden Ihrer Eingabeaufforderung an das Modell als engine bezeichnet wird.

Fügen Sie Ihrer App die Bibliothek hinzu, und legen Sie die erforderlichen Parameter für Ihren Client fest.

// Add OpenAI library
using Azure.AI.OpenAI;

// Define parameters and initialize the client
string endpoint = "<YOUR_ENDPOINT_NAME>";
string key = "<YOUR_API_KEY>";
string deploymentName = "<YOUR_DEPLOYMENT_NAME>"; 

OpenAIClient client = new OpenAIClient(new Uri(endpoint), new AzureKeyCredential(key));
# Add OpenAI library
from openai import AzureOpenAI

deployment_name = '<YOUR_DEPLOYMENT_NAME>' 

# Initialize the Azure OpenAI client
client = AzureOpenAI(
        azure_endpoint = '<YOUR_ENDPOINT_NAME>', 
        api_key='<YOUR_API_KEY>',  
        api_version="20xx-xx-xx" #  Target version of the API, such as 2024-02-15-preview
        )

Aufrufen einer Azure OpenAI-Ressource

Nachdem Sie Ihre Verbindung mit Azure OpenAI konfiguriert haben, senden Sie Ihre Aufforderung an das Modell.

// Build completion options object
ChatCompletionsOptions chatCompletionsOptions = new ChatCompletionsOptions()
{
    Messages =
    {
        new ChatRequestSystemMessage("You are a helpful AI bot."),
        new ChatRequestUserMessage("What is Azure OpenAI?"),
    },
    DeploymentName = deploymentName
};

// Send request to Azure OpenAI model
ChatCompletions response = client.GetChatCompletions(chatCompletionsOptions);

// Print the response
string completion = response.Choices[0].Message.Content;
Console.WriteLine("Response: " + completion + "\n");
response = client.chat.completions.create(
    model=deployment_name,
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is Azure OpenAI?"}
    ]
)
generated_text = response.choices[0].message.content

# Print the response
print("Response: " + generated_text + "\n")

Das Antwortobjekt enthält mehrere Werte, z. B. total_tokens und finish_reason. Die Vervollständigung des Antwortobjekts ähnelt der folgenden Vervollständigung:

"Azure OpenAI is a cloud-based artificial intelligence (AI) service that offers a range of tools and services for developing and deploying AI applications. Azure OpenAI provides a variety of services for training and deploying machine learning models, including a managed service for training and deploying deep learning models, a managed service for deploying machine learning models, and a managed service for managing and deploying machine learning models."

Sowohl in C# als auch in Python kann Ihr Aufruf optionale Parameter enthalten, z. B. temperature und max_tokens. Beispiele für die Verwendung dieser Parameter sind im Lab dieses Moduls enthalten.