本頁面適用於應用程式開發人員,他們隸屬於應用程式營運團隊,負責設定應用程式和開發環境,以啟用 AI 功能。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。
事前準備
如要驗證 API 要求及設定服務帳戶,請向管理員要求必要權限。此外,請確認您已為 Vertex AI 設定專案。詳情請參閱「設定 Vertex AI 專案」。
- 在開發環境中設定驗證機制之前,請務必更新本機信任存放區。
要求 IAM 角色
請與 IAM 專案管理員聯絡,要求在專案命名空間中取得下列角色:
- IAM 專案管理員 (
project-iam-admin):在專案命名空間中建立服務帳戶及管理角色繫結。 - AI OCR 開發人員 (
ai-ocr-developer):驗證對 OCR API 的要求。 - AI 語音開發人員 (
ai-speech-developer):驗證對 Speech-to-Text API 的要求。 - AI 文字嵌入開發人員 (
ai-text-embedding-developer):驗證對Text-Embedding-Gecko模型的要求。 - AI 文字嵌入 Multilingual Developer (
ai-text-embedding-multilingual-developer):驗證對Text-Multilingual-Embedding模型的請求。 - AI Translation 開發人員 (
ai-translation-developer):驗證 Vertex AI Translation API 的要求。 - Vertex AI 預測使用者 (
vertex-ai-prediction-user):驗證傳送至線上預測模型的預測要求。
如要進一步瞭解這些角色,請參閱「準備 IAM 權限」。
向 Vertex AI 服務驗證
與 Vertex AI 服務的互動是透過驗證權杖完成。權杖是數位物件,可在您提供有效憑證後驗證您的身分和授權。權杖會攜帶帳戶的特定資訊,以及帳戶存取及操作服務和資源的權限。
設定驗證的方法有兩種:
使用使用者帳戶進行驗證
以下說明如何取得使用者帳戶的驗證權杖:
記下要使用的 API 端點。
如要存取想使用的 Vertex AI 服務或生成式 AI 模型,請為使用者帳戶授予「準備 IAM 權限」中列出的相應角色。
使用與 API 互動的使用者帳戶登入 Distributed Cloud:
gdcloud auth login取得驗證權杖:
gdcloud auth print-identity-token --audiences=https://ENDPOINT將
ENDPOINT替換為貴組織使用的 API 端點。詳情請參閱「查看服務狀態和端點」。視驗證權杖的預期用途而定,您可能需要在目標對象路徑中的服務端點後方加入通訊埠,如下所示:
- 如果您使用用戶端程式庫提出要求,則必須在目標對象路徑的服務端點後方加上通訊埠
:443。因此,指令中的--audiences路徑必須是https://ENDPOINT:443。 - 如果您使用 gRPC、
curl或程式輔助 REST 呼叫提出要求,請勿加入通訊埠。因此,指令中的--audiences路徑必須是https://ENDPOINT。
輸出內容會顯示驗證權杖。將權杖新增至您發出的指令列要求標頭,如以下範例所示:
-H "Authorization: Bearer TOKEN"將
TOKEN替換為輸出內容顯示的驗證權杖值。- 如果您使用用戶端程式庫提出要求,則必須在目標對象路徑的服務端點後方加上通訊埠
使用服務帳戶進行驗證
以下說明如何取得服務帳戶的驗證權杖:
記下要使用的 API 端點。
設定服務帳戶,用於存取 Vertex AI 服務或生成式 AI 模型。
將「準備 IAM 權限」中列出的相應角色授予服務帳戶,讓服務帳戶能存取您要使用的服務或模型。
設定下列環境變數:
export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_SERVICE_KEY將
PATH_TO_SERVICE_KEY替換為 JSON 檔案的路徑,該檔案包含服務帳戶的金鑰組。安裝
google-auth用戶端程式庫:pip install google-auth在 Python 指令碼中加入下列程式碼:
import os import google.auth from google.auth.transport import requests import requests as reqs os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "PATH_TO_SERVICE_KEY" os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "CERT_NAME" # If you use a client library for your request, # you must include port :443 after the service endpoint # in the audience path. audience = "https://ENDPOINT" creds, project_id = google.auth.default() print(project_id) creds = creds.with_gdch_audience(audience) def test_get_token(): sesh = reqs.Session() req = requests.Request(session=sesh) creds.refresh(req) print(creds.token) if __name__=="__main__": test_get_token()更改下列內容:
PATH_TO_SERVICE_KEY:JSON 檔案的路徑,其中包含服務帳戶的金鑰組。CERT_NAME:憑證授權單位 (CA) 憑證檔案的名稱,例如org-1-trust-bundle-ca.cert。只有在開發環境中才需要這個值。否則請省略。ENDPOINT:貴組織使用的 API 端點。詳情請參閱「查看服務狀態和端點」。視驗證權杖的預期用途而定,您可能需要在目標對象路徑中的服務端點後方加入通訊埠,如下所示:- 如果您使用用戶端程式庫提出要求,則必須在目標對象路徑的服務端點後方加入通訊埠
:443。因此,指令碼中的audience路徑必須是"https://ENDPOINT:443"。 - 如果您使用 gRPC、
curl或程式輔助 REST 呼叫提出要求,請勿加入通訊埠。因此,指令碼中的audience路徑必須是"https://ENDPOINT"。
- 如果您使用用戶端程式庫提出要求,則必須在目標對象路徑的服務端點後方加入通訊埠
儲存 Python 指令碼。
執行 Python 指令碼來擷取權杖:
python SCRIPT_NAME將
SCRIPT_NAME替換為您為 Python 指令碼指定的名稱,例如token.py。輸出內容會顯示驗證權杖。將權杖新增至您發出的指令列要求標頭,如以下範例所示:
-H "Authorization: Bearer TOKEN"將
TOKEN替換為輸出內容顯示的驗證權杖值。