プログラムアクセス用のクレデンシャル(APIキーとIAMベアラートークン)
IBM watsonx.ai でファウンデーション・モデルをプログラマチックに操作するには、 watsonx.ai リソースへのアクセスが許可されていることを証明するために認証を受ける必要があります。
REST API 資格情報
ほとんどのAPIメソッドでは、リクエストにIAM(Identity and Access Management)ベアラートークンをアクセストークンとして含める必要があります。 APIキーを使用して、IAMベアラートークンを生成します。
REST API 要求を認証するには、以下のステップを実行します。
API キーを作成します。
アカウント watsonx のナビゲーションメニューから、 [管理 ] > [アクセス (IAM)] IBM Cloud > [IAM] ( IBM Cloud IAM にリダイレクト) > [API キー ] を選択し、 [作成 + ] をクリックします。詳細については、 API キー IBM Cloud を参照してください。
重要: セキュリティ上の理由により、APIキーは作成時のみコピーまたはダウンロードが可能です。 APIキーを記録のために保存してください。AWS のナビゲーション・メニューから、 「Administration(管理) 」 > 「 Access(IAM) 」 > 「 Personal Access Keys(個人アクセス・キー) 」の順に選択し、「 Create +(作成) 」をクリックします。
APIキーを使用して、IAMベアラートークンを作成します:
IBM Cloud、次のコード・スニペットを使用する:
curl -X POST \ --url https://iam.cloud.ibm.com/identity/token \ --header "Content-Type: application/x-www-form-urlencoded" \ --data "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=${APIKEY}"AWS アカウントの場合は、このコードスニペットを使用してください:
curl --request POST \ --url https://{region}.aws.data.ibm.com/api/rest/mcsp/apikeys/token \ --header 'Content-Type: application/json' \ --data '{ "apikey": "${APIKEY}" }'REST 要求を送信するときに IAM トークンを指定します。 例:
curl -X 'POST' <Cloud service provider URL> --header "Authorization: Bearer ${TOKEN}..."
トークンの有効期限が切れた場合は、ユーザーがトークンをリフレッシュする必要があります。 トークンをリフレッシュするには、ステップ 2 から始まる手順を繰り返します。
Python ライブラリーの資格情報
Python ライブラリーを使用する場合は、API キーと IAM トークンのどちらを使用するかを選択できます。
IAM トークンを自分で作成し、そのトークンをライブラリーに渡す場合は、トークンの有効期限が切れる前にトークンのリフレッシュを管理する必要があります。
ライブラリの APIClient に API キーを渡すと、クライアントは IAM トークンを生成し、必要に応じてトークンを更新する。
Python ライブラリで API キーを使用する
以下のサンプル・コード・スニペットは、 Python ライブラリーを使用する場合に、認証に API キーを直接使用する方法を示しています。
from ibm_watsonx_ai.foundation_models import ModelInference
model_inference = ModelInference(
model_id="ibm/granite-13b-chat-v2",
credentials={
"apikey": "<API key>",
"url": "<URL>"
},
project_id="<Project ID>"
)
APIClient の使用
あるいは、 Python ライブラリにある APIClient を使うこともできる。 クライアントをインスタンス化した後は、各メソッドで資格情報を指定する必要はありません。
from ibm_watsonx_ai import APIClient
from ibm_watsonx_ai import Credentials
credentials = Credentials(
url = "<URL>",
api_key = "<API key>"
)
client = APIClient(credentials)
詳細については、 「認証」を参照してください。
デフォルトのプロジェクトまたはスペース ID を設定することもできます。 詳しくは、 プロジェクト ID の検索を参照してください。
タスク認証情報の作成
基盤モデルのチューニングなど、一部の長期にわたるジョブやタスクには、タスク認証が必要です。
タスク認証を作成するには:
task_credentials_details = client.task_credentials.store()
資格情報をリストアップするには:
client.task_credentials.list()
返される認証情報のリストには、各タスク認証情報ごとに、タスク認証IDである asset_id が含まれています。
クレデンシャルのIDが分かっている場合、以下のようにして削除することができます
client.task_credentials.delete(task_credentials_id)
詳細は、 Python ライブラリのタスク認証クラスを参照してください。
あるいは、製品UIを使用してタスク認証の作成や削除を行うこともできます。 詳細は 、「タスクの認証情報の管理 」を参照してください。