Uso del SDK de Azure OpenAI

Completado

Además de las API REST que se tratan en la unidad anterior, los usuarios también pueden acceder a los modelos de Azure OpenAI mediante los SDK de C# y Python. La misma funcionalidad está disponible mediante REST y estos SDK.

Nota

Antes de interactuar con la API mediante cualquiera de los SDK, debe crear un recurso de Azure OpenAI en Azure Portal, implementar un modelo en ese recurso y recuperar el punto de conexión y las claves. Consulte Introducción a Azure OpenAI Service para información sobre cómo hacerlo.

Para ambos SDK que se tratan en esta unidad, necesita el punto de conexión y una clave del recurso Azure OpenAI, junto con el nombre que asignó al modelo implementado. En los fragmentos de código siguientes, se usan los siguientes marcadores de posición:

Nombre del marcador de posición Value
YOUR_ENDPOINT_NAME Este punto de conexión base se encuentra en la sección Claves y Punto de conexión de Azure Portal. Es el punto de conexión base del recurso, como https://sample.openai.azure.com/.
YOUR_API_KEY Las claves se encuentran en la sección Claves y Punto de conexión de Azure Portal. Puede usar cualquiera de ellas para el recurso.
YOUR_DEPLOYMENT_NAME Este nombre de implementación es el que ha proporcionado al implementar el modelo en Inteligencia artificial de Azure Studio.

Instalar bibliotecas

En primer lugar, instale la biblioteca cliente correspondiente a su lenguaje preferido. El SDK de C# es una adaptación de .NET de las API REST y se ha creado específicamente para Azure OpenAI, pero se puede usar para conectarse a recursos de Azure OpenAI o a puntos de conexión que no son de Azure OpenAI. OpenAI crea y mantiene el SDK de Python.

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

Configuración de la aplicación para acceder al recurso Azure OpenAI

La configuración para cada lenguaje varía ligeramente, pero ambos requieren que se establezcan los mismos parámetros. Los parámetros necesarios son endpoint, key y el nombre de la implementación, que se llama engine al enviar su solicitud al modelo.

Agregue la biblioteca a la aplicación y establezca los parámetros necesarios para el cliente.

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

Llamada al recurso Azure OpenAI

Una vez que haya configurado la conexión a Azure OpenAI, envíe la indicación al modelo.

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

El objeto de respuesta contiene varios valores, como total_tokens y finish_reason. La finalización del objeto de respuesta será similar a la siguiente finalización:

"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# y Python, la llamada puede incluir parámetros opcionales, incluidos temperature y max_tokens. En el laboratorio de este módulo se incluyen ejemplos de uso de esos parámetros.