Azure OpenAI 的申請與使用

OpenAI 介紹久了,覺得還是需要寫一篇來介紹Azure OpenAI的申請和使用。

和 OpenAI APIs一樣,微軟身為 OpenAI 最大的投資廠商,理當有一組 Azure 上的 OpenAI API 服務。然而其實,兩組API之間,幾乎完全一樣,不管是用法和價格。

那兩者之間的差異如何定位呢?

OpenAI 與 Azure OpenAI 之間的差異

目前Azure OpenAI API服務的定位是針對企業用戶,而OpenAI API則有開放給一般個人用戶申請。這使得Azure OpenAI API的嚴謹度與安全性相對比較高。例如,Azure OpenAI API在呼叫時有獨立的Endpoint,針對使用的模型也有獨立的部署,除了不會跟別人共用API呼叫端點因此可以讓安全性和穩定性提升之外,微軟也承諾你上傳的數據不會被用在訓練模型的用途(這也是大家很在意的議題)。

此外,Azure OpenAI API的帳單是跟著Azure訂閱,同時在全球各地有不同的資料中心,這讓開發人員可以選擇距離自己(或自己的客戶)比較近的資料中心進行模型部署,以便於取得最好的運作效能。

由於微軟是透過在地的合作夥伴進行Azure銷售,因此在Azure OpenAI API的使用成本方面,可能因為採購的優惠折扣而有比較低的總體金額,相較之下OpenAI API就是死板板的固定金額,碰到問題的時候大概也只能上討論區尋求解答,比較沒有在地的服務。

OpenAI API有多次因為用戶數量太大,而導致API端點無法呼叫的案例,OpenAI API是全球同一個端點,因此當此問題發生時,很可能大家都會遭遇魚池之殃,全都無法使用。

另外就是,Azure OpenAI API針對具有暴力、自殘、猥褻、情色的文字的過濾相較於OpenAI API更加嚴格,你也可以從後台選擇不同等級的過濾器,來排除可能造成問題的文字,這對服務的安全性也是一種保障。

依照我現在自己測試的結果,最大的差異在於,微軟的API確實有比較嚴謹(有時候甚至過頭)的filter(過濾器),會對偏激或煽情的字眼非常敏感。在呼叫API時,你偶而會收到類似底下這樣的訊息():
圖片

此外,就是目前(2024/1) OpenAI 有支援 Assistants API,但 Azure OpenAI 我還沒看到(2024/2更新,已經以preview方式提供),此外,就是對於模型的建立以及API呼叫的端點使用策略有點不同,其他,幾乎完全一樣。

這兩組 API 如此相似,那微軟和 OpenAI 公司之間,到底是什麼關係呢? 依照網路的說法,很多媒體都問過納德拉(微軟CEO,下圖左),微軟和 OpenAI 的合作關係如何定義,納德拉答案從來沒改過:「相互依賴」。()

Source:Sam Altman

Azure OpenAI 的申請

目前,你要申請 OpenAI 的 API 使用權很簡單,只需要刷卡付錢付了錢之後,你要調用LLM或DALL-E生成圖片也好,生成文章也行,都非常自由,我在之前的文章中都有介紹過。

而Azure Open AI,之前在申請時明顯需要排隊等候,雖然一樣是雲端的服務,只要你有 Azure 訂閱帳號,就可以透過底下位置申請:
https://portal.azure.com/#create/Microsoft.CognitiveServicesOpenAI

然而,並不是每個人都可以順利取用,你雖然可以透過 Azure Portal 申請,但未經填表核准,你會看到的其實是底下這樣的畫面:
圖片

這表示你的訂閱,目前沒有使用 Azure OpenAI 的條件。

Azure OpenAI主打定位是企業使用,因此要提前申請。其實申請也不難,就是填底下表單:
網址位於: https://aka.ms/oai/access

圖片

我填寫過數次此表,要通過,簡單的說有底下幾個條件。

  1. 建議用公司帳號申請,別用 @gmail.com、@yahoo.com、@hotmail.com …等 一般mail 申請。
  2. 申請的Azure訂閱,建議不要是 free trial, 學生或微軟贊助訂閱,最好是企業的 EA訂閱、MSP(Managed Service Provider)、CSP(Cloud Service Provider)、LSP (License Solution Partner)等微軟的經銷商所賣出的訂閱。我自己測試的時候,用 PAYG 也失敗過。(但有學員最近反映說可以,觀察中)

填表的時候,建議一開始別勾選太多,先從最基本的項目開始就行,除非你覺得都會用到,否則勾得愈多,要填的理由就愈多,被拒絕的機會就愈高:
圖片

你必須針對你勾選的每一個服務,說明你的使用原因以及要如何使用,按下送件鈕之後,就是等。

通過後,你會收到一封類似底下這樣的信件,恭喜你上船了:
圖片

如果被批退,則會收到:
圖片

我被退件的原因,大多是訂閱並非 Managed by MS,這就是我前面說,建議你申請的訂閱,最好是企業的 EA訂閱、MSP(Managed Service Provider)、CSP(Cloud Service Provider)、LSP (License Solution Partner)等微軟的經銷商所賣出的訂閱的原因。

申請好之後,你在該訂閱底下,就可以建立 Azure OpeAI 服務了:
圖片

申請好之後,你可以看到 Azure Portal 的 Azure OpenAI 服務首頁,有連結可以進到 Azure AI Studio:
圖片

進入之後的第一件事情,就是先佈署一個模型,和 OpenAI 不同,Azure OpenAI 的 API 有著自己的獨立端點(我覺得這樣相對比較安全一點),因此,你必須先佈署自己的 Model,才可以使用:
圖片

佈署完成之後,你可以切到 『遊樂場』 中的 『聊天』,嘗試輸入一下問題,你會發現立刻就會得到答案:
圖片

不僅如此,如果你想要用 Rest API 來呼叫,可以參考這裡:
圖片

你會看到除了透過 REST API 這個呼叫方式,還有 C#、Python 的語法,這是因為 Azure OpenAI 還有支援的SDK:
圖片

但請特別留意到,Azure OpenAI 的 Rest API在呼叫時,Endpoint和OpenAI有所不同,Key的用法也和OpenAI不同,雖然Body 參數完全和OpenAI API相同,但Azure OpenAI 的 Rest API有著自訂的端點佈署模型名稱,這兩個參數構成了整個 Endpoint 的一部份。

但只要掌握了這些差異,你可以輕易的透過程式碼或工具呼叫API:
圖片
並且享有企業等級的資安支援以及超級嚴謹的過濾器,不錯吧,趕快申請唷(因為你可能要等很久)。

留言

這個網誌中的熱門文章

使用LM Studio輕鬆在本地端以API呼叫大語言模型(LLM)

VS Code的字體大小

使用 Dify 建立企業請假機器人

使用 Dify API 快速建立一個包含前後文記憶的對談機器人

使用C#開發LineBot(3) - 使用LineBotSDK發送Line訊息