Использование пакета SDK Для OpenAI Для Azure
Помимо интерфейсов REST API, описанных в предыдущем уроке, пользователи также могут получить доступ к моделям Azure OpenAI с помощью C# и пакетов SDK Для Python. Одна и та же функция доступна как в REST, так и в этих пакетах SDK.
Примечание.
Прежде чем взаимодействовать с API с помощью любого пакета SDK, необходимо создать ресурс Azure OpenAI в портал Azure, развернуть модель в этом ресурсе и получить конечную точку и ключи. Ознакомьтесь со службой Azure OpenAI, чтобы узнать, как это сделать.
Для обоих пакетов SDK, описанных в этом уроке, вам потребуется конечная точка и ключ из ресурса Azure OpenAI, а также имя, указанное для развернутой модели. В следующих фрагментах кода используются следующие заполнители:
Имя заполнителя | Значение |
---|---|
YOUR_ENDPOINT_NAME |
Эта базовая конечная точка находится в разделе "Ключи и конечная точка" в портал Azure. Это базовая конечная точка ресурса, например https://sample.openai.azure.com/ . |
YOUR_API_KEY |
Ключи находятся в разделе "Ключи и конечная точка" в портал Azure. Для ресурса можно использовать любой ключ. |
YOUR_DEPLOYMENT_NAME |
Это имя развертывания, указанное при развертывании модели в Azure AI Studio. |
Установка библиотек
Сначала установите клиентную библиотеку для предпочитаемого языка. Пакет SDK C# — это адаптация REST API-интерфейсов .NET, созданная специально для Azure OpenAI, однако ее можно использовать для подключения к ресурсам Azure OpenAI или конечным точкам, отличным от Azure OpenAI. Пакет SDK для Python создается и поддерживается OpenAI.
dotnet add package Azure.AI.OpenAI --version <insert preferred version>
pip install openai
Настройка приложения для доступа к ресурсу Azure OpenAI
Конфигурация для каждого языка немного отличается, но для обоих требуется задать одни и те же параметры. Необходимые параметры : endpoint
key
и имя развертывания, которое вызывается engine
при отправке запроса в модель.
Добавьте библиотеку в приложение и задайте необходимые параметры для клиента.
// 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
После настройки подключения к Azure OpenAI отправьте запрос в модель.
// 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")
Объект ответа содержит несколько значений, таких как total_tokens
и finish_reason
. Завершение объекта ответа будет аналогично следующему завершению:
"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."
В C# и Python вызов может включать необязательные параметры, включая temperature
и max_tokens
. Примеры использования этих параметров включены в лабораторию этого модуля.