共用方式為


線上並提示 AI 模型

在本快速入門中,您將瞭解如何建立 .NET 控制台聊天應用程式,以連線並提示 OpenAI 或 Azure OpenAI 模型。 應用程式會使用 Microsoft.Extensions.AI 連結庫,因此您可以使用 AI 抽象概念來撰寫程式代碼,而不是特定的 SDK。 AI 抽象概念可讓您使用最少的程式代碼變更來變更基礎 AI 模型。

先決條件

  • .NET 8.0 SDK 或更高版本 - 安裝 .NET 8.0 SDK
  • OpenAI API 金鑰,因此您可以執行此範例。

先決條件

備註

您也可以使用 語意核心 來完成本文中的工作。 語意核心是輕量型開放原始碼 SDK,可讓您建置 AI 代理程式,並將最新的 AI 模型整合到 .NET 應用程式中。

建立應用程式

完成下列步驟以建立 .NET 控制台應用程式以連線到 AI 模型。

  1. 在您的電腦上的空白目錄中,使用 dotnet new 命令來建立新的控制台應用程式:

    dotnet new console -o ExtensionsAI
    
  2. 將目錄變更為應用程式資料夾:

    cd ExtensionsAI
    
  3. 安裝必要的套件:

    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.UserSecrets
    
    dotnet add package OpenAI
    dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease
    dotnet add package Microsoft.Extensions.Configuration
    dotnet add package Microsoft.Extensions.Configuration.UserSecrets
    
  4. 在 Visual Studio Code 或您選擇的編輯器中開啟應用程式。

建立 AI 服務

  1. 若要布建 Azure OpenAI 服務和模型,請完成 建立及部署 Azure OpenAI 服務資源 一文中的步驟。

  2. 在終端機或命令列中,導航到專案目錄的根目錄。

  3. 執行下列命令來設定範例應用程式的 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>
    

設定應用程式

  1. 請從終端機或命令提示字元導航至您的 .NET 專案根目錄。

  2. 執行下列命令,將 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 模型。

  1. benefits.md 檔案複製到您的項目目錄。 將項目設定為將此檔案複製到輸出目錄。 如果您使用 Visual Studio,請在 [方案總管] 中的檔案上按下滑鼠右鍵,選取 [屬性],然後將 [複製到輸出目錄] 設定為 [僅複製更新版本]。

  2. 在檔案中 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();
    
  3. 新增程式代碼以讀取 benefits.md 檔案內容,然後建立模型的提示。 提示會指示模型以 20 個字以下摘要檔案的文字內容。

    string text = File.ReadAllText("benefits.md");
    string prompt = $"""
        Summarize the the following text in 20 words or less:
        {text}
        """;
    
  4. GetResponseAsync呼叫 方法,將提示傳送至模型以產生回應。

    // Submit the prompt and print out the response.
    ChatResponse response = await client.GetResponseAsync(
        prompt,
        new ChatOptions { MaxOutputTokens = 400 });
    Console.WriteLine(response);
    
  5. 執行應用程式:

    dotnet run
    

    應用程式會列印 AI 模型的完成回應。 自定義檔案的 benefits.md 文字內容或摘要的長度,以查看響應的差異。

清理資源

如果您不再需要它們,請刪除 Azure OpenAI 資源和 GPT-4 模型部署。

  1. Azure 入口網站中,流覽至 Azure OpenAI 資源。
  2. 選取 Azure OpenAI 資源,然後選取 [刪除

後續步驟