使用 Azure Vision API 之 奇怪錯誤訊息

最近 AI 很紅,連帶著 Azure AI 詢問度也很高。最近很多企業客戶紛紛參與Azure的 AI 教育訓練。這個訓練課程中, Computer Vision 也是重點之一。

其實 Azure 上的 Computer Vision 功能很強,模型也都封裝好放上雲端,可以透過REST API的方式進行呼叫,從2016年起,我們就在 Blog 上多次介紹過這個 API,相關文章可以參考這裡

但這一陣子頻繁的帶著學員操作,看到學員在使用postman呼叫API時,常發生許多有趣的bug,整理一下,和大家一起分享。

要使用Computer Vision,你只需要申請好一組 endpoint,並且取得 key 即可,這很簡單:
圖片

文件上可以看到,使用此API,可以辨識人臉、取得圖片說明、判斷成人圖片,因此你使用了底下這樣的呼叫,可是卻硬生生地得到 HTTP 400 的錯誤:
圖片

如果你對 Azure AI 熟悉的話不妨挑戰一下,先停在這邊,看看上面這個呼叫指令可能有什麼錯?

從訊息看起來是 NotSupportedVisualFeature 但你放大觀察VisualFeature的部分,看起來也沒啥問題:
圖片

哪怎麼回事?

結果發現,網址列多一個空白:
圖片

這樣也不行? 對,這樣也不行。

另外學員常常也碰到的錯誤像是收到 404,但 endpoint 明明正確:
圖片

結果是,http method用錯:
圖片

從Get改為POST問題就解決了。

至於什麼把本來該放在 Header 的 key 錯放到 parameter 結果收到 401 的錯誤,也是見怪不怪了:
圖片

這些都很簡單,但是稍微注意一下,會減少你走冤枉路的時間。畢竟,平常工作已經很累了,把時間花在這種 debug 事情上,有些冤枉了。

我們在透過程式碼呼叫雲端的API前,我都建議同仁先用 postman 測試一下,如果測不過,就先別急著寫程式了,先搞定API,測通了再寫code,往往事半功倍,否則如果從程式碼開始卡關,你會debug的更辛苦。😆

留言

這個網誌中的熱門文章

使用Qdrant向量資料庫實作語意相似度比對

專業的價值...

VS Code Terminal 的編碼問題

讓 LINE Bot 對談機器人顯示 "Loading..." 動畫

在Windows Phone (WP8) 中使用SignalR