Usar o SDK do Azure OpenAI
Além das APIs REST abordadas na unidade anterior, os usuários também podem acessar modelos do Azure OpenAI por meio de SDKs C# e Python. A mesma funcionalidade está disponível por meio do REST e desses SDKs.
Nota
Antes de interagir com a API usando qualquer SDK, você deve criar um recurso OpenAI do Azure no portal do Azure, implantar um modelo nesse recurso e recuperar seu ponto de extremidade e chaves. Confira Introdução ao Serviço OpenAI do Azure para saber como fazer isso.
Para ambos os SDKs abordados nesta unidade, você precisa do ponto de extremidade e de uma chave do seu recurso do Azure OpenAI e do nome que você deu para seu modelo implantado. Nos seguintes trechos de código, os seguintes espaços reservados são usados:
Nome do espaço reservado | Value |
---|---|
YOUR_ENDPOINT_NAME |
Esse ponto de extremidade base é encontrado na seção Chaves & Ponto de Extremidade no portal do Azure. É o ponto de extremidade base do seu recurso, como https://sample.openai.azure.com/ . |
YOUR_API_KEY |
As chaves são encontradas na seção Chaves & Ponto de Extremidade no portal do Azure. Você pode usar qualquer uma das chaves para o seu recurso. |
YOUR_DEPLOYMENT_NAME |
Esse nome de implantação é o nome fornecido quando você implantou seu modelo no Azure AI Studio. |
Instalar bibliotecas
Primeiro, instale a biblioteca do cliente para o seu idioma preferido. O SDK C# é uma adaptação .NET das APIs REST e criado especificamente para o Azure OpenAI, no entanto, ele pode ser usado para se conectar a recursos do Azure OpenAI ou pontos de extremidade OpenAI que não sejam do Azure. O Python SDK é construído e mantido pela OpenAI.
dotnet add package Azure.AI.OpenAI --version <insert preferred version>
pip install openai
Configurar o aplicativo para acessar o recurso do Azure OpenAI
A configuração para cada idioma varia ligeiramente, mas ambos exigem que os mesmos parâmetros sejam definidos. Os parâmetros necessários são endpoint
, key
e o nome da sua 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 seu 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 recurso do Azure OpenAI
Depois de configurar sua conexão com o Azure OpenAI, 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 response contém vários valores, como total_tokens
e finish_reason
. A conclusão a partir do objeto de resposta será semelhante à seguinte conclusão:
"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."
Em C# e Python, sua chamada pode incluir parâmetros opcionais, incluindo temperature
e max_tokens
. Exemplos de uso desses parâmetros estão incluídos no laboratório deste módulo.