Utiliser le SDK Azure OpenAI

Effectué

En plus des API REST couvertes dans l’unité précédente, les utilisateurs peuvent également accéder aux modèles Azure OpenAI par le biais des SDK C# et Python. Les mêmes fonctionnalités sont disponibles via REST et ces SDK.

Notes

Avant d’interagir avec l’API à l’aide de l’un ou l’autre SDK, vous devez créer une ressource Azure OpenAI dans le Portail Azure, déployer un modèle dans cette ressource et récupérer votre point de terminaison et vos clés. Pour savoir comment procéder, consultez Prise en main d’Azure OpenAI Service.

Pour les deux SDK couverts dans cette unité, vous avez besoin du point de terminaison et d’une clé de votre ressource Azure OpenAI, ainsi que du nom que vous avez donné pour votre modèle déployé. Dans les extraits de code suivants, les espaces réservés suivants sont utilisés :

Nom de l’espace réservé Valeur
YOUR_ENDPOINT_NAME Ce point de terminaison de base se trouve dans la section Clés et point de terminaison du portail Azure. Il s’agit du point de terminaison de base de votre ressource, comme https://sample.openai.azure.com/.
YOUR_API_KEY Les clés se trouvent dans la section Clés et point de terminaison du portail Azure. Vous pouvez utiliser n’importe laquelle de ces clés pour votre ressource.
YOUR_DEPLOYMENT_NAME Ce nom de déploiement est le nom fourni lorsque vous avez déployé votre modèle dans Azure AI Studio.

Installation des bibliothèques

Tout d’abord, installez la bibliothèque cliente pour votre langage préféré. Le SDK C# est une adaptation .NET des API REST, et a été créé spécifiquement pour Azure OpenAI. Toutefois, il peut être utilisé pour se connecter à des ressources Azure OpenAI ou à des points de terminaison OpenAI non Azure. Le SDK Python est généré et géré par OpenAI.

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

Configurer l’application pour accéder à la ressource Azure OpenAI

La configuration de chaque langage varie légèrement, mais les deux nécessitent la définition des mêmes paramètres. Les paramètres nécessaires sont endpoint, key et le nom de votre déploiement, qui est appelé engine lors de l’envoi de votre invite au modèle.

Ajoutez la bibliothèque à votre application et définissez les paramètres requis pour votre client.

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

Appeler une ressource Azure OpenAI

Une fois que vous avez configuré votre connexion à Azure OpenAI, envoyez votre invite au modèle.

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

L’objet de réponse contient plusieurs valeurs, comme total_tokens et finish_reason. La complétion de l’objet de réponse sera similaire à la complétion suivante :

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

En C# et en Python, votre appel peut inclure des paramètres facultatifs, notamment temperature et max_tokens. Des exemples d’utilisation de ces paramètres sont inclus dans le labo de ce module.