Azure OpenAI SDK gebruiken

Voltooid

Naast REST API's die in de vorige les worden behandeld, hebben gebruikers ook toegang tot Azure OpenAI-modellen via C# en Python SDK's. Dezelfde functionaliteit is beschikbaar via zowel REST als deze SDK's.

Notitie

Voordat u met de API communiceert met behulp van een van de SDK's, moet u een Azure OpenAI-resource maken in Azure Portal, een model in die resource implementeren en uw eindpunt en sleutels ophalen. Bekijk de aan de slag met De Azure OpenAI-service om te leren hoe u dit doet.

Voor beide SDK's die in deze les worden behandeld, hebt u het eindpunt en een sleutel uit uw Azure OpenAI-resource nodig en de naam die u hebt opgegeven voor uw geïmplementeerde model. In de volgende codefragmenten worden de volgende tijdelijke aanduidingen gebruikt:

Naam van tijdelijke aanduiding Weergegeven als
YOUR_ENDPOINT_NAME Dit basiseindpunt vindt u in de sectie Sleutels en eindpunten in Azure Portal. Dit is het basiseindpunt van uw resource, zoals https://sample.openai.azure.com/.
YOUR_API_KEY Sleutels vindt u in de sectie Sleutels en eindpunt in Azure Portal. U kunt een van beide sleutels voor uw resource gebruiken.
YOUR_DEPLOYMENT_NAME Deze implementatienaam is de naam die wordt opgegeven bij het implementeren van uw model in Azure AI Studio.

Bibliotheken installeren

Installeer eerst de clientbibliotheek voor uw voorkeurstaal. De C#SDK is een .NET-aanpassing van de REST API's en speciaal gebouwd voor Azure OpenAI, maar kan worden gebruikt om verbinding te maken met Azure OpenAI-resources of niet-Azure OpenAI-eindpunten. De Python SDK wordt gebouwd en onderhouden door OpenAI.

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

App configureren voor toegang tot Azure OpenAI-resource

De configuratie voor elke taal varieert enigszins, maar beide vereisen dat dezelfde parameters worden ingesteld. De benodigde parameters zijn endpoint, keyen de naam van uw implementatie, die de naam wordt genoemd bij het engine verzenden van uw prompt naar het model.

Voeg de bibliotheek toe aan uw app en stel de vereiste parameters voor uw client in.

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

Azure OpenAI-resource aanroepen

Nadat u de verbinding met Azure OpenAI hebt geconfigureerd, stuurt u uw prompt naar het model.

// 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")

Het antwoordobject bevat verschillende waarden, zoals total_tokens en finish_reason. De voltooiing van het antwoordobject is vergelijkbaar met de volgende voltooiing:

"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."

In zowel C# als Python kan uw aanroep optionele parameters bevatten, waaronder temperature en max_tokens. Voorbeelden van het gebruik van deze parameters zijn opgenomen in het lab van deze module.