Données d'identification pour l'accès par programmation (clé d'APIIBM Cloud et jeton IAM)

Dernière mise à jour : 03 févr. 2025
Données d'identification pour l'accès par programmation (clé d'APIIBM Cloud et jeton IAM)

Pour utiliser des modèles de base dans IBM watsonx.ai à l'aide d'un programme, vous devez vous authentifier pour prouver que vous êtes autorisé à accéder aux ressources watsonx.ai .

Données d'identification de l'API REST

Pour la plupart des méthodes API, vous devez inclure un IBM Cloud Identity and Access Management (IAM) comme jeton d'accès avec la demande. Vous utilisez une IBM Cloud clé API pour générer un jeton de porteur IAM.

Pour authentifier les demandes d'API REST, procédez comme suit:

  1. Vous pouvez créer la clé d'API IBM Cloud de différentes manières.

    Pour plus d'informations, consultez la clé API IBM Cloud .

  2. Utilisez la clé d'API IBM Cloud pour créer un jeton bearer IAM.

    Pour plus d'informations, voir Génération d'un jeton IAM IBM Cloud à l'aide d'une clé d'API.

  3. Spécifiez le jeton IAM lorsque vous soumettez une demande REST.

    curl -X 'POST' https://{region}.ml.cloud.ibm.com/ml/v1/text/generation
    --header "Authorization: Bearer {IAM-token}..."
    

Vous êtes responsable de l'actualisation du jeton lorsqu'il arrive à expiration. Pour actualiser le jeton, répétez la procédure à partir de l'étape 2.

Données d'identification de la bibliothèque Python

Lorsque vous utilisez la bibliothèque Python , vous pouvez choisir d'utiliser une clé d'API ou un jeton IAM.

Si vous créez le jeton IAM vous-même et que vous le transmettez à la bibliothèque, vous devez gérer l'actualisation du jeton avant qu'il n'expire.

Lorsque vous transmettez votre clé d'API à APIClient dans la bibliothèque, le client génère le jeton IAM et le régénère si nécessaire.

Utilisation de la clé d'API IBM Cloud avec la bibliothèque

Vous pouvez créer la clé d'API IBM Cloud de différentes manières. Pour plus d'informations, consultez la clé API IBM Cloud

L'exemple de fragment de code suivant montre comment une clé d'API est utilisée directement pour l'authentification lors de l'utilisation de la bibliothèque Python .

from ibm_watsonx_ai.foundation_models import ModelInference

model_inference = ModelInference(
    model_id="ibm/granite-13b-chat-v2",
    credentials={
        "apikey": "***",
        "url": "https://{region}.ml.cloud.ibm.com"
    },
    project_id="*****"
    )

 

Utilisation d'APIClient

Vous pouvez également utiliser le APIClient disponible dans la bibliothèque. Après avoir instancié le client, vous n'avez pas besoin de spécifier des données d'identification avec chaque méthode.

from ibm_watsonx_ai import APIClient
from ibm_watsonx_ai import Credentials

credentials = Credentials(
  url = "https://{region}.ml.cloud.ibm.com",
  api_key = "{api-key}"
)

client = APIClient(credentials)

Pour plus d'informations, voir Authentification .

Vous pouvez également définir un ID de projet ou d'espace par défaut. Pour plus d'informations, voir Recherche de l'ID de projet.

 

Création d'informations d'identification pour les tâches

Pour certains travaux ou tâches de longue durée, tels que la mise au point des modèles de fondation, un justificatif de tâche est nécessaire.

Pour créer un identifiant de tâche :

task_credentials_details = client.task_credentials.store()

Pour dresser la liste des informations d'identification :

client.task_credentials.list()

La liste des références renvoyée comprend un asset_id, qui est l'identifiant de la référence de la tâche, pour chaque référence de la tâche.

Lorsque vous connaissez l'identifiant du titre, vous pouvez le supprimer comme suit :

client.task_credentials.delete(task_credentials_id)

Pour plus d'informations, voir la classe Task credentials dans la bibliothèque Python.

Vous pouvez également utiliser l'interface utilisateur du produit pour créer ou supprimer les informations d'identification des tâches. Pour plus d'informations, voir Gestion des informations d'identification des tâches.

En savoir plus

Thème parent: Codage de solutions d'IA générative