The Azure AI Foundry SDK
Azure AI Foundry SDK 是一個全方位的工具鏈,旨在簡化 Azure 上的 AI 應用程式開發。 它可讓開發人員:
- 透過單一介面從各種模型提供者存取熱門模型
- 輕鬆地將模型、數據和 AI 服務結合在一起,以建置 AI 支援的應用程式
- 跨開發、測試和生產環境評估、偵錯及改善應用程式品質與安全性
Azure AI Foundry SDK 是一組套件和服務,其設計目的是一起運作。 您可以使用 Azure AI Projects 用戶端連結庫,透過單一專案用戶端和 連接字串 輕鬆地使用多個服務。 您也可以自行使用服務和 SDK,並直接連線到您的服務。
如果您要直接進入並開始建置應用程式,請參閱:
開始使用專案
開始使用 Azure AI Foundry SDK 的最佳方式是使用專案。 AI 專案會將建置 AI 應用程式所需的不同數據、資產和服務連接在一起。 AI 專案用戶端可讓您使用單一 連接字串,輕鬆地從程式代碼存取這些項目元件。
如果您還沒有 AI 專案,請先遵循步驟來 建立 AI 專案 。
使用您用來存取 AI 專案的相同帳戶來登入 Azure CLI:
az login
安裝 Azure AI 專案用戶端連結庫:
pip install azure-ai-projects azure-identity
在程式代碼建立專案用戶端:
dotnet add package Azure.AI.Projects
dotnet add package Azure.Identity
新增 using 語句:
using Azure.Identity;
using Azure.AI.Projects;
在程式代碼建立專案用戶端:
從專案的 [概觀] 頁面複製 [專案 連接字串,並更新上述的連接字串值。
建立專案客戶端之後,您可以使用用戶端來取得下列各節中的功能。
Azure OpenAI 服務
Azure OpenAI 服務可讓您存取 OpenAI 的模型,包括 GPT-4o、GPT-4o mini、GPT-4、GPT-4 Turbo with Vision、DALLE-3、Whisper 和 Embeddings 模型系列,以及 Azure 的數據落地、延展性、安全性、安全性和企業功能。
如果您有使用 OpenAI SDK 的程式碼,您可以輕鬆地將程式代碼設為使用 Azure OpenAI 服務的目標。 首先,安裝 OpenAI SDK:
pip install openai
如果您有使用 OpenAI SDK 的現有程式代碼,您可以使用專案用戶端來建立 AzureOpenAI
使用您專案 Azure OpenAI 連線的用戶端:
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
新增 using 語句:
using OpenAI.Chat;
using Azure.AI.OpenAI;
如果您有使用 OpenAI SDK 的現有程式代碼,您可以使用專案用戶端來建立 AzureOpenAI
使用您專案 Azure OpenAI 連線的用戶端:
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}");
如果您已經直接對 Azure OpenAI 服務使用 Azure OpenAI SDK ,專案會提供方便的方式,將 Azure OpenAI 服務功能與其餘的 Azure AI Foundry 功能搭配使用。
Azure AI 模型推斷服務
Azure AI 模型推斷服務可讓您從 OpenAI、Microsoft、Meta 等領先提供者存取功能強大的模型。 這些模型支援工作,例如內容產生、摘要和程式代碼產生。
若要使用模型推斷服務,請先確定您的專案具有 AI 服務連線(在管理中心)。
安裝客戶端連結 azure-ai-inference
庫:
pip install azure-ai-inference
您可以使用專案用戶端來取得已設定與驗證 ChatCompletionsClient
的或 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
新增 using 語句:
using Azure.AI.Inference;
您可以使用專案用戶端來取得已設定與驗證 ChatCompletionsClient
的或 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);
您可以將模型名稱變更為部署至推斷服務或 Azure OpenAI 服務的任何模型。
若要深入瞭解如何使用 Azure AI 推斷用戶端,請參閱 Azure AI 模型推斷參考。
提示範本
推斷客戶端支援從範本建立提示訊息。 範本可讓您使用運行時間可用的輸入,動態產生提示。
若要使用提示範本,請安裝 azure-ai-inference
套件:
pip install azure-ai-inference
您可以從內嵌字串轉譯提示樣本:
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)
注意
前置空格元會自動從輸入字串修剪。
此程式代碼會輸出訊息,然後傳遞至聊天完成通話:
[
{'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'}
]
您也可以從 Prompty
檔案載入提示,讓您也能從 .prompty
檔案載入模型名稱和參數:
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 搜尋服務
如果您有連線到專案的 Azure AI 搜尋資源,也可以使用專案用戶端,使用專案連線建立 Azure AI 搜尋用戶端。
安裝 Azure AI 搜尋用戶端連結庫:
pip install azure-search-documents
視需要具現化搜尋和/或搜尋索引用戶端:
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
新增 using 語句:
using Azure.Search.Documents;
using Azure.Search.Documents.Models;
視需要具現化搜尋和/或搜尋索引用戶端:
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));
若要深入瞭解如何使用 Azure AI 搜尋,請參閱 Azure AI 搜尋檔。
Azure AI 代理程序服務
Azure AI 代理程式服務是完全受控的服務,可讓開發人員安全地建置、部署及調整高品質且可延伸的 AI 代理程式。 Azure AI 代理程式服務使用來自 OpenAI、Microsoft和第三方提供者的模型、工具和功能的廣泛生態系統,可為各種產生式 AI 使用案例建置代理程式。
若要存取代理程式, 請註冊預覽版。
評估
您可以使用專案用戶端輕鬆地連線到 Azure AI 評估服務,以及執行評估工具所需的模型。
pip install azure-ai-evaluation
project.scope
使用 參數,我們可以具現化 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)
注意:若要執行暴力評估工具,您的專案必須位於美國東部 2、瑞典中部、美國中北部、法國中部。
若要深入瞭解,請參閱 使用 SDK 的評估。
C# 尚未提供 Azure AI 評估套件。 如需如何使用 Prompty 和 Semantic Kernel 進行評估的範例,請參閱 contoso-chat-csharp-prompty 範例。
追蹤
若要啟用追蹤,請先確定您的專案具有附加的 Application Insights 資源。 移至專案的 [ 追蹤 ] 頁面,並遵循指示來建立或附加 Application Insights。
安裝 Azure 監視器 OpenTelemetry 套件:
pip install azure-monitor-opentelemetry
使用下列程式代碼來啟用 Azure AI 推斷 SDK 的檢測,並記錄至您的 AI 專案:
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)
追蹤尚未整合到專案套件中。 如需如何從 Azure AI 推斷套件檢測和記錄追蹤的指示,請參閱 azure-sdk-for-dotnet。
相關內容
以下是一些可搭配 Azure AI Foundry SDK 使用之其他服務和架構的實用連結。
Azure AI 服務
用戶端連結庫:
管理連結庫:
架構
Azure Machine Learning
- Azure Machine Learning Python SDK (v2)
- Azure Machine Learning CLI (v2)
- Azure Machine Learning REST API
提示流程
語意核心
語意核心概觀 代理程序架構