iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
IT管理

萬丈高樓平地起:解決方案架構師的探索之旅系列 第 22

Day 22 : 企業內部開發AI機器人解決方案評估(Azure OpenAI篇)

  • 分享至 

  • xImage
  •  

昨天的分享提到了Saas服務的選項,然後今天則是會跟大家分享關於純開發的評估與可能的做法,分別從服務以及實作的選項各別檢視和說明。

API服務

再過去幾天的分享文章有提到OpenAI的服務,然後也有提到再導入服務的時候需要考量是否有商業版或者是資料隱私的問題,這個部分會先介紹Azure OpenAI,藉此讓大家能夠在公司內部評估的時候多一個選擇。

什麼是 Azure OpenAI

Azure OpenAI Service 提供了對 OpenAI 強大語言模型的 REST API 訪問,包括 GPT-4、GPT-35-Turbo 和 Embeddings 模型系列。這些模型可以輕易地適用於包括但不限於內容生成、摘要、語義搜索和自然語言到代碼轉換的特定任務。

那....他跟OpenAI有什麼差異呢?

Azure OpenAI 服務結合了 OpenAI 的先進語言 AI 模型和 Microsoft Azure 的安全及企業級承諾,並提供私有網絡、區域可用性和負責任的 AI 內容過濾,而 OpenAI 主要是提供 AI 模型和 API,而未包含 Azure 提供的安全和企業級功能。參考資訊

前置作業

而要使用OpenAI API比較不同的是需要就服務提出申請(填寫的申請單連結),然後有幾個欄位需特別留意像是Azure訂閱的部分,若公司內部有依照訂閱區分開發環境和正式環境,就需要選擇不只一個的訂閱選項(如下圖)。

https://ithelp.ithome.com.tw/upload/images/20231001/20141298svMu8nGCCZ.png

https://ithelp.ithome.com.tw/upload/images/20231001/20141298JAh5Ct691X.png

在送出申請後等待幾天完會收到開通的通知,然後接續就可以到先前申請訂閱用戶下的Azure OpenAI服務建立資源,然後若需要透過UI介面的功能測試這個模型可以到Azure OpenAI Studio

https://ithelp.ithome.com.tw/upload/images/20231001/20141298IEaQ2c35DA.png

在建立資源的時候如果後續提供的服務比較多人使用,這時候需要特別留意一下每個資源的地區(簡單來說每建立一個資源等同會使用某一個國家的伺服器),關於這方面的計價或者是資源的限制可以參考Model summary table and region availability,裡面包含了每個模型可以在哪一些地區建立、當前哪一些地區需求量高無法建立或者是有哪一些模型之後會被棄用。

實作的開發選擇

在概念上沒有太大的差異,然後當完成前面的申請與前置作業的設定後,在開發的環節主要有兩種實踐的做法分別為SDK串接以及Restful API,那REST API和SDK在開發上的主要差異包括

  1. 使用便捷性:SDK 通常提供更高層次的封裝,使開發者更容易使用,而 REST API 則需要開發者有更多的網路和HTTP協議知識。
  2. 語言支持:REST API 是語言無關的,可以用任何支持HTTP的程式語言來使用;而 SDK 通常是針對特定語言(例如 Python)設計的。
  3. 維護和更新:SDK可能會隨著服務的更新而更新,提供新功能的支持;而使用REST API的開發者可能需要手動更新他們的代碼以適應API的變化。

上述提到的SDK和REST API可以參考Quickstart: Get started generating text using Azure OpenAI Service快速上手。

當使用.NET作為後端的服務或者是MVC的方式開發的話,已經建立好的專案可以透過指令安裝SDK,並且確認Azure OpenAI的識別資訊後再搭配範例程式碼就可以看到實作的結果。
https://ithelp.ithome.com.tw/upload/images/20231001/20141298xH3nwjotGR.png

using Azure;
using Azure.AI.OpenAI;
using static System.Environment;

string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_KEY");

// Enter the deployment name you chose when you deployed the model.
string engine = "text-davinci-003";

OpenAIClient client = new(new Uri(endpoint), new AzureKeyCredential(key));

string prompt = "When was Microsoft founded?";
Console.Write($"Input: {prompt}\n");

Response<Completions> completionsResponse = 
    await client.GetCompletionsAsync(engine, prompt);
string completion = completionsResponse.Value.Choices[0].Text;
Console.WriteLine($"Chatbot: {completion}");

結論

總結今天分享的資訊,如果企業內部已經有使用Azure的服務,並且對於資料上的保護有比較在意的話,那使用Azure OpenAI個人認為是一個不錯的選擇,另外在建立資源的過程中也可以更加彈性的規劃。

除此之外由於微軟有投資OpenAI,所以未來只要有模型的升級或者是客製化的服務,在Azure OpenAI也可以使用的到。


上一篇
Day 21 : 企業內部開發或是導入Saas服務的AI機器人解決方案評估(Saas服務篇)
下一篇
Day 23 : 公司內部開發AI機器人可行性方案 (Low Code篇)
系列文
萬丈高樓平地起:解決方案架構師的探索之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言