Part 0:地基工程 – 萬丈高樓平地起 (前置準備)
在您寫下第一行程式碼之前,必須先完成三項準備工作。90% 的新手問題都出在這裡!
1. 建立一個 Google Cloud 專案 (Project)
所有 Google Cloud 的服務(像 Vision API、虛擬機、資料庫)都必須存在於一個「專案」之內。專案是您管理資源、權限和帳單的單位。
- 前往 Google Cloud Console。
- 如果您是全新用戶,系統會引導您建立第一個專案。
- 如果您已經有帳戶,請點擊頁面左上角的專案選單,然後點擊「新增專案」。
- 給您的專案取一個名字(例如
my-vision-test
),並記下系統為您產生的專案 ID (Project ID)。
2. 啟用 Cloud Vision API
為了節省費用和安全性,GCP 中的 API 預設是關閉的。您必須手動為您的專案「開啟」您想使用的 API。
- 在 Cloud Console 頂端的搜尋列中,輸入「Cloud Vision API」。
- 在搜尋結果中點擊「Cloud Vision API」。
- 您會看到一個頁面,上面有一個藍色的「啟用 (Enable)」按鈕。點擊它!
- 注意:如果您的專案尚未連結到帳單帳戶,Google 可能會提示您先設定帳單資訊。這是使用大多數 GCP 商業服務的必要步驟。
3. 安裝 Google Cloud SDK (gcloud)
gcloud
指令並非您電腦內建的程式,它是一個名為 Google Cloud SDK 的工具包中的一部分。您需要先安裝它。
安裝完成後,關閉並重新打開您的終端機(命令提示字元),輸入 gcloud --version
。如果能看到版本號,代表安裝成功!
根據您的作業系統(Windows, macOS, Linux)依照網頁上的指示進行下載和安裝。
在使用 Google 的 AI 和雲端服務時,許多開發者第一個遇到的關卡就是「認證」。為什麼 Gemini API 用的是一組簡單的 API Key,而 Vision API 卻需要一個 .json
憑證檔案?我可以在本機開發時不要管理那個檔案嗎?
本篇指南將徹底釐清這些觀念,並透過實際的錯誤案例,帶您一步步完成最推薦的本機開發認證流程。
第一部分:核心觀念 – 兩種認證方式的區別
首先,您必須理解 Google 有兩套主流的認證體系,對應不同的服務生態:
當您使用 google.cloud
系列的函式庫時,就必須遵循方法 B 的認證規則。
第二部分:最佳實踐 – 在本機開發環境設定認證
在您自己的電腦上開發時,最推薦、最方便的方法是使用 gcloud
命令列工具。它能讓您免於在程式碼中處理 .json
檔案路徑的麻煩。
步驟一:執行登入指令
打開您的終端機 (命令提示字元、PowerShell 或 Terminal),輸入以下指令:
gcloud auth application-default login
步驟二:踩雷點 #1 – 命令提示字元中的錯誤
執行指令後,gcloud
會嘗試打開瀏覽器,但您可能會立刻在終端機看到如下的錯誤訊息。
正如這張截圖所示(後半段為正確的response):
這個錯誤 scope is required but not consented
清楚地告訴我們:「gcloud 工具需要的權限,在瀏覽器頁面中沒有被同意。」
步驟三:踩雷點 #2 – 瀏覽器授權頁面的陷阱 (最關鍵!)
這個錯誤的根源,發生在 gcloud
自動打開的瀏覽器授權頁面中。
這就是關鍵截圖,它完美地解釋了問題所在:
問題分析:
在上圖中,為了讓 gcloud
工具能代表您管理雲端資源,它需要您授予「查看、編輯、設定和刪除您的 Google Cloud 資料…」這個權限。
然而,當時沒有勾選它右邊的核取方塊!
正確操作:
您必須在這個頁面:
- 勾選「☐ 查看、編輯、設定和刪除您的 Google Cloud 資料…」這個選項。
- (更簡單的做法是,直接勾選最上方的「☐ 全選」)。
- 點擊右下角的「繼續」按鈕。
一旦您正確授權,gcloud
工具就會在您的電腦中產生一個全域的憑證,之後所有 google.cloud.*
的 Python 函式庫都能自動找到並使用它。
第三部分:成功!見證魔法發生
當您正確完成了 gcloud
登入授權後,您的 Python 程式碼就可以變得非常簡潔。
最後成功的程式碼完美地展示了這一點:
程式碼重點分析:
- 不再需要手動指定憑證路徑:您看到,設定
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]
的那幾行程式碼已經被註解掉了。這是因為我們不再需要它了! - 自動認證:當程式執行到
client = vision.ImageAnnotatorClient()
這一行時,函式庫的「應用程式預設憑證 (Application Default Credentials, ADC)」機制會自動在您的系統中尋找由gcloud auth application-default login
所建立的憑證。 - 成功執行:因為 ADC 成功找到了憑證,所以您的程式可以順利呼叫 Vision API 並取回辨識結果,如您截圖下方所顯示的標籤列表。
總結
- 釐清觀念:
google-generativeai
(Gemini) 用 API Key;google-cloud-*
(Vision) 用服務帳戶/ADC。 - 本機開發首選:使用
gcloud auth application-default login
。 - 最大陷阱:執行指令後,務必在彈出的瀏覽器頁面中,勾選所有需要的權限,特別是包含「Google Cloud 資料」的選項。
- 最終程式碼:認證成功後,您的 Python 程式碼中不再需要出現任何憑證路徑或 API 金鑰,讓程式碼更乾淨、更安全。
推薦hahow線上學習python: https://igrape.net/30afN