.NET Aspire Azure OpenAI 整合
在本文中,您將瞭解如何使用 .NET AspireAzureOpenAIclient。
Aspire.Azure.AI.OpenAI
函式庫可用來在相依性注入容器中註冊 OpenAIClient
,以取用 AzureOpenAI 或 OpenAI 功能。 它可啟用對應的記錄和遙測。
如需使用 OpenAIClient
的詳細資訊,請參閱 快速入門:開始使用 AzureOpenAI Service產生文字。
開始使用
- Azure 訂用帳戶:免費建立一個。
- Azure OpenAI 或 OpenAI 帳戶:建立 AzureOpenAI 服務資源。
若要開始使用 .NET AspireAzureOpenAI 整合,請在 client使用的專案(即使用 AzureOpenAIclient的應用程式專案)中安裝 📦Aspire.Azure.AI.OpenAI NuGet 套件。
dotnet add package Aspire.Azure.AI.OpenAI
如需詳細資訊,請參閱 dotnet add package 或 管理 .NET 應用程式中的套件相依性。
範例使用方式
在您的 client使用專案的 Program.cs 檔案中,呼叫擴充方法來註冊 OpenAIClient
,以透過相依注入容器使用。 方法會採用連接名稱參數。
builder.AddAzureOpenAIClient("openAiConnectionName");
在上述程式代碼中,AddAzureOpenAIClient
方法會將 OpenAIClient
新增至 DI 容器。
openAiConnectionName
參數是組態中連接字串的名稱。 接著,您可以使用相依注入來擷取 OpenAIClient
實例。 例如,若要從範例服務擷取連線:
public class ExampleService(OpenAIClient client)
{
// Use client...
}
應用程式主機使用方式
若要將 Azure 主機支援新增至您的 IDistributedApplicationBuilder,請在 應用程式主機 專案中安裝 📦Aspire.Hosting.Azure.CognitiveServices NuGet 套件。
dotnet add package Aspire.Hosting.Azure.CognitiveServices
在應用程式主機專案中,使用下列方法註冊 AzureOpenAI 資源,例如 AddAzureOpenAI:
var builder = DistributedApplication.CreateBuilder(args);
var openai = builder.ExecutionContext.IsPublishMode
? builder.AddAzureOpenAI("openAiConnectionName")
: builder.AddConnectionString("openAiConnectionName");
builder.AddProject<Projects.ExampleProject>()
.WithReference(openai);
AddAzureAIOpenAI
方法會從應用程式主機的組態(例如,從「用戶密碼」)讀取 ConnectionStrings:openAiConnectionName
組態密鑰下的連線資訊。
WithReference 方法會將該連接資訊傳遞至 ExampleProject
項目中名為 openAiConnectionName
的連接字串。 在 ExampleProject 的 Program.cs 檔案中,可以使用以下方式取得連線:
builder.AddAzureAIOpenAI("openAiConnectionName");
配置
.NET Aspire Azure OpenAI 整合提供多個選項,可根據專案的需求和慣例來設定連線。
使用連接字串
從 [ConnectionStrings
組態] 區段使用連接字串時,您可以在呼叫 builder.AddAzureAIOpenAI
時提供連接字串的名稱:
builder.AddAzureAIOpenAI("openAiConnectionName");
連接字串是從 [ConnectionStrings
組態] 區段擷取,而且有兩種支援的格式:搭配預設 Azure 認證使用的帳戶端點,或是具有帳戶密鑰的連接字串。
帳戶端點
建議的方法是使用 Endpoint,其可與 AzureOpenAISettings.Credential
屬性搭配使用,以建立連線。 如果未設定認證,則會使用 DefaultAzureCredential。
{
"ConnectionStrings": {
"openAiConnectionName": "https://{account_name}.openai.azure.com/"
}
}
如需詳細資訊,請參閱 使用 AzureOpenAI 不需索引鍵。
連接字串
或者,也可以使用自定義連接字串。
{
"ConnectionStrings": {
"openAiConnectionName": "Endpoint=https://{account_name}.openai.azure.com/;Key={account_key};"
}
}
若要連線到非AzureOpenAI 服務,請卸除 Endpoint
屬性,並只設定 Key 屬性來設定 API 金鑰。
使用組態提供者
.NET Aspire
Azure
OpenAI 整合支援 Microsoft.Extensions.Configuration。 它會使用 Aspire:Azure:AI:OpenAI
鍵從組態載入 AzureOpenAISettings
。 例如 appsettings.json,用於設定某些選項:
{
"Aspire": {
"Azure": {
"AI": {
"OpenAI": {
"DisableTracing": false,
}
}
}
}
}
使用內聯委派
您也可以傳遞 Action<AzureOpenAISettings> configureSettings
委任來設置部分或所有的內嵌選項,例如,從程式碼中停用追蹤:
builder.AddAzureAIOpenAI(
"openAiConnectionName",
static settings => settings.DisableTracing = true);
您也可以使用 AddAzureAIOpenAI
方法中的可選 Action<IAzureClientBuilder<OpenAIClient, OpenAIClientOptions>> configureClientBuilder
參數來設定 OpenAIClientOptions。 例如,若要設定此 client的 client 標識碼:
builder.AddAzureAIOpenAI(
"openAiConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
可檢視性和遙測
.NET .NET Aspire 整合會自動設定記錄、追蹤和度量組態,有時稱為 可觀測性的支柱。 如需整合可觀察性和遙測的詳細資訊,請參閱 .NET.NET Aspire 整合概觀。 視支援服務而定,某些整合可能只支援其中一些功能。 例如,某些整合支援記錄和追蹤,但不支援計量。 您也可以使用 組態 一節中呈現的技術來停用遙測功能。
伐木
.NET Aspire Azure OpenAI 整合會使用下列記錄類別:
Azure
Azure.Core
Azure.Identity