在本快速入門中,您將瞭解如何建立 .NET 控制台聊天應用程式,以連線並提示 OpenAI 或 Azure OpenAI 模型。 應用程式會使用 Microsoft.Extensions.AI 連結庫,因此您可以使用 AI 抽象概念來撰寫程式代碼,而不是特定的 SDK。 AI 抽象概念可讓您使用最少的程式代碼變更來變更基礎 AI 模型。
先決條件
- .NET 8.0 SDK 或更高版本 - 安裝 .NET 8.0 SDK。
- OpenAI API 金鑰,因此您可以執行此範例。
先決條件
- .NET 8.0 SDK 或更高版本 - 安裝 .NET 8 SDK。
- Azure 訂用帳戶 - 建立免費帳戶。
- Azure 開發人員 CLI (選擇用) - 安裝或更新 Azure 開發人員 CLI。
備註
您也可以使用 語意核心 來完成本文中的工作。 語意核心是輕量型開放原始碼 SDK,可讓您建置 AI 代理程式,並將最新的 AI 模型整合到 .NET 應用程式中。
建立應用程式
完成下列步驟以建立 .NET 控制台應用程式以連線到 AI 模型。
在您的電腦上的空白目錄中,使用
dotnet new命令來建立新的控制台應用程式:dotnet new console -o ExtensionsAI將目錄變更為應用程式資料夾:
cd ExtensionsAI安裝必要的套件:
dotnet add package Azure.AI.OpenAI dotnet add package Azure.Identity dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecretsdotnet add package OpenAI dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecrets在 Visual Studio Code 或您選擇的編輯器中開啟應用程式。
建立 AI 服務
若要布建 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> dotnet user-secrets set AZURE_OPENAI_API_KEY <your-Azure-OpenAI-key>
設定應用程式
請從終端機或命令提示字元導航至您的 .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 模型。
將 benefits.md 檔案複製到您的項目目錄。 將項目設定為將此檔案複製到輸出目錄。 如果您使用 Visual Studio,請在 [方案總管] 中的檔案上按下滑鼠右鍵,選取 [屬性],然後將 [複製到輸出目錄] 設定為 [僅複製更新版本]。
在檔案中
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) .AsIChatClient();備註
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"]; IChatClient client = new OpenAIClient(key).GetChatClient(model).AsIChatClient();新增程式代碼以讀取
benefits.md檔案內容,然後建立模型的提示。 提示會指示模型以 20 個字以下摘要檔案的文字內容。string text = File.ReadAllText("benefits.md"); string prompt = $""" Summarize the the following text in 20 words or less: {text} """;GetResponseAsync呼叫 方法,將提示傳送至模型以產生回應。// Submit the prompt and print out the response. ChatResponse response = await client.GetResponseAsync( prompt, new ChatOptions { MaxOutputTokens = 400 }); Console.WriteLine(response);執行應用程式:
dotnet run應用程式會列印 AI 模型的完成回應。 自定義檔案的
benefits.md文字內容或摘要的長度,以查看響應的差異。
清理資源
如果您不再需要它們,請刪除 Azure OpenAI 資源和 GPT-4 模型部署。
- 在 Azure 入口網站中,流覽至 Azure OpenAI 資源。
- 選取 Azure OpenAI 資源,然後選取 [刪除。