在本快速入門中,您將瞭解如何建立 .NET 控制台聊天應用程式,以連線並提示 OpenAI 或 Azure OpenAI 模型。 應用程式會使用 Microsoft.Extensions.AI 連結庫,因此您可以使用 AI 抽象概念來撰寫程式代碼,而不是特定的 SDK。 AI 抽象概念可讓您使用最少的程式代碼變更來變更基礎 AI 模型。
注意
您也可以使用 語意核心 來完成本文中的工作。 語意核心是輕量型開放原始碼 SDK,可讓您建置 AI 代理程式,並將最新的 AI 模型整合到 .NET 應用程式中。
您可以使用先前各節中的步驟建立自己的應用程式,也可以複製包含所有快速入門已完成範例應用程式的 GitHub 存放庫。 如果您打算使用 Azure OpenAI,範例存放庫也會結構化為可為您布建 Azure OpenAI 資源的 Azure 開發人員 CLI 範本。
git clone https://github.com/dotnet/ai-samples.git
完成下列步驟以建立 .NET 控制台應用程式以連線到 AI 模型。
在您的電腦上的空白目錄中,使用 dotnet new
命令來建立新的控制台應用程式:
dotnet new console -o ExtensionsAI
將目錄變更為應用程式資料夾:
cd ExtensionsAI
安裝必要的套件:
dotnet add package Azure.Identity
dotnet add package Azure.AI.OpenAI
dotnet add package Microsoft.Extensions.AI.OpenAI
dotnet add package Microsoft.Extensions.Configuration
dotnet add package Microsoft.Extensions.Configuration.UserSecrets
dotnet add package OpenAI
dotnet add package Microsoft.Extensions.AI.OpenAI
dotnet add package Microsoft.Extensions.Configuration
dotnet add package Microsoft.Extensions.Configuration.UserSecrets
在 Visual Studio 程式代碼或您選擇的編輯器中開啟應用程式
code .
GitHub 存放庫範例會結構化為 Azure 開發人員 CLI(azd
)範本,azd
可用來為您布建 Azure OpenAI 服務和模型。
從終端機或命令提示字元,流覽至範例存放庫的 src\quickstarts\azure-openai
目錄。
執行 azd up
命令來布建 Azure OpenAI 資源。 建立 Azure OpenAI 服務並部署模型可能需要幾分鐘的時間。
azd up
azd
也會為範例應用程式設定必要的用戶密碼,例如 Azure OpenAI 端點和模型名稱。
若要使用 Azure CLI 布建 Azure OpenAI 服務和模型,請完成 建立及部署 Azure OpenAI 服務資源一文中的步驟。
在終端機或命令列中,導航到專案目錄的根目錄。
執行下列命令來設定範例應用程式的 Azure OpenAI 端點和模型名稱:
dotnet user-secrets init
dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-azure-openai-endpoint>
dotnet user-secrets set AZURE_OPENAI_GPT_NAME <your-azure-openai-model-name>
若要使用 Azure 入口網站 布建 Azure OpenAI 服務和模型,請完成建立及部署 Azure OpenAI 服務資源一文中的步驟。
在終端機或命令列中,導航到專案目錄的根目錄。
執行下列命令來設定範例應用程式的 Azure OpenAI 端點和模型名稱:
dotnet user-secrets init
dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-openai-key>
dotnet user-secrets set AZURE_OPENAI_GPT_NAME <your-azure-openai-model-name>
請從終端機或命令提示字元導航至您的 .NET 專案根目錄。
執行下列命令,將 OpenAI API 金鑰設定為範例應用程式的秘密:
dotnet user-secrets init
dotnet user-secrets set OpenAIKey <your-openai-key>
dotnet user-secrets set ModelName <your-openai-model-name>
應用程式會使用 Microsoft.Extensions.AI
套件,將要求傳送和接收至 AI 模型。
在 Program.cs 檔案中,新增下列程式代碼,以連線並驗證 AI 模型。
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.AI;
using Azure.AI.OpenAI;
using Azure.Identity;
var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
string endpoint = config["AZURE_OPENAI_ENDPOINT"];
string deployment = config["AZURE_OPENAI_GPT_NAME"];
IChatClient client =
new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential())
.GetChatClient(deployment)
注意
DefaultAzureCredential 從本地工具中搜尋身份驗證憑證。 如果您未使用 azd
範本來布建 Azure OpenAI 資源,您必須將 Azure AI Developer
角色指派給您用來登入 Visual Studio 或 Azure CLI 的帳戶。 如需詳細資訊,請參閱使用 .NET 向 Azure AI 服務驗證 。
using Microsoft.Extensions.AI;
using Microsoft.Extensions.Configuration;
using OpenAI;
IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
string? model = config["ModelName"];
string? key = config["OpenAIKey"];
// Create the IChatClient
IChatClient client =
new OpenAIClient(key).GetChatClient(model).AsIChatClient();
讀取 benefits.md 檔案內容,並用來為模型創建提示。 提示會指示模型摘要檔案文字內容。
// Create and print out the prompt
string prompt = $"""
summarize the the following text in 20 words or less:
{File.ReadAllText("benefits.md")}
""";
Console.WriteLine($"user >>> {prompt}");
呼叫 函 InvokePromptAsync
式,將提示傳送至模型以產生回應。
// Submit the prompt and print out the response
ChatResponse response = await client.GetResponseAsync(prompt, new ChatOptions { MaxOutputTokens = 400 });
Console.WriteLine($"assistant >>> {response}");
使用 dotnet run
命令來執行應用程式:
dotnet run
應用程式會列印 AI 模型的完成回應。 自定義檔案的 benefits.md
文字內容或摘要的長度,以查看響應的差異。
當您不再需要範例應用程式或資源時,請移除對應的部署和所有資源。
azd down