如何用Postman來呼叫 Azure OpenAI 的 API — Step-by-Step-Tutorial
嗨大家好,今天的文章要介紹的是如何用Postman來呼叫 Azure OpenAI 的 API。
文章大致上會分為幾個階段:
- 介紹API與Postman
- 創建Azure OpenAI Service,獲取該服務的Key和Endpoint
- 在Postman上建立新的Collection並連接Azure OpenAI
- 加強資安措施,將Key和Endpoint寫進環境變數中
- 結論
在進入正式步驟前,先來介紹一下 API 的概念以及 Postman 這個好用的 API 互動工具吧!
介紹API與Postman
甚麼是 API ?
應用程序介面(API) 的全名是「Application Programming Interface」,我們可以使用它來創建軟體或與外部系統互動,有點像是我們的程式與外界的橋樑,API 有許多形式,可以是一個指令、功能、協議或是一個對象。
舉例來說,如果我們去餐廳,想點一份Pizza來吃,這時候餐廳裡的分別扮演的角色就像是:
- 我們(User)
- 櫃台人員(API)
- 廚師(應用程式)
獲取API的方式就像我們不需要自己進廚房去作出一份Pizza:我們(User)進到餐廳,向櫃檯人員(API)點餐(下指令),並將我們的需求(request)送到廚師(應用程式),廚師明白需求後做出香噴噴的食物(response)送到我們手中。
( 想了解更多可以參考這個影片:What is an API? )
有了簡單的 API 概念後,接下來我們來認識 Postman是甚麼。
甚麼是Postman ?
Postman 是目前最被廣泛使用的API互動工具之一,每個月有超過五百萬的使用者,它提供了一個友善的界面來發送請求到 API 並從 API 接收回應,使用Postman 讓 API 開發變得容易和簡單,因為它能進行各種類型的 HTTP 請求(GET、POST、PUT、PATCH),也能保留環境以供後續使用,還可以將 API 轉換為各種程式語言(如 JavaScript、Python)。
想像一下我們現在有個充滿玩具的大箱子(應用程式),但是箱子被鎖住了,需要一把特殊的鑰匙(API)來打開它。而Postman是我們的好朋友,他很擅長於使用這把特殊的鑰匙。我們只要告訴Postman想要從箱子裡拿出什麼玩具,或者想放什麼新玩具進去就可以,它就會幫我們達成。「App」如其名,Postman就像一個幫助我們與電腦書信往來的友好「郵差」。
(透過這個連結來下載 Postman )
接下來就進入這次的主體, Azure OpenAI 與 Postman 的整合之旅,讓我們開始吧!
創建Azure OpenAI Service,獲取該服務的Key和Endpoint
-
搜尋「OpenAI」並建立服務
-
進到建立好的服務,從「Resource Management」中進到「Keys and Endpoint」並取得KEY值,留著稍後使用
-
接下來點選「Go to Azure OpenAI Studio」
-
到「Deployments」部屬模型並進到「Playground」的Chat
-
確定模型可以使用後點選「View code」,設定改成「json」,並複製程式碼,接著複製服務的端點(Endpoint),留著稍後使用
Azure部分到這邊告一段落,記得將上面所複製的資料留存好,以便待會使用
在Postman上建立新的Collection並連接Azure OpenAI
-
第一次使用Postman需先建立一個新的「Workspaces」,並選取「New」建立新的「Collection」,建好後選取「Add a request」
-
調整剛建好的Request,將GET改成「POST」,選取「Body」的「raw」,並將「Text」改成「JSON」格式
-
貼上剛才複製的「Endpoint」和程式碼並試著發送「POST」Request
-
不過這時候會發現 HTTP 狀態碼回傳「401 Permission Denied」,因為我們還沒提供該服務的Key值
註: 想了解 HTTP 狀態碼的讀者可以參考這個網站
5. 選取「Params」,並加入參數「api-key」,在Value的部分貼上剛才複製的key,再發送一次「POST」request,看到HTTP狀態碼顯示 「200 OK」,可以發現有成功收到content的內容代表我們成功呼叫 Azure OpenAI 的 API 囉!
成功地呼叫了API很開心,但是露出私密的金鑰還是會覺得怪怪的,畢竟資安風險是我們都要謹慎的議題,一不小心外流出去可能造成機密公開或是成本的重大損失。
接下來我們就來看如何加強資安方面的措施,讓我們能更安心地使用Postman。
加強資安措施,將Key和Endpoint寫進環境變數中
將Key 值和Endpoint寫進環境變數中,是很棒的防護措施,而採取這種方法能帶來許多好處,因為它不僅提升了安全性,也使程式更容易維護。
-
點選一旁的「Environment」,添加Key 值和Endpoint,並將 Type 設成「secret」
(部屬的模型以及API版本也可寫進環境變數中,不過這兩個值比較不像Key 值和Endpoint是敏感資訊,可以視情況決定。 )
-
將要傳送「POST」request的網址改成下列的格式,並發送請求,如果有得到content代表請求成功囉!
{{OPENAI_API_BASE}}/openai/deployments/{{CHATCOMPLETION_MODEL}}/chat/completions?api-version={{OPENAI_API_VERSION}}&api-key={{OPENAI_API_KEY}}
使用環境變數,我們可以避免將敏感信息直接寫入程式中,保護金鑰不被未經授權的人員使用或泄露。
再來,如果今天需要刪除原有的Azure OpenAI Service,並建立一個新的服務,我們只需更改環境中的變數,而無需修改任何程式碼,大大降低了維護的複雜性並提高了效率。
現在就將你的金鑰儲存到環境變數中,為你的程式增添更多保護吧!
結論
透過這篇文章,我們一步步走過了如何使用Postman來呼叫Azure OpenAI的API,從基本的API和Postman介紹,到透過Postman的友善界面,我們能夠輕鬆地與Azure OpenAI進行互動的實際操作和資安加固的步驟,將金鑰和Endpoint儲存至環境變數中,不僅讓我們的程式更安全,也使得維護工作更為便利。
Postman是一個非常有用的工具,未來無論要進行API測試或是與不同的服務進行串接,在閱讀完後,應該會對這整個流程有更清晰的理解。
希望透過這篇教學,你有獲得一些實用的知識,並應用在未來程式開發的旅程中。
近期留言