Usare Azure OpenAI SDK
Oltre alle API REST descritte nell'unità precedente, gli utenti possono accedere ai modelli del Servizio OpenAI di Azure tramite SDK C# e Python. La stessa funzionalità è disponibile sia tramite REST che tramite questi SDK.
Nota
Prima di interagire con l'API usando uno degli SDK, è necessario creare una risorsa del Servizio OpenAI di Azure nel portale di Azure, distribuire un modello in tale risorsa e recuperare l'endpoint e le chiavi. Vedere l'Introduzione al Servizio OpenAI di Azure per informazioni su come eseguire questa operazione.
Per entrambi gli SDK trattati in questa unità, sono necessari l'endpoint e una chiave della risorsa del Servizio OpenAI di Azure e il nome assegnato per il modello distribuito. Nei frammenti di codice seguenti vengono usati i segnaposto seguenti:
Nome segnaposto | Valore |
---|---|
YOUR_ENDPOINT_NAME |
Questo endpoint di base è disponibile nella sezione Chiavi ed endpoint nel portale di Azure. È l'endpoint di base della risorsa, ad esempio https://sample.openai.azure.com/ . |
YOUR_API_KEY |
Le chiavi sono disponibili nella sezione Chiavi ed endpoint nel portale di Azure. È possibile usare una delle due chiavi per la risorsa. |
YOUR_DEPLOYMENT_NAME |
Questo nome di distribuzione è il nome specificato quando è stato distribuito il modello in Azure AI Studio. |
Installare le librerie
Prima di tutto, installare la libreria client per il linguaggio preferito. C# SDK è un adattamento .NET delle API REST ed è stato creato in modo specifico per il Servizio OpenAI di Azure, ma può essere usato per connettersi alle risorse del Servizio OpenAI di Azure o agli endpoint OpenAI non Azure. Python SDK viene compilato e gestito da OpenAI.
dotnet add package Azure.AI.OpenAI --version <insert preferred version>
pip install openai
Configurare l'app per accedere alla risorsa del Servizio OpenAI di Azure
La configurazione per ogni linguaggio varia leggermente, ma entrambi richiedono l'impostazione degli stessi parametri. I parametri necessari sono endpoint
, key
e il nome della distribuzione, denominato engine
quando si invia il prompt al modello.
Aggiungere la libreria all'app e impostare i parametri necessari per il 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
)
Chiamare la risorsa del Servizio OpenAI di Azure
Dopo aver configurato la connessione al Servizio OpenAI di Azure, inviare la richiesta al modello.
// 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'oggetto risposta contiene diversi valori, ad esempio total_tokens
e finish_reason
. Il completamento dell'oggetto risposta sarà simile al completamento seguente:
"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."
Sia in C# che in Python, la chiamata può includere parametri facoltativi, tra cui temperature
e max_tokens
. Gli esempi di utilizzo di questi parametri sono inclusi nel lab di questo modulo.