前陣子 OpenAI 正式推出官方的 C# Library ,之前介紹微軟推出的 Azure OpenAI client library for .NET 也把版號進到 2.0.0 了,這時候就會有疑問是不是 OpenAI 要出來取代微軟之前推出的,試了一下發現並非如此,而是兩個 Library 是相輔相成的,後面就簡單來介紹跟說明如何使用吧。
說明
首先透過 NuGet 來安裝套件。
dotnet add package OpenAI --prerelease
來看一下基本的用法,首先是建立要呼叫的 OpenAI 模型對應的 Client,比如要使用 Chat 的話就是 ChatClient
然後再呼叫對應的方法。
using OpenAI.Chat;
ChatClient client = new ChatClient(model: "gpt-4o", "{OPENAI_API_KEY}");
ChatCompletion completion = client.CompleteChat("Say 'this is a test.'");
Console.WriteLine($"[ASSISTANT]: {completion}");
而 Library 裡面提供了底下的 Namespace 和 Client,比如說要使用 Dalle 模型來產生圖片就是使用 ImageClient 就可以了。
Namespace | Client class | Notes |
---|---|---|
OpenAI.Assistants | AssistantClient | [Experimental] |
OpenAI.Audio | AudioClient | |
OpenAI.Batch | BatchClient | |
OpenAI.Chat | ChatClient | |
OpenAI.Embeddings | EmbeddingClient | |
OpenAI.FineTuning | FineTuningClient | |
OpenAI.Files | FileClient | |
OpenAI.Images | ImageClient | |
OpenAI.Models | ModelClient | |
OpenAI.Moderations | ModerationClient | |
OpenAI.VectorStores | VectorStoreClient | [Experimental] |
但是每一個 Client 建立的時候都要使用 OpenAI Api Key 來建立,還是會有點不方便,所以也有提供 OpenAIClient
這一個類別可以使用,就可以透過對應的 GetClient 方法來取得對應的 Client,比如底下的程式碼就可以取得對應的 Chat 和 Image 模型的 Client 來使用。
OpenAIClient client = new OpenAIClient("OPENAI_API_KEY");
ChatClient chatClient = client.GetChatClient("gpt4-o"); // 取得 gpt4-o 模型
ImageClient imageClient = client.GetImageClient("dall-e-3"); // 取得 dall-e-3 模型
配合 Azure OpenAI 使用
針對要使用 Azure OpenAI 的話就是要搭配 Azure OpenAI client library for .NET 的 2.0.0 以上的版本了,這次隨著官方的 Library 推出,微軟也把版號從 1.x 更新到了 2.0,就是為了配合 OpenAI 的官方套件,另外從 Azure.AI.OpenAI Nuget 套件的相依套件也可以發現他是相依於 OpenAI 的。
一樣透過 Nuget 安裝。
dotnet add package Azure.AI.OpenAI --prerelease
在使用上就是建立前面提到的 OpenAIClient
類別,Azure OpenAI 套件有針對 Azure 擴充出對應的 AzureOpenAIClient
類別,再來就跟前面提到的 GetClient 方法來使用就可以了。
OpenAIClient client = new AzureOpenAIClient(
new Uri("https://{your account}.openai.azure.com"),
new AzureKeyCredential("{Your Azure OpenAI Sservice Api Key}"));
ChatClient chatClient = client.GetChatClient("gpt4-o"); // 取得 gpt4-o 模型
ImageClient imageClient = client.GetImageClient("dall-e-3"); // 取得 dall-e-3 模型
更多實做的細節可以參考前面的系列文章,我已經把相關的程式碼都更新到使用新版本的套件方法了。
- 透過 Azure OpenAI client library for .NET 實做串接 OpenAI Api
- Azure OpenAI DALL·E 介紹和實做串接
- Function Calling 介紹和實做串接
- Azure OpenAI Whisper 介紹和實做串接
- Azure OpenAI Assistants API 介紹和基本實做
- Azure OpenAI Assistants API 方法完整介紹和實做
- Azure OpenAI Assistants API 工具介紹
結論
本篇文章介紹了如何在 .NET 環境中透過官方的 OpenAI 和 Azure OpenAI 套件。透過 NuGet 套件的安裝與簡單的設定,就能夠輕鬆串接 OpenAI 的各種服務,無論是使用 OpenAI 官方 API 還是 Azure 平台,都提供了便捷的開發體驗。藉由這些強大的工具,開發者可以在自己的應用程式中快速導入先進的 AI 能力,並且隨著官方持續更新套件,未來將有更多功能和擴充性等待我們去探索和實現。
希望這篇文章能夠幫助大家快速上手並開始在專案中應用 OpenAI 技術。如果有興趣了解更多實作細節,可以參考系列文章中的其他篇章,獲取更深入的使用範例和技巧。
參考資料