Usar o SDK do OpenAI do Azure

Concluído

Além das APIs REST abordadas na unidade anterior, os usuários também podem acessar modelos do OpenAI do Azure por meio de SDKs do C# e do Python. A mesma funcionalidade está disponível com o REST e com esses SDKs.

Observação

Antes de interagir com a API usando o SDK, você precisa criar um recurso de OpenAI do Azure no portal do Azure, implantar um modelo nesse recurso e recuperar o ponto de extremidade e as chaves. Confira a Introdução ao Serviço OpenAI do Azure para saber como fazer isso.

Para os dois SDKs abordados nesta unidade, você precisa do ponto de extremidade e de uma chave do recurso de OpenAI do Azure, bem como do nome que deu ao modelo implantado. Nos snippets de código a seguir, os seguintes espaços reservados são usados:

Nome do espaço reservado Valor
YOUR_ENDPOINT_NAME Esse ponto de extremidade base pode ser encontrado na seção Chaves e Pontos de Extremidade no portal do Azure. Esse é o ponto de extremidade base do recurso, como https://sample.openai.azure.com/.
YOUR_API_KEY As chaves são encontradas na seção Chaves e Ponto de Extremidade no portal do Azure. Você pode usar qualquer uma das chaves para seu recurso.
YOUR_DEPLOYMENT_NAME Esse nome de implantação é o nome fornecido quando você implantou seu modelo no Estúdio de IA do Azure.

Instalar bibliotecas

Primeiro, instale a biblioteca de clientes de sua linguagem preferida. O SDK do C# é uma adaptação do .NET das APIs REST, criada especificamente para o OpenAI do Azure. No entanto, ele pode ser usado para se conectar a recursos de OpenAI do Azure ou a pontos de extremidade que não são do OpenAI do Azure. O SDK do Python é criado e mantido pelo OpenAI.

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

Configurar o aplicativo para acessar o recurso de OpenAI do Azure

A configuração para cada linguagem varia ligeiramente, mas ambas exigem que os mesmos parâmetros sejam definidos. Os parâmetros necessários são endpoint, key e o nome da implantação, que é chamado de engine ao enviar seu prompt para o modelo.

Adicione a biblioteca ao seu aplicativo e defina os parâmetros necessários para o 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
        )

Chamar um recurso de OpenAI do Azure

Depois de configurar sua conexão com o OpenAI do Azure, envie seu prompt para o 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")

O objeto de resposta contém vários valores, como total_tokens e finish_reason. O preenchimento do objeto de resposta será semelhante ao seguinte preenchimento:

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

Tanto em C# quanto em Python, sua chamada pode incluir parâmetros opcionais, como temperature e max_tokens. Exemplos de uso desses parâmetros estão incluídos no laboratório deste módulo.