本页面面向应用运算符组中的应用开发者,这些开发者负责设置其应用和开发环境以启用 AI 功能。如需了解详情,请参阅 GDC 气隙环境文档的受众群体。
准备工作
如需对 API 请求进行身份验证并配置服务账号,请向管理员请求必要的权限。另请确保您已为 Vertex AI 设置项目。如需了解详情,请参阅 为 Vertex AI 设置项目。
- 请务必先更新本地受信任证书存储区,然后再在开发环境中设置身份验证。
请求 IAM 角色
请与您的 Project IAM Admin 联系,以在项目命名空间中请求以下角色:
- Project IAM Admin (
project-iam-admin):在项目命名空间中创建服务账号并管理角色绑定。 - AI OCR Developer (
ai-ocr-developer):对 OCR API 的请求进行身份验证。 - AI Speech Developer (
ai-speech-developer):对 Speech-to-Text API 的请求进行身份验证。 - AI Speech Chirp Developer (
ai-speech-chirp-developer):对 Speech-to-Text Chirp 模型的请求进行身份验证。 - AI 文本嵌入开发者 (
ai-text-embedding-developer):对Text-Embedding-Gecko模型的请求进行身份验证。 - AI Text Embedding Multilingual Developer (
ai-text-embedding-multilingual-developer):对Text-Multilingual-Embedding模型的请求进行身份验证。 - AI Translation Developer (
ai-translation-developer):对 Vertex AI Translation API 的请求进行身份验证。 - Vertex AI Prediction User (
vertex-ai-prediction-user):对在线预测模型的预测请求进行身份验证。
如需详细了解这些角色,请参阅准备 IAM 权限。
向 Vertex AI 服务进行身份验证
与 Vertex AI 服务的互动通过身份验证令牌完成。令牌是数字对象,用于在您提供有效凭据后验证您的身份和授权。令牌包含有关您的账号及其访问和操作服务和资源的权限的具体信息。
您可以通过以下两种方式设置身份验证:
使用用户账号进行身份验证
以下内容将指导您获取用户账号的身份验证令牌:
记下您要使用的 API 的端点。
通过向您的用户账号授予准备 IAM 权限中列出的相应角色,获取对您要使用的 Vertex AI 服务或生成式 AI 模型的访问权限。
使用您必须与 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 的端点。
向服务帐号授予准备 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替换为输出显示的身份验证令牌的值。