The Azure AI Foundry SDK
Azure AI Foundry SDK è una toolchain completa progettata per semplificare lo sviluppo di applicazioni di intelligenza artificiale in Azure. Consente agli sviluppatori di:
- Accedere ai modelli più diffusi da vari provider di modelli tramite una singola interfaccia
- Combinare facilmente modelli, dati e servizi di intelligenza artificiale per creare applicazioni basate su intelligenza artificiale
- Valutare, eseguire il debug e migliorare la qualità e la sicurezza delle applicazioni in ambienti di sviluppo, test e produzione
AI Foundry SDK è un set di pacchetti e servizi progettati per collaborare. È possibile usare la libreria client di Azure AI Projects per usare facilmente più servizi tramite un singolo client di progetto e stringa di connessione. È anche possibile usare servizi e SDK autonomamente e connettersi direttamente ai servizi.
Per iniziare subito a creare un'app, vedere:
Introduzione ai progetti
Il modo migliore per iniziare a usare Azure AI Foundry SDK consiste nell'usare un progetto. I progetti di intelligenza artificiale si connettono tra diversi dati, asset e servizi necessari per creare applicazioni di intelligenza artificiale. Il client del progetto di intelligenza artificiale consente di accedere facilmente a questi componenti di progetto dal codice usando un singolo stringa di connessione.
Seguire prima di tutto la procedura per creare un progetto di intelligenza artificiale, se non ne è già disponibile uno.
Accedere con l'interfaccia della riga di comando di Azure usando lo stesso account usato per accedere al progetto di intelligenza artificiale:
az login
Installare la libreria client dei progetti di intelligenza artificiale di Azure:
pip install azure-ai-projects azure-identity
Creare un client di progetto nel codice:
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
project_connection_string="your_connection_string"
project = AIProjectClient.from_connection_string(
conn_str=project_connection_string,
credential=DefaultAzureCredential())
dotnet add package Azure.AI.Projects
dotnet add package Azure.Identity
Aggiungere istruzioni using:
using Azure.Identity;
using Azure.AI.Projects;
Creare un client di progetto nel codice:
var connectionString = "<your_connection_string>";
var projectClient = new AIProjectClient(connectionString, new DefaultAzureCredential());
Copiare il stringa di connessione progetto dalla pagina Panoramica del progetto e aggiornare il valore della stringa di connessione precedente.
Dopo aver creato il client di progetto, è possibile usare il client per le funzionalità nelle sezioni seguenti.
Assicurarsi di controllare i riferimenti e gli esempi.
Assicurarsi di controllare i riferimenti e gli esempi.
Servizio OpenAI di Azure
Il servizio Azure OpenAI consente di accedere ai modelli di OpenAI, tra cui la serie di modelli GPT-4o, GPT-4o, GPT-4, GPT-4 Turbo con Vision, DALLE-3, Whisper e Embeddings con la residenza dei dati, la scalabilità, la sicurezza, la sicurezza e le funzionalità aziendali di Azure.
Se si dispone di codice che usa OpenAI SDK, è possibile usare facilmente il codice per usare il servizio Azure OpenAI. Prima di tutto, installare OpenAI SDK:
pip install openai
Se si dispone di codice esistente che usa OpenAI SDK, è possibile usare il client di progetto per creare un AzureOpenAI
client che usa la connessione OpenAI di Azure del progetto:
openai = project.inference.get_azure_openai_client(api_version="2024-06-01")
response = openai.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful writing assistant"},
{"role": "user", "content": "Write me a poem about flowers"},
]
)
print(response.choices[0].message.content)
dotnet add package Azure.AI.OpenAI
Aggiungere istruzioni using:
using OpenAI.Chat;
using Azure.AI.OpenAI;
Se si dispone di codice esistente che usa OpenAI SDK, è possibile usare il client di progetto per creare un AzureOpenAI
client che usa la connessione OpenAI di Azure del progetto:
var connections = projectClient.GetConnectionsClient();
ConnectionResponse connection = connections.GetDefaultConnection(ConnectionType.AzureOpenAI, withCredential: true);
var properties = connection.Properties as ConnectionPropertiesApiKeyAuth;
if (properties == null) {
throw new Exception("Invalid auth type, expected API key auth");
}
// Create and use an Azure OpenAI client
AzureOpenAIClient azureOpenAIClient = new(
new Uri(properties.Target),
new AzureKeyCredential(properties.Credentials.Key));
// This must match the custom deployment name you chose for your model
ChatClient chatClient = azureOpenAIClient.GetChatClient("gpt-4o-mini");
ChatCompletion completion = chatClient.CompleteChat(
[
new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
new UserChatMessage("Does Azure OpenAI support customer managed keys?"),
new AssistantChatMessage("Yes, customer managed keys are supported by Azure OpenAI"),
new UserChatMessage("Do other Azure AI services support this too?")
]);
Console.WriteLine($"{completion.Role}: {completion.Content[0].Text}");
Se si usa già Azure OpenAI SDK direttamente nel servizio Azure OpenAI, il progetto offre un modo pratico per usare le funzionalità del servizio Azure OpenAI insieme alle altre funzionalità di AI Foundry.
Servizio di inferenza del modello di intelligenza artificiale di Azure
Il servizio di inferenza del modello di intelligenza artificiale di Azure offre l'accesso a modelli avanzati da provider leader come OpenAI, Microsoft, Meta e altro ancora. Questi modelli supportano attività come la generazione di contenuti, il riepilogo e la generazione di codice.
Per usare il servizio di inferenza del modello, assicurarsi prima di tutto che il progetto disponga di una connessione ai servizi di intelligenza artificiale (nel centro di gestione).
Installare la azure-ai-inferencing
libreria client:
pip install azure-ai-inference
È possibile usare il client di progetto per ottenere un oggetto configurato e autenticato ChatCompletionsClient
o EmbeddingsClient
:
# get an chat inferencing client using the project's default model inferencing endpoint
chat = project.inference.get_chat_completions_client()
# run a chat completion using the inferencing client
response = chat.complete(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful writing assistant"},
{"role": "user", "content": "Write me a poem about flowers"},
]
)
print(response.choices[0].message.content)
dotnet add package Azure.AI.Inference
Aggiungere istruzioni using:
using Azure.AI.Inference;
È possibile usare il client di progetto per ottenere un oggetto configurato e autenticato ChatCompletionsClient
o EmbeddingsClient
:
var connectionString = Environment.GetEnvironmentVariable("AIPROJECT_CONNECTION_STRING");
var projectClient = new AIProjectClient(connectionString, new DefaultAzureCredential());
ChatCompletionsClient chatClient = projectClient.GetChatCompletionsClient();
var requestOptions = new ChatCompletionsOptions()
{
Messages =
{
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("How many feet are in a mile?"),
},
Model = "gpt-4o-mini"
};
Response<ChatCompletions> response = chatClient.Complete(requestOptions);
Console.WriteLine(response.Value.Content);
È possibile modificare il nome del modello in qualsiasi modello distribuito nel servizio di inferenza o nel servizio Azure OpenAI.
Per altre informazioni sull'uso del client di inferenza di Intelligenza artificiale di Azure, vedere il riferimento all'inferenza del modello di intelligenza artificiale di Azure.
Modelli di prompt
Il client di inferenza supporta la creazione di messaggi di richiesta dai modelli. Il modello consente di generare in modo dinamico richieste usando input disponibili in fase di esecuzione.
Per usare i modelli di prompt, installare il azure-ai-inferencing
pacchetto:
pip install azure-ai-inference
È possibile eseguire il rendering di un modello di richiesta da una stringa inline:
from azure.ai.inference.prompts import PromptTemplate
# create a prompt template from an inline string (using mustache syntax)
prompt_template = PromptTemplate.from_string(prompt_template="""
system:
You are a helpful writing assistant.
The user's first name is {{first_name}} and their last name is {{last_name}}.
user:
Write me a poem about flowers
""")
# generate system message from the template, passing in the context as variables
messages = prompt_template.create_messages(first_name="Jane", last_name="Doe")
print(messages)
Nota
Gli spazi vuoti iniziali vengono eliminati automaticamente dalle stringhe di input.
Questo codice restituisce messaggi che è possibile passare a una chiamata di completamento della chat:
[
{'role': 'system', 'content': "You are a helpful writing assistant.\nThe user's first name is Jane and their last name is Doe."}
{'role': 'user', 'content': 'Write me a poem about flowers'}
]
È anche possibile caricare richieste da un Prompty
file, consentendo di caricare anche il nome e i parametri del .prompty
modello dal file:
from azure.ai.inference.prompts import PromptTemplate
prompt_template = PromptTemplate.from_prompty("myprompt.prompty")
messages = prompt_template.create_messages(first_name="Jane", last_name="Doe")
response = chat.complete(
messages=messages,
model=prompt_template.model_name,
**prompt_template.parameters,
)
Azure AI Search
Se si dispone di una risorsa di Ricerca intelligenza artificiale di Azure connessa al progetto, è anche possibile usare il client di progetto per creare un client di Ricerca intelligenza artificiale di Azure usando la connessione al progetto.
Installare la libreria client di Ricerca intelligenza artificiale di Azure:
pip install azure-search-documents
Creare un'istanza del client di ricerca e/o dell'indice di ricerca in base alle esigenze:
from azure.core.credentials import AzureKeyCredential
from azure.ai.projects.models import ConnectionType
from azure.search.documents import SearchClient
from azure.search.documents.indexes import SearchIndexClient
# use the project client to get the default search connection
search_connection = project.connections.get_default(
connection_type=ConnectionType.AZURE_AI_SEARCH,
with_credentials=True)
# Create a client to create and manage search indexes
index_client = SearchIndexClient(
endpoint=search_connection.endpoint_url,
credential=AzureKeyCredential(key=search_connection.key)
)
# Create a client to run search queries
search_client = SearchClient(
index_name="your_index_name",
endpoint=search_connection.endpoint_url,
credential=AzureKeyCredential(key=search_connection.key)
)
dotnet add package Azure.Search.Documents
Aggiungere istruzioni using:
using Azure.Search.Documents;
using Azure.Search.Documents.Models;
Creare un'istanza del client di ricerca e/o dell'indice di ricerca in base alle esigenze:
var connections = projectClient.GetConnectionsClient();
var connection = connections.GetDefaultConnection(ConnectionType.AzureAISearch, withCredential: true).Value;
var properties = connection.Properties as ConnectionPropertiesApiKeyAuth;
if (properties == null) {
throw new Exception("Invalid auth type, expected API key auth");
}
SearchClient searchClient = new SearchClient(
new Uri(properties.Target),
"products",
new AzureKeyCredential(properties.Credentials.Key));
Per altre informazioni sull'uso di Ricerca di intelligenza artificiale di Azure, vedere la documentazione di Ricerca di intelligenza artificiale di Azure.
Servizio Agente di intelligenza artificiale di Azure
Il servizio Azure AI Agent è un servizio completamente gestito progettato per consentire agli sviluppatori di creare, distribuire e ridimensionare in modo sicuro agenti di intelligenza artificiale di alta qualità ed estendibili. L'uso di un ampio ecosistema di modelli, strumenti e funzionalità di OpenAI, Microsoft e provider di terze parti, il servizio Azure AI Agent consente di creare agenti per un'ampia gamma di casi d'uso generativi di intelligenza artificiale.
Per ottenere l'accesso agli agenti, iscriversi all'anteprima.
Valutazione
È possibile usare il client di progetto per connettersi facilmente al servizio di valutazione di Intelligenza artificiale di Azure e i modelli necessari per l'esecuzione degli analizzatori.
pip install azure-ai-evaluation
Usando il project.scope
parametro , è possibile creare un'istanza di ViolenceEvaluator
:
from azure.ai.evaluation import ViolenceEvaluator
from azure.identity import DefaultAzureCredential
# Initializing Violence Evaluator with project information
violence_eval = ViolenceEvaluator(
azure_ai_project=project.scope,
credential=DefaultAzureCredential())
# Running Violence Evaluator on single input row
violence_score = violence_eval(query="what's the capital of france", response="Paris")
print(violence_score)
NOTA: per eseguire gli analizzatori di violenza il progetto deve trovarsi negli Stati Uniti orientali 2, Svezia centrale, Stati Uniti centro-settentrionali, Francia centrale.
Per altre informazioni, vedere Valutazione con l'SDK.
Un pacchetto di valutazione di Intelligenza artificiale di Azure non è ancora disponibile per C#. Per un esempio su come usare Prompty e Semantic Kernel per la valutazione, vedere l'esempio contoso-chat-csharp-prompty .
Traccia
Per abilitare la traccia, verificare prima di tutto che il progetto disponga di una risorsa di Application Insights collegata. Passare alla pagina Traccia del progetto e seguire le istruzioni per creare o allegare Application Insights.
Installare il pacchetto OpenTelemetry di Monitoraggio di Azure:
pip install azure-monitor-opentelemetry
Usare il codice seguente per abilitare la strumentazione di Azure AI Inference SDK e la registrazione al progetto di intelligenza artificiale:
# Enable instrumentation of AI packages (inference, agents, openai, langchain)
project.telemetry.enable()
# Log traces to the project's application insights resource
application_insights_connection_string = project.telemetry.get_connection_string()
if application_insights_connection_string:
configure_azure_monitor(connection_string=application_insights_connection_string)
La traccia non è ancora integrata nel pacchetto di progetti. Per istruzioni su come instrumentare e registrare tracce dal pacchetto di inferenza di intelligenza artificiale di Azure, vedere azure-sdk-for-dotnet.
Contenuto correlato
Di seguito sono riportati alcuni collegamenti utili ad altri servizi e framework che è possibile usare con Azure AI Foundry SDK.
Servizi di intelligenza artificiale per Azure
Librerie client:
Librerie di gestione:
Framework
Azure Machine Learning
- Azure Machine Learning Python SDK (v2)
- Interfaccia della riga di comando di Azure Machine Learning (v2)
- API REST di Azure Machine Learning
Prompt flow
Kernel semantico
Cenni preliminari sul kernel semantico Framework agenti