The Azure AI Foundry SDK
Azure AI Foundry SDK är en omfattande verktygskedja som är utformad för att förenkla utvecklingen av AI-program i Azure. Det gör det möjligt för utvecklare att:
- Få åtkomst till populära modeller från olika modellleverantörer via ett enda gränssnitt
- Kombinera enkelt modeller, data och AI-tjänster för att skapa AI-baserade program
- Utvärdera, felsöka och förbättra programkvaliteten och säkerheten i utvecklings-, testnings- och produktionsmiljöer
Azure AI Foundry SDK är en uppsättning paket och tjänster som är utformade för att fungera tillsammans. Du kan använda Azure AI Projects-klientbiblioteket för att enkelt använda flera tjänster via en enda projektklient och anslutningssträng. Du kan också använda tjänster och SDK:er på egen hand och ansluta direkt till dina tjänster.
Om du vill hoppa in och börja skapa en app kan du kolla in:
Kom igång med projekt
Det bästa sättet att komma igång med Azure AI Foundry SDK är genom att använda ett projekt. AI-projekt kopplar samman olika data, tillgångar och tjänster som du behöver för att skapa AI-program. Med AI-projektklienten kan du enkelt komma åt dessa projektkomponenter från koden med hjälp av en enda anslutningssträng.
Följ först stegen för att skapa ett AI-projekt om du inte redan har ett.
Logga in med Azure CLI med samma konto som du använder för att komma åt ai-projektet:
az login
Installera Klientbiblioteket för Azure AI-projekt:
pip install azure-ai-projects azure-identity
Skapa en projektklient i kod:
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
Lägg till using-instruktioner:
using Azure.Identity;
using Azure.AI.Projects;
Skapa en projektklient i kod:
var connectionString = "<your_connection_string>";
var projectClient = new AIProjectClient(connectionString, new DefaultAzureCredential());
Kopiera project anslutningssträng från sidan Översikt i projektet och uppdatera anslutningssträngvärdet ovan.
När du har skapat projektklienten kan du använda klienten för funktionerna i följande avsnitt.
Azure OpenAI Service
Azure OpenAI-tjänsten ger åtkomst till OpenAI:s modeller, inklusive modellserien GPT-4o, GPT-4o mini, GPT-4, GPT-4 Turbo with Vision, DALLE-3, Whisper och Embeddings med funktionerna för datahemvist, skalbarhet, säkerhet, säkerhet och företag i Azure.
Om du har kod som använder OpenAI SDK kan du enkelt rikta in koden för att använda Azure OpenAI-tjänsten. Installera först OpenAI SDK:
pip install openai
Om du har befintlig kod som använder OpenAI SDK kan du använda projektklienten för att skapa en AzureOpenAI
klient som använder projektets Azure OpenAI-anslutning:
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
Lägg till using-instruktioner:
using OpenAI.Chat;
using Azure.AI.OpenAI;
Om du har befintlig kod som använder OpenAI SDK kan du använda projektklienten för att skapa en AzureOpenAI
klient som använder projektets Azure OpenAI-anslutning:
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}");
Om du redan använder Azure OpenAI SDK direkt mot Azure OpenAI-tjänsten är projektet ett bekvämt sätt att använda Azure OpenAI Service-funktioner tillsammans med resten av Funktionerna i Azure AI Foundry.
Azure AI-modellinferenstjänst
Azure AI-modellens slutsatsdragningstjänst ger åtkomst till kraftfulla modeller från ledande leverantörer som OpenAI, Microsoft, Meta med mera. Dessa modeller stöder uppgifter som innehållsgenerering, sammanfattning och kodgenerering.
Om du vill använda modellens slutsatsdragningstjänst kontrollerar du först att projektet har en AI Services-anslutning (i hanteringscentret).
azure-ai-inference
Installera klientbiblioteket:
pip install azure-ai-inference
Du kan använda projektklienten för att få en konfigurerad och autentiserad ChatCompletionsClient
eller 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
Lägg till using-instruktioner:
using Azure.AI.Inference;
Du kan använda projektklienten för att få en konfigurerad och autentiserad ChatCompletionsClient
eller 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);
Du kan ändra modellnamnet till valfri modell som du har distribuerat till slutsatsdragningstjänsten eller Azure OpenAI-tjänsten.
Mer information om hur du använder Azure AI-slutsatsdragningsklienten finns i inferensreferensen för Azure AI-modellen.
Fråga efter mallar
Inferensklienten har stöd för att skapa promptmeddelanden från mallar. Med mallen kan du dynamiskt generera frågor med hjälp av indata som är tillgängliga vid körning.
Installera paketet om azure-ai-inference
du vill använda promptmallar:
pip install azure-ai-inference
Du kan rendera en promptmall från en infogad sträng:
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)
Kommentar
Inledande blanksteg trimmas automatiskt från indatasträngar.
Den här koden matar ut meddelanden som du sedan kan skicka till ett samtal om chattens slutförande:
[
{'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'}
]
Du kan också läsa in frågor från en Prompty
fil så att du även kan läsa in modellnamnet och parametrarna .prompty
från filen:
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-sökning
Om du har en Azure AI Search-resurs ansluten till projektet kan du också använda projektklienten för att skapa en Azure AI Search-klient med hjälp av projektanslutningen.
Installera Azure AI Search-klientbiblioteket:
pip install azure-search-documents
Instansiera sök- och/eller sökindexklienten efter behov:
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
Lägg till using-instruktioner:
using Azure.Search.Documents;
using Azure.Search.Documents.Models;
Instansiera sök- och/eller sökindexklienten efter behov:
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));
Mer information om hur du använder Azure AI Search finns i dokumentationen för Azure AI Search.
Azure AI Agent Service
Azure AI Agent Service är en fullständigt hanterad tjänst som är utformad för att ge utvecklare möjlighet att på ett säkert sätt skapa, distribuera och skala högkvalitativa och utökningsbara AI-agenter. Med hjälp av ett omfattande ekosystem med modeller, verktyg och funktioner från OpenAI, Microsoft och tredjepartsleverantörer möjliggör Azure AI Agent Service byggagenter för en mängd olika generativa AI-användningsfall.
Registrera dig för förhandsversionen för att få åtkomst till agenter.
Utvärdering
Du kan använda projektklienten för att enkelt ansluta till Azure AI-utvärderingstjänsten och modeller som behövs för att köra utvärderarna.
pip install azure-ai-evaluation
Med hjälp av parametern project.scope
kan vi instansiera en 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)
OBS! För att kunna köra våldsutvärderare måste ditt projekt finnas i USA, östra 2, Sverige, centrala, USA, norra centrala, Frankrike, centrala.
Mer information finns i Utvärdering med hjälp av SDK.
Ett Azure AI-utvärderingspaket är ännu inte tillgängligt för C#. Ett exempel på hur du använder Prompty och Semantic Kernel för utvärdering finns i exemplet contoso-chat-csharp-prompty .
Spårning
Om du vill aktivera spårning måste du först se till att projektet har en bifogad Application Insights-resurs. Gå till sidan Spårning i projektet och följ anvisningarna för att skapa eller bifoga Application Insights.
Installera Azure Monitor OpenTelemetry-paketet:
pip install azure-monitor-opentelemetry
Använd följande kod för att aktivera instrumentering av Azure AI Inference SDK och loggning till ditt AI-projekt:
from azure.monitor.opentelemetry import configure_azure_monitor
# 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)
Spårningen är ännu inte integrerad i projektpaketet. Anvisningar om hur du instrumenterar och loggar spårningar från Azure AI-inferenspaketet finns i azure-sdk-for-dotnet.
Relaterat innehåll
Nedan visas några användbara länkar till andra tjänster och ramverk som du kan använda med Azure AI Foundry SDK.
Azure AI Services
Klientbibliotek:
Hanteringsbibliotek:
Ramverk
Azure Machine Learning
- Azure Machine Learning Python SDK (v2)
- Azure Machine Learning CLI (v2)
- Azure Machine Learning REST API
Promptflöde
Semantic Kernel
Semantisk kernelöversikt – agentiska ramverk