Azure OpenAI Service 17 - OpenAI 官方 C# Library 實做簡介

前陣子 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 就可以了。

NamespaceClient classNotes
OpenAI.AssistantsAssistantClient[Experimental]
OpenAI.AudioAudioClient 
OpenAI.BatchBatchClient 
OpenAI.ChatChatClient 
OpenAI.EmbeddingsEmbeddingClient 
OpenAI.FineTuningFineTuningClient 
OpenAI.FilesFileClient 
OpenAI.ImagesImageClient 
OpenAI.ModelsModelClient 
OpenAI.ModerationsModerationClient 
OpenAI.VectorStoresVectorStoreClient[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 模型

更多實做的細節可以參考前面的系列文章,我已經把相關的程式碼都更新到使用新版本的套件方法了。

結論

本篇文章介紹了如何在 .NET 環境中透過官方的 OpenAI 和 Azure OpenAI 套件。透過 NuGet 套件的安裝與簡單的設定,就能夠輕鬆串接 OpenAI 的各種服務,無論是使用 OpenAI 官方 API 還是 Azure 平台,都提供了便捷的開發體驗。藉由這些強大的工具,開發者可以在自己的應用程式中快速導入先進的 AI 能力,並且隨著官方持續更新套件,未來將有更多功能和擴充性等待我們去探索和實現。

希望這篇文章能夠幫助大家快速上手並開始在專案中應用 OpenAI 技術。如果有興趣了解更多實作細節,可以參考系列文章中的其他篇章,獲取更深入的使用範例和技巧。

參考資料